NODEDC_1C/llm_normalizer
dctouch 2b2e37acce Open-World: закрепить границу складского неликвида 2026-05-05 12:21:38 +03:00
..
.vscode Initial import NDC_1C 2026-03-26 10:38:25 +03:00
backend Open-World: закрепить границу складского неликвида 2026-05-05 12:21:38 +03:00
data Runtime: сохранить saved-session eval cases 2026-05-05 09:47:59 +03:00
eval_cases Этап 4 / Волна 10: корректировка settlement-кейса — доменная фиксация синтеза, честное покрытие, удержание фокуса / Этап 4 / Волна 11: бизнес-якоря, доменное заземление и устранение утечки дебага 2026-03-28 02:17:19 +03:00
frontend ЮИ - фикс кодировки + порядок в карточках автопрогонов 2026-04-19 00:10:38 +03:00
logs ARCH: зафиксировать накопленные артефакты и replay-спеки 2026-04-22 22:02:39 +03:00
prompts АРЧ - Ассистент: отделить meta-followup по прошлому ответу от повторного запуска address lane 2026-04-15 12:38:44 +03:00
reports Этап 4 / Волна 10: корректировка settlement-кейса — доменная фиксация синтеза, честное покрытие, удержание фокуса / Этап 4 / Волна 11: бизнес-якоря, доменное заземление и устранение утечки дебага 2026-03-28 02:17:19 +03:00
schemas Initial import NDC_1C 2026-03-26 10:38:25 +03:00
scripts Stage 2 завершён: problem-first ответы и follow-up continuity - ассистент переведён от entity-heavy логики к problem-first ответам с problem-unit слоем, удержанием контекста в follow-up и очисткой пользовательского ответа от сырых технических ссылок. 2026-03-26 14:53:52 +03:00
tmp Этап 4 / Волна 10: корректировка settlement-кейса — доменная фиксация синтеза, честное покрытие, удержание фокуса / Этап 4 / Волна 11: бизнес-якоря, доменное заземление и устранение утечки дебага 2026-03-28 02:17:19 +03:00
.env.example АДРЕСНЫЙ РЕЖИМ - M2.3b тюнинг account-scope и диагностика стадий адресного рантайма 2026-03-29 20:57:55 +03:00
README.md АДРЕСНЫЙ РЕЖИМ - авторан история - юи + адресный рендер прогонов в реалтайме 2026-04-09 23:48:32 +03:00
package-lock.json Initial import NDC_1C 2026-03-26 10:38:25 +03:00
package.json Этап 4 / Волна 10: корректировка settlement-кейса — доменная фиксация синтеза, честное покрытие, удержание фокуса / Этап 4 / Волна 11: бизнес-якоря, доменное заземление и устранение утечки дебага 2026-03-28 02:17:19 +03:00
prompts.zip Initial import NDC_1C 2026-03-26 10:38:25 +03:00
start-dev-mcp.cmd АДРЕСНЫЙ РЕЖИМ -Step-5 - feat(assistant): стабилизация свободного LLM-роутинга, прическа маршрутов chat/address, прототип прогноза НДС 2026-04-08 23:40:12 +03:00
start-dev.cmd Initial import NDC_1C 2026-03-26 10:38:25 +03:00
tmp_utf_patch.txt Stage 3: улучшена логика жизненного цикла и очищены ответы ассистента 2026-03-26 20:21:51 +03:00
tmp_utf_test.txt Stage 3: улучшена логика жизненного цикла и очищены ответы ассистента 2026-03-26 20:21:51 +03:00

README.md

NDC AI First Layer (LLM Normalizer Playground)

Локальный модуль front + back для нормализации бухгалтерских запросов через OpenAI token.

Ключевые свойства:

  • русифицированный GUI (терминология NDC);
  • backend-proxy (ключ не уходит во фронт);
  • Responses API + structured JSON schema normalized_query_v1 / normalized_query_v2 / normalized_query_v2_0_1;
  • trace/history/eval;
  • совместимый accounting-agent namespace для будущей интеграции в dc_node.

Быстрый запуск (Windows)

  1. Опционально: отдельная среда Miniconda
conda create -n ndc-gui nodejs=22 -y
conda activate ndc-gui
  1. Backend
cd X:\1C\NDC_1C\llm_normalizer\backend
npm install
npm run dev
  1. Frontend (в новом терминале)
