Перейти к основному содержимому
Beancount.io Logo

Использование ИИ с Beancount: импорт, проверка и запросы к вашей бухгалтерской книге

Используйте Beancount.io или локальную бухгалтерскую книгу для категоризации транзакций с помощью ИИ, проверки предлагаемых записей, сверки балансов по выпискам и запросов к вашим счетам.

Используйте ИИ для подбора счетов и пояснения транзакций, затем сверяйте записи с исходными документами перед сохранением. Это руководство проведет вас через категоризацию, проверку, валидацию и запрос на небольшом вымышленном примере выписки, который можно воспроизвести.

Выберите размещенный или локальный рабочий процесс ниже. В пошаговом примере используется локальный образец файла, чтобы вы могли воспроизвести каждую проверку перед подключением ИИ к вашей собственной бухгалтерской книге.

Выберите свой рабочий процесс

Ваша настройкаНачните здесьКак изменения попадают в вашу книгу
Вы используете Beancount.ioИспользуйте Smart Import для файлов выписок или AI Assistant для вопросов и предлагаемых правок.Проверяйте строки перед отправкой импорта. Для правок Assistant проверьте предлагаемый diff и выберите Approve или Deny.
Вы используете внешний ИИ-клиентСледуйте руководству по настройке Beancount MCP, чтобы подключить клиент к размещенной книге.Пробный запуск (dry run) предварительно просматривает операцию редактирования. Отдельный вызов записи подтверждает её. Запросы на одобрение зависят от настроек вашего клиента.
Вы храните локальные файлыИспользуйте конвертер CSV в Beancount или импортер, затем попросите ИИ-инструмент предложить категории.Вы проверяете предлагаемые записи, валидируете файл и сохраняете принятые изменения.

Размещенные Assistant и MCP являются интеграциями Beancount.io. Установка открытого движка бухгалтерского учета Beancount не добавляет эти сервисы к локальной книге.

Перед началом работы

Подготовьте исходную выписку, счет, к которому она относится, и список разрешенных счетов назначения. Сохраните оригинал выписки для сравнения с результатом.

Для локального пошагового руководства установите Beancount, следуя руководству по началу работы. Также потребуется Beanquery для выполнения финального запроса из терминала. В примере предполагается использование долларов США (USD) и отсутствие существующих транзакций в файле-образце.

Для реальных данных решите, какую информацию ваш ИИ-инструмент может получать. Удалите лишние идентификаторы перед передачей выписки. Локальная книга все равно может отправлять данные в облачную модель через редактор или MCP-клиент. Проверьте политики обработки данных клиента и поставщика модели; хранение файла на вашем компьютере само по себе не гарантирует локальность его содержимого.

1. Начните с исходных транзакций

Наш вымышленный расчетный счет начинает август с 1 000,00 USD. Его выписка содержит три списания и закрывается на 805,10 USD после этих списаний:

date,payee,description,amount
2026-08-03,Office Depot,Printer paper,-45.00
2026-08-04,Cloud Hosting Inc,Monthly hosting,-120.00
2026-08-05,Amazon,Online purchase,-29.90

Отрицательные суммы здесь означают деньги, уходящие с расчетного счета. Подтвердите соглашение о знаках в вашем банке перед импортом; другие экспорты и импортеры могут использовать другое соглашение.

В конвертере CSV сопоставьте эти четыре столбца и установите исходный счет Assets:Bank:Checking с валютой USD. Для этого образца оставьте Flip every sign выключенным. Проверьте, что исходные проводки отрицательные. Предварительный счет назначения — это лишь заполнитель до тех пор, пока вы не проверите категории.

Если вы начинаете с изображения чека или PDF, сравните извлеченные даты, суммы, валюту и количество транзакций с оригинальным документом перед категоризацией. Сохраняйте исходные значения нетронутыми при принятии решения о счетах.

2. Запросите категории с явными ограничениями

Используйте подсказку, которая называет разрешенные счета и оставляет место для неопределенности:

Предложите счет назначения для каждой строки в этой выписке-образце. Исходный счет — Assets:Bank:Checking. Используйте только Expenses:Office:Supplies или Expenses:Business:Hosting. Верните исходные дату, получателя, сумму, предложенный счет и краткое обоснование. Если описание недостаточно, верните NEEDS_REVIEW и объясните, какой информации не хватает. Не выдумывайте счета, не изменяйте суммы и не записывайте в книгу.

Предоставьте три строки CSV вместе с подсказкой. Полезный результат может выглядеть так; формулировки и предложения модели могут различаться:

