I got decent results with this script <https://gist.github.com/reedlaw/c0adb9dbc98fc843748365c8c2154a61>. It uses the LangChain Python library with LLaMA.cpp <https://github.com/ggerganov/llama.cpp> and the Alpaca LLM model. The results aren't as good as with the OpenAI API but it keeps everything local and private. On Tuesday, April 4, 2023 at 6:45:17 PM UTC-4 Reed Law wrote:
> Good reminder about privacy. There is an open source chatbot, Vicuna > <https://github.com/lm-sys/FastChat>, which plans to release training > weights next week meaning you can use it privately and offline. > > On Sat, Apr 1, 2023 at 10:57 PM Martin Blais <[email protected]> wrote: > >> FYI for those who might be tempted to feed their entire ledger into the >> thing, keep in mind the privacy implications of doing this. >> The queries are very likely logged and even if used indirectly as >> training data for further updates, might leak your personal info to someone >> else generating transaction data. >> Just saying... it might not be obvious to some. >> >> >> >> On Sat, Apr 1, 2023 at 10:51 PM Red S <[email protected]> wrote: >> >>> Very neat! I've got to admit, I'm bowled over by the natural language >>> interface working so well. >>> >>> Amazon purchase classification is almost the only area of classification >>> where smart_importer doesn't do greatly well for me, since there are few >>> repeat purchases or keywords. >>> >>> Good to know about aichat too. >>> >>> That said, here are the results I tried to replicate with the same data. >>> Note the claim at the bottom: "You can use any account name you like as >>> long as it doesn’t contain spaces," and its incongruency with literally >>> every classification containing a space. One of the limitations of the >>> current generation is a lack of a confidence-in-results indicator, which >>> shows up here. >>> >>> 2022-08-19 * "Amazon.com" "Beginning Drawing Atelier: An Instructional >>> Sketchbook" Assets:Zero-Sum-Accounts:Amazon-Purchases -24.71 USD >>> Expenses:Art Supplies 2022-09-14 * "Amazon.com" "Amazon Basics Clear Sheet >>> Protectors for 3 Ring Binder, 8.5 x 11 Inch, 200-Pack" >>> Assets:Zero-Sum-Accounts:Amazon-Purchases -18.16 USD Expenses:Office >>> Supplies 2022-10-05 * "Amazon.com" "Bosch Rear Wiper Blade H307 /3397011429 >>> Original Equipment Replacement- 12\" (Pack of 1)" >>> Assets:Zero-Sum-Accounts:Amazon-Purchases -11.6 USD Expenses:Auto Parts >>> 2023-01-26 * "Amazon.com" "Duxtop 1600W Single Burner Electric Cooktop, >>> Electric Hot Plate for Cooking, Electric Stove with Sensor Touch Control, >>> Portable Infrared Burner with T" Assets:Zero-Sum-Accounts:Amazon-Purchases >>> -69.43 USD Expenses:Kitchen Appliances 2023-01-26 * "Amazon.com" "PILOT >>> Parallel Caligraphy Pens, Assorted Point Sizes and Colors, 6 Count (12722)" >>> Assets:Zero-Sum-Accounts:Amazon-Purchases -32.44 USD Expenses:Art Supplies >>> 2023-02-28 * "Amazon.com" "Laptop Stand, Laptop Holder Riser Computer >>> Stand, Adjustable Aluminum Foldable Portable Notebook Stand, Compatible >>> with MacBook Air Pro, HP, Lenovo, D" >>> Assets:Zero-Sum-Accounts:Amazon-Purchases -14.29 USD Expenses:Laptop >>> Accessories >>> >>> In this example, I’ve added a category to each transaction by adding a >>> new line after the transaction line and indenting it by two spaces. The >>> category is specified as an account name and is preceded by a colon. You >>> can use any account name you like as long as it doesn’t contain spaces. >>> >>> On Saturday, April 1, 2023 at 7:51:20 AM UTC-7 [email protected] wrote: >>> >>>> I used a command-line tool, aichat <https://github.com/sigoden/aichat>, >>>> to pipe transactions to GPT-4 and categorize expenses. I gave it the >>>> following input (generated according to Booking Amazon Purchases >>>> <https://reds-rants.netlify.app/personal-finance/booking-amazon-purchases/> >>>> ): >>>> >>>> 2022-08-19 * "Amazon.com" "Beginning Drawing Atelier: An Instructional >>>> Sketchbook" >>>> Assets:Zero-Sum-Accounts:Amazon-Purchases -24.71 USD >>>> >>>> 2022-09-14 * "Amazon.com" "Amazon Basics Clear Sheet Protectors for 3 >>>> Ring Binder, 8.5 x 11 Inch, 200-Pack" >>>> Assets:Zero-Sum-Accounts:Amazon-Purchases -18.16 USD >>>> >>>> 2022-10-05 * "Amazon.com" "Bosch Rear Wiper Blade H307 /3397011429 >>>> <(339)%20701-1429> Original Equipment Replacement- 12\" (Pack of 1)" >>>> Assets:Zero-Sum-Accounts:Amazon-Purchases -11.6 USD >>>> >>>> 2023-01-26 * "Amazon.com" "Duxtop 1600W Single Burner Electric Cooktop, >>>> Electric Hot Plate for Cooking, Electric Stove with Sensor Touch Control, >>>> Portable Infrared Burner with T" >>>> Assets:Zero-Sum-Accounts:Amazon-Purchases -69.43 USD >>>> >>>> 2023-01-26 * "Amazon.com" "PILOT Parallel Caligraphy Pens, Assorted >>>> Point Sizes and Colors, 6 Count (12722)" >>>> Assets:Zero-Sum-Accounts:Amazon-Purchases -32.44 USD >>>> >>>> 2023-02-28 * "Amazon.com" "Laptop Stand, Laptop Holder Riser Computer >>>> Stand, Adjustable Aluminum Foldable Portable Notebook Stand, Compatible >>>> with MacBook Air Pro, HP, Lenovo, D" >>>> Assets:Zero-Sum-Accounts:Amazon-Purchases -14.29 USD >>>> >>>> Using the following prompt and command: >>>> >>>> cat amz.beancount | aichat add categorized expense postings to balance >>>> each of the following transactions, preserving the included zero sum >>>> posting. do not use spaces in account names > out.beancount >>>> >>>> I got these results: >>>> >>>> 2022-08-19 * "Amazon.com" "Beginning Drawing Atelier: An Instructional >>>> Sketchbook" >>>> Assets:Zero-Sum-Accounts:Amazon-Purchases -24.71 USD >>>> Expenses:Art:Instructional-Sketchbook >>>> >>>> 2022-09-14 * "Amazon.com" "Amazon Basics Clear Sheet Protectors for 3 >>>> Ring Binder, 8.5 x 11 Inch, 200-Pack" >>>> Assets:Zero-Sum-Accounts:Amazon-Purchases -18.16 USD >>>> Expenses:Office-Supplies:Sheet-Protectors >>>> >>>> 2022-10-05 * "Amazon.com" "Bosch Rear Wiper Blade H307 /3397011429 >>>> <(339)%20701-1429> Original Equipment Replacement- 12\" (Pack of 1)" >>>> Assets:Zero-Sum-Accounts:Amazon-Purchases -11.6 USD >>>> Expenses:Car:Maintenance >>>> >>>> 2023-01-26 * "Amazon.com" "Duxtop 1600W Single Burner Electric Cooktop, >>>> Electric Hot Plate for Cooking, Electric Stove with Sensor Touch Control, >>>> Portable Infrared Burner with T" >>>> Assets:Zero-Sum-Accounts:Amazon-Purchases -69.43 USD >>>> Expenses:Kitchen:Appliances >>>> >>>> 2023-01-26 * "Amazon.com" "PILOT Parallel Caligraphy Pens, Assorted >>>> Point Sizes and Colors, 6 Count (12722)" >>>> Assets:Zero-Sum-Accounts:Amazon-Purchases -32.44 USD >>>> Expenses:Art:Calligraphy-Pens >>>> >>>> 2023-02-28 * "Amazon.com" "Laptop Stand, Laptop Holder Riser Computer >>>> Stand, Adjustable Aluminum Foldable Portable Notebook Stand, Compatible >>>> with MacBook Air Pro, HP, Lenovo, D" >>>> Assets:Zero-Sum-Accounts:Amazon-Purchases -14.29 USD >>>> Expenses:Office-Supplies:Laptop-Stand >>>> >>>> There was some trial and error that resulted in the final prompt. At >>>> first, it removed the zero-sum postings and only output expenses. The >>>> expense accounts had spaces in their names (e.g. "Expenses:Office >>>> Supplies:Laptop Stand"). There is still room for improvement (I don't >>>> really care to have an account for laptop stands). Overall, it looks very >>>> helpful. Perhaps a good workflow is to use GPT to categorize a small batch >>>> of expenses, manually correct them, and then use smart_importer >>>> <https://github.com/beancount/smart_importer> to handle the rest. >>>> >>>> If anyone else has tips please share! >>>> >>>> >>>> On Saturday, April 1, 2023 at 1:53:46 AM UTC-4 Red S wrote: >>>> >>>>> Great idea. Talk about drudgery! >>>>> >>>>> On Friday, March 31, 2023 at 12:35:09 AM UTC-7 [email protected] wrote: >>>>> >>>>> I haven't tried yet but my hope is that gpt would be great at writing >>>>> test code. Can you imagine? >>>>> >>>>> On Fri, Mar 31, 2023, 01:03 Red S <[email protected]> wrote: >>>>> >>>>> Fantastic! Hooray for reducing drudgery! >>>>> >>>>> It's apparently quite effective at using code from existing github >>>>> projects. I love the code explanations in natural language. >>>>> >>>>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Beancount" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/beancount/b08ca160-539a-4d7a-ba9c-8540f214d2bcn%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/beancount/b08ca160-539a-4d7a-ba9c-8540f214d2bcn%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- >> > You received this message because you are subscribed to a topic in the >> Google Groups "Beancount" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/beancount/_7udAMlfLAg/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/beancount/CAK21%2BhOGB19cwNOcyBmvEbZAcwNCEnUuN-k-io3ifbkZe3vheA%40mail.gmail.com >> >> <https://groups.google.com/d/msgid/beancount/CAK21%2BhOGB19cwNOcyBmvEbZAcwNCEnUuN-k-io3ifbkZe3vheA%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > -- You received this message because you are subscribed to the Google Groups "Beancount" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/cf553e9e-6d0d-4bf2-831d-9be100b8d23dn%40googlegroups.com.
