Използване на LLM за автоматизация и подобрение на счетоводството с Beancount
Beancount е plain-text система за двойно счетоводство, която наскоро стана по-достъпна благодарение на големи езикови модели (LLM) като ChatGPT. Техническите потребители – включително собственици на бизнес, основатели на стартъпи, инженери и счетоводители – могат да използват LLM, за да автоматизират досадните счетоводни задачи, като същевременно поддържат гъвкавостта и прозрачността на базирания на текст счетоводен регистър на Beancount. Този доклад изследва практически начини, по които LLM могат да рационализират работните процеси на Beancount, включително категоризация на транзакции, откриване на аномалии, интелигентни предложения за счетоводни статии, генериране на статии от естествен език и сверяване на извлечения. Предоставени са примерни подкани и резултати, за да се илюстрират тези възможности, заедно със съвети за внедряване, съществуващи инструменти и обсъждане на възможности и ограничения.
Автоматизирана категоризация на транзакции с LLM
Един от най-отнемащите време аспекти на счетоводството е категоризирането на транзакциите (присвояването им към правилните сметки) въз основа на дескриптори като платец, бележка или сума. LLM могат значително да ускорят това, като използват своето езиково разбиране и широки познания, за да предложат подходящи сметки за разходи или приходи за всяка транзакция.
Например, ако вашият счетоводен регистър Beancount има некатегоризирана статия:
2023-02-28 * "Amazon.com" "Поставка за лаптоп, ... Преносима поставка за лаптоп..."
Assets:Zero-Sum-Accounts:Amazon-Purchases -14.29 USD
(липсва сметка за разходи)
Подкана към LLM може да поиска подходяща сметка за разходи, за да балансира транзакцията. В един реален случай LLM категоризира покупка от Amazon на поставка за лаптоп като Expenses:Office-Supplies:Laptop-Stand. По същия начин, той присвои покупка на чистачки за кола към Expenses:Car:Maintenance и кухненски уред към Expenses:Kitchen:Appliances, като интелигентно направи заключение за категориите от описанията на артикулите. Тези примери показват как LLM може да използва контекст (платеца и описанието), за да избере подходяща сметка в Beancount.
Съвременни инструменти като Beanborg интегрират тази възможност: Beanborg е open-source импортер за Beancount, който може автоматично да съпоставя данните за транзакциите с правилните сметки за разходи. Той използва предимно базиран на правила двигател, но също така поддържа машинно обучение и дори ChatGPT за предложения за категоризация. С Beanborg можете да импортирате CSV файл от банка и да получите повечето статии автоматично класифицирани (например, платец, съдържащ "Fresh Food Inc.", може да бъде категоризиран под Expenses:Groceries чрез правила или LLM помощ).
Как да използвате LLM за категоризация: Можете да подадете партида описания на транзакции към модел като GPT-4 и да го помолите да присвои вероятни сметки. Един предложен работен процес е: използвайте GPT, за да категоризирате малка партида разходи, поправете всички грешки ръчно, след което използвайте вградените приставки за импортиране на Beancount (като smart_importer), за да се поучите от тези примери за бъдещи транзакции. Този хибриден подход използва широките познания на LLM за нови или необичайни транзакции (например, заключавайки, че PILOT Parallel Calligraphy Pens трябва да попаднат в сметка за разходи за консумативи за изкуство) и след това прилага тези категоризации последователно в бъдеще.
Примерен въпрос и отговор: Таблицата по-долу показва как потребителят може да взаимодейства с LLM, за да категоризира транзакции:
| Въпрос на потребителя (детайли за транзакцията) | Предложена сметка/статия от LLM |
|---|---|
Категоризирай: "Starbucks - Latte $5.00 на 2025-04-01" | Предложение: Разход – вероятно Expenses:Food:Coffee (покупка на кафе) |
Категоризирай: "Amazon.com - Bosch Задна чистачка $11.60" | Предложение: Expenses:Car:Maintenance (замяна на част за кола) |
Категоризирай: "Плащане на заплата от ACME Corp $5000" | Предложение: Income:Salary (приход от заплата) |
Пълна статия: 2025-07-10 * "Office Depot" " |