ДатаПолучательСумма (USD)Предложенный счетПричина проверки
2026-08-03Office Depot-45.00Expenses:Office:SuppliesОписание указывает на бумагу для принтера.
2026-08-04Cloud Hosting Inc-120.00Expenses:Business:HostingОписание указывает на хостинг.
2026-08-05Amazon-29.90NEEDS_REVIEWНазвание продавца не указывает, что было куплено.

Подсказка выражает ваше намерение. Она не обеспечивает разрешения для инструмента, который может записывать файлы. Настройте контроль одобрения клиента перед предоставлением ему доступа к реальной книге.

3. Разрешите неопределенность и проверьте записи

Проверьте чек для покупки в Amazon. В этом примере он идентифицирует USB-C кабель для офиса, и проверяющий назначает Expenses:Office:Supplies. Без таких доказательств оставьте строку в ожидании, а не принимайте угаданную категорию.

Создайте новый файл с именем review.beancount со следующим полным примером. Он включает объявления счетов и начальный баланс, которых нет в CSV. Если вы использовали конвертер, сравните его транзакции с этими проверенными записями; не добавляйте обе копии в одну книгу.

option "title" "AI bookkeeping review example"
option "operating_currency" "USD"
 
2026-08-01 open Assets:Bank:Checking USD
2026-08-01 open Equity:Opening-Balances USD
2026-08-01 open Expenses:Office:Supplies USD
2026-08-01 open Expenses:Business:Hosting USD
 
2026-08-01 * "Opening balance"
  Assets:Bank:Checking       1000.00 USD
  Equity:Opening-Balances   -1000.00 USD
 
2026-08-03 * "Office Depot" "Printer paper"
  Assets:Bank:Checking        -45.00 USD
  Expenses:Office:Supplies     45.00 USD
 
2026-08-04 * "Cloud Hosting Inc" "Monthly hosting"
  Assets:Bank:Checking          -120.00 USD
  Expenses:Business:Hosting      120.00 USD
 
2026-08-05 * "Amazon" "Online purchase; receipt: office USB-C cable"
  Assets:Bank:Checking        -29.90 USD
  Expenses:Office:Supplies     29.90 USD
 
2026-08-06 balance Assets:Bank:Checking 805.10 USD

Транзакция начального баланса относится к этой пустой учебной книге. В существующей книге используйте установленный баланс и объявления счетов вместо добавления еще одного начального баланса.

Перед принятием предлагаемого изменения сравните каждую транзакцию с ее исходной строкой. Подтвердите знаки, валюту, счета и подтверждающий чек. Знакомое название продавца само по себе не устанавливает цель покупки.

4. Валидация и сверка

Запустите валидатор Beancount на локальном образце:

bea --file review.beancount check

Полный пример должен пройти без ошибок. Его проверка баланса проверяет сумму на расчетном счете на начало 6 августа, после трех предыдущих списаний.

Подтвердите результат по выписке:

  • Три транзакции из выписки появляются по одному разу каждая, в дополнение к начальному балансу.
  • Списания в сумме составляют 194.90 USD.
  • На расчетном счете 805.10 USD: начальные 1 000.00 USD за вычетом этих списаний.
  • Офисные расходы в сумме 74.90 USD, а хостинг — 120.00 USD.

Если вы оставите транзакцию Amazon в ожидании, расчетный счет останется на 835.00 USD, и проверка не пройдет на 29.90 USD. Исследуйте эту разницу; не добавляйте необъяснимую корректировку просто для прохождения проверки.

bea check выявляет ошибки синтаксиса, счетов, балансировки и проверок баланса. Он не может установить подлинность чека, правильность выбранной категории расходов или наличие каждой строки выписки. Транзакция, отнесенная к неправильному счету расходов, все равно может идеально балансироваться.

Когда что-то не сходится

СимптомСледующая проверка
Баланс отличается от выпискиСравните начальный баланс, количество транзакций, знаки, даты и суммы с источником.
Две записи выглядят одинаковоСравните идентификаторы исходных транзакций и чеки. Один и тот же продавец и сумма могут представлять две законные покупки.
Модель выдумывает счетВыберите существующий счет или осознанно создайте новый после проверки вашего плана счетов.
Извлечение пропускает строку или изменяет десятичные знакиИсправьте извлеченные данные по оригинальному документу перед категоризацией.
Валидатор проходит, но отчет выглядит неправильноПроверьте выбор счетов, отчетный период и отдельные проводки.

Попросите ИИ объяснить расхождения и указать на затронутые строки. Подтвердите доказательства перед удалением предполагаемого дубликата или изменением суммы.

5. Сохраните проверенный результат и выполните запрос

