LLM을 활용하여 Beancount로 부기 자동화 및 개선
Beancount는 일반 텍스트 복식 부기 시스템으로, 최근 ChatGPT와 같은 대규모 언어 모델 (LLM) 덕분에 접근성이 향상되었습니다. 사업주, 스타트업 창업자, 엔지니어, 회계사를 포함한 기술 사용자는 LLM을 활용하여 Beancount의 텍스트 기반 원장의 유연성과 투명성을 유지하면서 지루한 부기 작업을 자동화할 수 있습니다. 이 보고서는 LLM이 거래 분류, 이상 징후 탐지, 분개 항목에 대한 스마트 제안, 자연어에서 항목 생성, 명세서 대사를 포함하여 Beancount 워크플로를 간소화할 수 있는 실용적인 방법을 살펴봅니다. 구현 팁, 기존 도구, 기회 및 제한 사항에 대한 논의와 함께 이러한 기능을 설명하기 위한 예제 프롬프트와 출력이 제공됩니다.
LLM을 통한 자동 거래 분류
부기의 가장 시간이 많이 소요되는 측면 중 하나는 거래를 설명자(예: 수취인, 메모 또는 금액)를 기준으로 올바른 계정에 할당하는 거래 분류입니다. LLM은 언어 이해 및 광범위한 지식을 활용하여 각 거래에 대한 적절한 비용 또는 수입 계정을 제안함으로써 이를 크게 가속화할 수 있습니다.
예를 들어 Beancount 원장에 분류되지 않은 항목이 있는 경우:
2023-02-28 * "Amazon.com" "Laptop Stand, ... Portable Notebook Stand..."
Assets:Zero-Sum-Accounts:Amazon-Purchases -14.29 USD
(missing expense account)
LLM에 대한 프롬프트는 거래 균형을 맞추기 위한 적절한 비용 계정을 요청할 수 있습니다. 실제 사례에서 LLM은 노트북 스탠드의 아마존 구매를 Expenses:Office-Supplies:Laptop-Stand
로 분류했습니다. 마찬가지로 와이퍼 블레이드 구매를 Expenses:Car:Maintenance
로, 주방 가전 제품을 Expenses:Kitchen:Appliances
로 지정하여 품목 설명에서 지능적으로 범주를 추론했습니다. 이러한 예는 LLM이 컨텍스트 (수취인 및 설명)를 사용하여 적절한 Beancount 계정을 선택하는 방법을 보여줍니다.
Beanborg와 같은 최신 도구는 이 기능을 통합합니다. Beanborg는 거래 데이터를 올바른 비용 계정에 자동으로 매칭할 수 있는 오픈 소스 Beancount 임포터입니다. 기본적으로 규칙 기반 엔진을 사용하지만, 머신러닝 및 ChatGPT도 분류 제안에 지원합니다. Beanborg를 사용하면 은행 CSV를 가져와 대부분의 항목을 자동 분류할 수 있습니다(예: "Fresh Food Inc."를 포함하는 수취인은 규칙 또는 LLM 지원에 따라 Expenses:Groceries
로 분류될 수 있습니다).
분류에 LLM을 사용하는 방법: GPT-4와 같은 모델에 거래 설명 배치를 제공하고 가능성이 높은 계정을 지정하도록 요청할 수 있습니다. 한 가지 제안된 워크플로는 다음과 같습니다. GPT를 사용하여 소량의 비용을 분류하고, 수동으로 실수를 수정 하고, Beancount의 내장 임포터 플러그인 (예: smart_importer
)을 사용하여 향후 거래에 대한 이러한 예에서 학습합니다. 이 하이브리드 접근 방식은 LLM의 광범위한 지식을 활용하여 새로운 또는 드문 거래에 사용하고 (_PILOT Parallel Calligraphy Pens_가 미술 용품 비용 계정에 속해야 한다고 추론하는 경우), 일관되게 해당 분류를 적용합니다.
예제 프롬프트 및 응답: 다음 표는 사용자가 LLM과 상호 작용하여 거래를 분류하는 방법을 보여줍니다.
사용자 프롬프트 (거래 세부 정보) | LLM 제안 계정/항목 |
---|---|
분류: "Starbucks - Latte $5.00 on 2025-04-01" | 제안: Expense – 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의 경우 지불을 상쇄하기 위해 사무용품 비용 계정을 제안). 시간이 지남에 따라 이러한 AI 기반 분류는