cd X:\1C\NDC_1C\llm_normalizer\frontend
npm install
npm run dev
  1. Открыть GUI
  • http://localhost:5174

Backend по умолчанию:

  • http://localhost:8787

Чтобы включить live-probe в 1С через MCP (для hybrid_store_plus_live и live_mcp_drilldown), задайте переменные перед запуском backend:

$env:FEATURE_ASSISTANT_MCP_RUNTIME_V1='1'
$env:ASSISTANT_MCP_PROXY_URL='http://127.0.0.1:6003'
$env:ASSISTANT_MCP_CHANNEL='default'

Запуск из одной папки (VS Code)

Открой в VS Code папку:

  • X:\1C\NDC_1C\llm_normalizer

Дальше 2 варианта:

  1. Через Tasks:
  • Terminal -> Run Task -> NDC: Install All (первый раз)
  • Terminal -> Run Task -> NDC: Dev All (Backend + Frontend)
  1. Через одну команду в терминале:
cd X:\1C\NDC_1C\llm_normalizer
start-dev.cmd

С live-MCP (прокси 1С на 127.0.0.1:6003):

cd X:\1C\NDC_1C\llm_normalizer
start-dev-mcp.cmd

Или:

cd X:\1C\NDC_1C\llm_normalizer
npm.cmd run dev:all

Основные endpoint-ы

  • POST /api/openai/test-connection
  • POST /api/normalize
  • POST /api/eval/run
  • GET /api/history
  • GET /api/history/:trace_id
  • POST /api/presets/save
  • GET /api/presets
  • GET /api/health
  • GET /api/accounting-agent/v1/health

Где хранятся данные

  • traces: llm_normalizer/data/traces
  • presets: llm_normalizer/data/presets
  • eval cases/reports: llm_normalizer/data/eval_cases

Для POST /api/eval/run поддержан batch-ввод через rawQuestions (разделитель ; или пустая строка).

Тесты backend

cd X:\1C\NDC_1C\llm_normalizer\backend
npm test

История автопрогонов и разметка

В интерфейсе есть отдельный режим История автопрогонов с операционным циклом:

  1. Настроить генерацию вопросов (режим, количество, личность, prompt личности).
  2. Сгенерировать пачку вопросов.
  3. Отредактировать вопросы перед запуском.
  4. Запустить асинхронный прогон (assistant_stage1, single-pass-strict).
  5. Смотреть диалог прогона в live-режиме (polling статуса + сообщения по кейсам).
  6. Разметить ответы ассистента:
    • рейтинг 1..5,
    • комментарий,
    • manual_case_decision,
    • автор.
  7. Отметить кейс выполненным (resolved) или вернуть в открытые.
  8. Смотреть пост-анализ и очереди фиксов по категориям.

Важный момент по qwen_seed

qwen_seed использует тот же активный LLM-контур подключения, что и ответы ассистента (тот же provider/model/baseUrl), но в другой роли: генератор вопросов.

Основные API для автопрогонов

  • GET /api/autoruns/history
  • GET /api/autoruns/history/:run_id
  • GET /api/autoruns/history/:run_id/case/:case_id/dialog
  • GET /api/autoruns/annotations
  • POST /api/autoruns/annotations
  • PATCH /api/autoruns/annotations/:annotation_id
  • GET /api/autoruns/manual-decision-schema
  • GET /api/autoruns/post-analysis
  • GET /api/autoruns/autogen/history
  • GET /api/autoruns/autogen/personality-catalog
  • POST /api/autoruns/autogen/generate
  • POST /api/eval/run-async/start
  • GET /api/eval/run-async/:job_id

Где лежат данные автопрогонов

  • аннотации и ручная разметка:
    • llm_normalizer/data/autorun_annotations/annotations.json
  • история генераций:
    • llm_normalizer/data/autorun_generators/history.json
  • сгенерированные кейс-сеты (если включено сохранение):
    • llm_normalizer/data/eval_cases/*.json
  • сессии диалогов ассистента по кейсам:
    • llm_normalizer/data/assistant_sessions/*.json

Канонические техдоки

  • docs/TECH/assistant_canon.md
  • docs/TECH/capabilities_registry.json
  • docs/TECH/manual_case_decision_schema.json
  • docs/TECH/ui_markup_system.md
  • docs/TECH/history_colibration.md