При повторении этого рабочего процесса с вашей собственной выпиской объедините только проверенные транзакции в реальную книгу, затем валидируйте объединенный файл. Оставьте вымышленные записи в файле-образце. Если вы используете Git, просмотрите diff и зафиксируйте изменения через обычный рабочий процесс. Храните исходную выписку для последующей сверки. Руководство по скриптовым рабочим процессам охватывает повторяемую локальную автоматизацию.

Вы можете проверить итоги образца с помощью языка запросов Beancount. С установленным Beanquery выполните:

bea --file review.beancount query "SELECT account, sum(position) WHERE account ~ '^Expenses:' AND date >= 2026-08-01 AND date < 2026-09-01 GROUP BY account"

Два итога по расходам должны составлять 74.90 USD для офисных расходов и 120.00 USD для хостинга. Проверьте диапазон дат и фильтр по счетам в запросе, а также его вывод.

С ИИ-клиентом, подключенным к книге, содержащей образец, вы можете спросить:

Выполни запрос к книге-образцу по расходам за август 2026 года, сгруппированным по счетам. Покажи запрос и его результаты. Не изменяй никакие файлы.

Сравните его ответ с теми же итогами. Беглый ответ полезен только тогда, когда его цифры можно проследить до книги.

Примените процесс проверки в Beancount.io

Для файлов выписок откройте Import → Smart Import на боковой панели вашей книги. Проверьте извлеченные строки, выберите Source Account и Currency, используйте AI Fill для предложений по счетам назначения. Исправьте категории перед отправкой Import, кнопка которого включает количество транзакций. Проверьте полученный журнал и балансы в тестовой книге перед обработкой реальной выписки. Убедитесь, что списания уменьшают исходный счет; приведенный выше CSV подготовлен для локального конвертера, и импортеры могут интерпретировать знаки иначе.

Для размещенного Assistant откройте Ask Beancount.io внутри вашей книги. Начните с вопроса о существующих записях. Когда он предложит редактирование файла, проверьте diff перед одобрением. Принятые импорты и правки Assistant записываются в Git, чтобы вы могли просмотреть или откатить изменения.

Для MCP следуйте инструкциям по настройке для конкретного клиента, указанным выше, и авторизуйте нужную книгу. Запросите editLedgerFiles с dry_run: true перед разрешением редактирования. Проверьте предлагаемое содержимое и сводку операции, затем разрешите отдельный вызов записи только после проверки. Предварительный просмотр сухого запуска не устанавливает бухгалтерскую корректность и не гарантирует, что ваш клиент запросит разрешение перед последующей записью.

Сохраняйте процесс проверки при автоматизации

Начните с небольшой партии и записывайте, какие предложения вы меняете. Превращайте повторяющиеся подтвержденные сопоставления в явные правила импорта или предоставляйте проверенные примеры в качестве контекста. Не предполагайте, что модель постоянно учится на исправлении в разговоре.

Держите проверки извлечения, проверку категорий и сверку выписок отдельно. Каждая выявляет разный тип ошибок. Для повторяющихся импортов также проверяйте, что импорт одного и того же источника дважды не создает молчаливые дубликаты транзакций.

Исследования подтверждают различие между корректным синтаксисом и правильной бухгалтерией. Исследование Фигероа Росеро и коллег от января 2025 года оценивало небольшие модели с открытыми весами на сценариях финансовых коэффициентов и генерации транзакций с использованием структурированных подсказок. Его результаты описывают эти модели и задачи, а не показатель точности для сегодняшних ассистентов или вашего импортного рабочего процесса. Оценивайте свой собственный рабочий процесс, используя проверенные исходные транзакции и требуемые ими исправления.

Инструменты для повторяемого локального рабочего процесса

Выберите инструмент для той части процесса, которую нужно повторять:

  • Beangulp предоставляет фреймворк импортера. Он заменяет старый фреймворк beancount.ingest в Beancount 3.
  • smart_importer — отдельно устанавливаемый пакет, добавляющий предложения на основе машинного обучения к импортерам. Это не встроенная функция LLM.
  • Beanborg документирует категоризацию на основе правил, предложения машинного обучения и опциональные прогнозы ChatGPT. Проверьте его текущую настройку и совместимость перед использованием.

Для более широкого контекста см. руководство по автоматизации бухгалтерии и руководство по ежемесячному бухгалтерскому рабочему процессу.

Изучите более крупный пример

Публичная книга ниже отделена от упражнения с тремя транзакциями. Используйте её, чтобы изучить, как счета, транзакции и отчеты сочетаются друг с другом, перед подключением ИИ к вашим собственным книгам.

Открыть Публичная примерная книга, отдельная от упражнения по ИИ-проверке в новой вкладке

Источник: https://beancount.io/ru/docs/Solutions/using-llms-to-automate-and-enhance-bookkeeping-with-beancount