Використання великих мовних моделей для автоматизації та покращення бухгалтерського обліку з Beancount
Beancount – це система бухгалтерського обліку у форматі простого тексту, яка останнім часом стала більш доступною завдяки великим мовним моделям (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 – це імпортер 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 on 2025-04-01" | Пропозиція: Витрати – ймовірно Expenses:Food:Coffee (покупка кави) |
Категоризувати: "Amazon.com - Bosch Rear Wiper Blade $11.60" | Пропозиція: Expenses:Car:Maintenance (заміна автомобільної запчастини) |
Категоризувати: "Salary payment from ACME Corp $5000" | Пропозиція: Income:Salary (дохід від зарплати) |
Повний запис: 2025-07-10 * "Office Depot" "printer ink" Assets:Checking -45.00 USD | Додає: Expenses:Office:Supplies 45.00 USD (балансування запису) |
У цих прикладах LLM використовує загальні знання (Starbucks – це кава, автомобільні запчастини Amazon пов'язані з технічним обслуговуванням автомобіля, зарплата ACME – це дохід), щоб запропонувати правильний рахунок Beancount. Вона може навіть завершити журнальний запис, додавши відсутню балансуючу проводку (у випадку з Office Depot, пропонуючи рахунок витрат на канцелярське приладдя для компенсації платежу). З часом така категоризація на основі ШІ може заощадити час і зменшити ручні зусилля при класифікації транзакцій.