Локальная Qwen 3.6 + Anthropic Financial Services: гайд по бухгалтерии | AiManual
AiManual Logo Ai / Manual.
24 Май 2026 Гайд

Локальный бухгалтер на Qwen 3.6: как прикрутить Anthropic Financial Services к своей базе данных и не сойти с ума

Пошаговое руководство по интеграции Qwen 3.6 с Anthropic Financial Services для локального бухгалтерского учёта. Код, SQLite, агенты и подводные камни.

Бухгалтерия на локальной LLM — звучит как оксюморон. Но только до тех пор, пока не попробуешь.

Я ненавижу бухгалтерию. Не потому что сложно, а потому что рутина съедает часы, а облачные сервисы просят доступ ко всем моим счетам. Полгода назад я бросил ChatGPT и перетащил AI к себе на компьютер — подробно расписано в этом материале. С тех пор я живу в мире локальных моделей, и Qwen 3.6 стала моим главным инструментом.

Но есть проблема: бухгалтерские данные — это хаос. Выписки в PDF, транзакции в CSV, налоги в Excel. Как заставить локальную модель разобраться во всём этом, не сливая данные в условный AWS? Ответ — Anthropic Financial Services. Да, вы не ослышались: Anthropic выпустила API для финансовых операций, и я научу вас соединять его с Qwen 3.6, чтобы получить локального бухгалтера, который не просит отпуск.

💡 Для тех, кто хочет сразу к делу: полный код проекта лежит в репозитории (ссылка внутри). Но я советую прочитать до конца — иначе наступите на те же грабли, что и я.

Исходные данные: у вас есть Qwen 3.6 и немного смелости

Qwen 3.6 — это не просто очередная open-source модель. Она умеет вызывать инструменты (function calling), работать с контекстом до 128K токенов и, что важно для нас, отлично понимает финансовую лексику. Её весёлый брат-близнец CPA-Qwen3-8B-v0 специально заточен под бухгалтерию, но Qwen 3.6 универсальнее и позволяет подключать внешние функции.

Anthropic Financial Services — это облачный сервис для обработки финансовых данных: классификация транзакций, проверка на мошенничество, генерация отчётов. Зачем нам облачный сервис, если мы за локальность? А затем, что мы не дураки: модель выполняет черновую работу локально, а к Financial Services обращается только за специфическими операциями, которые требуют доступа к глобальным паттернам (например, сверить транзакцию с чёрными списками).

1 Собираем инфраструктуру: LM Studio + SQLite + агентский каркас

Для локального запуска модели я использую LM Studio — она умеет поднимать OpenAI-совместимый endpoint. У нас уже есть детальный гайд по превращению LM Studio в локальный Anthropic: вот он. Схема та же, только вместо токенизации кода — бухгалтерские документы.

Бухгалтерскую базу я храню в SQLite — лёгкая, не требует сервера, все данные локально. Схема минимальная:

CREATE TABLE transactions (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  date TEXT NOT NULL,
  amount REAL NOT NULL,
  description TEXT,
  category TEXT,
  status TEXT DEFAULT 'pending'
);

CREATE TABLE categories (
  id INTEGER PRIMARY KEY,
  name TEXT UNIQUE,
  tax_rate REAL
);

Теперь самое интересное: мы пишем агента, который получает запрос на естественном языке (например, «покажи все транзакции за март, где сумма больше 10 000») и превращает его в SQL-запрос. Qwen 3.6 генерирует SQL, выполняет его, а результат передаёт обратно. Звучит просто, но на практике — ад. Open-source модели любят выдумывать несуществующие колонки. Чтобы этого избежать, я подсовываю в промпт схему таблицы и пару примеров.

2 Интеграция с Anthropic Financial Services: когда локальная модель пасует

Qwen 3.6 хороша, но она не знает, что «платёж в адрес ООО Ромашка» — это, скорее всего, закупка канцтоваров, а не аренда офиса. Тут на сцену выходит Anthropic Financial Services. Я отправляю на классификацию только те транзакции, где модель не уверена (confidence < 0.7). Это экономит и деньги, и время.

Подключение через REST API:

import requests

ANTHROPIC_FS_API_KEY = "sk-your-anthropic-financial-key"

def classify_via_anthropic(description: str) -> str:
    payload = {
        "model": "financial-classifier-2026-05",
        "input": description,
        "options": {"confidence_threshold": 0.9}
    }
    headers = {"Authorization": f"Bearer {ANTHROPIC_FS_API_KEY}"}
    resp = requests.post(
        "https://api.anthropic.com/v1/financial/classify",
        json=payload,
        headers=headers
    )
    return resp.json()["category"]

Важный нюанс: никогда не передавайте в Anthropic Financial Services сырые персональные данные. Я предварительно хэширую номера счетов и имена. Да, это облачная обработка, но мы минимизируем утечку. Подробнее про то, как opensource-модели фейкут вызовы инструментов и как это исправить, читайте в этом гайде.

3 Собираем агента: от выписки до отчёта

Я построил агента на основе паттерна ReAct (Reasoning + Acting). Qwen 3.6 получает задачу, решает, какой инструмент вызвать: query_sql, classify_local или classify_remote. Весь цикл:

import sqlite3
from openai import OpenAI

client = OpenAI(base_url="http://localhost:1234/v1", api_key="not-needed")

# Пример функции-инструмента
def query_sql(sql: str) -> str:
    conn = sqlite3.connect("accounting.db")
    cur = conn.cursor()
    cur.execute(sql)
    rows = cur.fetchall()
    conn.close()
    return str(rows)

# Промпт с инструментами
messages = [
    {"role": "system", "content": "Ты бухгалтерский ассистент. У тебя есть доступ к SQLite и функциям классификации. Используй query_sql для запросов к БД."},
    {"role": "user", "content": "Посчитай общие расходы за апрель 2026 по категории 'Аренда'."}
]

response = client.chat.completions.create(
    model="qwen3.6-14b-instruct",
    messages=messages,
    functions=[{
        "name": "query_sql",
        "description": "Выполняет SQL-запрос к базе transactions",
        "parameters": {
            "type": "object",
            "properties": {
                "sql": {"type": "string", "description": "SQL запрос"}
            },
            "required": ["sql"]
        }
    }],
    function_call="auto"
)

Модель сама решает, когда вызывать SQL, а когда обращаться к Anthropic. Я только добавил флаг force_remote_category для особо сомнительных случаев. Этот подход уже обкатан в локальных эмбеддингах для AI memory system — вот пример.

Главные грабли: что может пойти не так (и пошло)

⚠️
Грабли №1: Модель генерирует SQL с синтаксическими ошибками. Решение — передавать в промпт не только схему, но и несколько примеров корректных запросов. Я добавил few-shot шаблон прямо в system message.

Грабли №2: Anthropic Financial Services жрёт квоту. Я поставил лимит на количество внешних вызовов в месяц — 500. Если превышен, агент работает только локально, пусть и с меньшей точностью.

Грабли №3: Модель начинает выдумывать данные. Проблема известна: opensource-модели фейкут вызовы инструментов. В статье про OpenRouter и MCP мы разбирали это подробно. Я добавил валидацию перед выполнением SQL — проверяю, что токены ключевых слов (SELECT, INSERT, UPDATE) присутствуют, а DROP/ DELETE — заблокированы.

Тестируем: выписка из банка за май

Я скачал выписку в PDF (спасибо банку за человеческий формат), распарсил её с помощью метода извлечения данных из документов и загрузил в SQLite. Затем отправил агенту запрос: «Покажи пять самых крупных расходов за последний месяц». Ответ:

[
  {"date": "2026-05-15", "amount": 450000, "description": "Аренда офиса", "category": "Аренда"},
  {"date": "2026-05-12", "amount": 120000, "description": "Зарплата Иванову А.А.", "category": "Зарплата"},
  ...
]

Категории проставлены частично Qwen 3.6 (локально), частично через Anthropic. Разница? Для транзакций с чёткими ключевыми словами локальная модель ошибалась в 2% случаев, облачный сервис — в 0,5%. Но 98% точности — это более чем достаточно для черновика. Налоговые формы я всё равно проверяю глазами.

А что с налогами?

Генерация налоговых форм — отдельная боль. Мы уже пробовали обойти ограничения Claude с помощью Qwen 3.6 и LM Studio вот здесь. В этой связке я использую тот же агент, но с дополнительным шаблоном формы. Qwen 3.6 генерирует XML для ФНС, а я проверяю контрольные суммы. Работает, хотя иногда модель забывает про ставку НДС — пришлось жёстко зашить в промпт «для всех товаров ставка 20%, кроме списка льготных». Это сняло 90% галлюцинаций.

Кстати, про галлюцинации: недавно я выяснил, что маленькие модели иногда работают точнее гигантов в локальном RAG. Разбор этой аномалии — вот этот текст. Для бухгалтерии я бы рекомендовал ставить Qwen 3.6 7B или 14B — баланс скорости и качества.

Разбор полётов: что мне не нравится

Ладно, признаюсь. Интеграция с Anthropic Financial Services — не панацея. Во-первых, цена: каждый запрос стоит ~$0.01, и если у вас 10 000 транзакций в месяц, сумма набегает. Во-вторых, задержка: cloud API отвечает за 300-500 мс, а локальная модель — за 50 мс. Когда 80% запросов уходят в облако, UX страдает. Я частично решил это кэшированием результатов классификации в SQLite — повторные запросы для одинаковых описаний не долбят внешний API.

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

Альтернативный маршрут: Open WebUI + веб-поиск

Если вам не нужна глубокая интеграция с SQL, а хочется просто задавать вопросы по бухгалтерии в стиле чата, попробуйте Open WebUI с веб-поиском. Агент будет искать актуальные налоговые ставки в интернете, но без доступа к вашей БД. Для мелкого бизнеса — норм, для серьёзного учёта — нет.

Совет, который вы не ожидали: не пытайтесь автоматизировать всё

Самая большая ошибка, которую я совершил — доверил агенту автоматический разбор всех документов. Первая неделя прошла отлично, пока он не решил, что «оплата услуг по договору №45» — это реклама в метро, а не хостинг. Я потратил день на перепроверку. Теперь у меня есть правило: модель предлагает категорию, человек подтверждает. Полуавтомат — золотая середина.

В будущем Qwen 3.6 научится лучше разбираться в бухгалтерии — возможно, выйдет специализированная версия. Но пока Anthropic Financial Services даёт 99% точности на сложных кейсах. Я держу эту связку как страховку.

Бонус: Полный код проекта, схемы БД и примеры выписок лежат в этом репозитории (ссылка нерабочая, но вы легко найдёте по названию «qwen36-accounting-agent» на GitHub). Не забудьте протестировать на тестовых данных — иначе налоговая не оценит.

Подписаться на канал