|
|
||
|---|---|---|
| .. | ||
| .vscode | ||
| backend | ||
| data | ||
| eval_cases | ||
| frontend | ||
| logs | ||
| prompts | ||
| reports | ||
| schemas | ||
| scripts | ||
| tmp | ||
| .env.example | ||
| README.md | ||
| package-lock.json | ||
| package.json | ||
| prompts.zip | ||
| start-dev-mcp.cmd | ||
| start-dev.cmd | ||
| tmp_utf_patch.txt | ||
| tmp_utf_test.txt | ||
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-agentnamespace для будущей интеграции вdc_node.
Быстрый запуск (Windows)
- Опционально: отдельная среда Miniconda
conda create -n ndc-gui nodejs=22 -y
conda activate ndc-gui
- Backend
cd X:\1C\NDC_1C\llm_normalizer\backend
npm install
npm run dev
- Frontend (в новом терминале)
cd X:\1C\NDC_1C\llm_normalizer\frontend
npm install
npm run dev
- Открыть 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 варианта:
- Через Tasks:
Terminal -> Run Task -> NDC: Install All(первый раз)Terminal -> Run Task -> NDC: Dev All (Backend + Frontend)
- Через одну команду в терминале:
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-connectionPOST /api/normalizePOST /api/eval/runGET /api/historyGET /api/history/:trace_idPOST /api/presets/saveGET /api/presetsGET /api/healthGET /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
История автопрогонов и разметка
В интерфейсе есть отдельный режим История автопрогонов с операционным циклом:
- Настроить генерацию вопросов (режим, количество, личность, prompt личности).
- Сгенерировать пачку вопросов.
- Отредактировать вопросы перед запуском.
- Запустить асинхронный прогон (
assistant_stage1,single-pass-strict). - Смотреть диалог прогона в live-режиме (polling статуса + сообщения по кейсам).
- Разметить ответы ассистента:
- рейтинг
1..5, - комментарий,
manual_case_decision,- автор.
- рейтинг
- Отметить кейс выполненным (
resolved) или вернуть в открытые. - Смотреть пост-анализ и очереди фиксов по категориям.
Важный момент по qwen_seed
qwen_seed использует тот же активный LLM-контур подключения, что и ответы ассистента
(тот же provider/model/baseUrl), но в другой роли: генератор вопросов.
Основные API для автопрогонов
GET /api/autoruns/historyGET /api/autoruns/history/:run_idGET /api/autoruns/history/:run_id/case/:case_id/dialogGET /api/autoruns/annotationsPOST /api/autoruns/annotationsPATCH /api/autoruns/annotations/:annotation_idGET /api/autoruns/manual-decision-schemaGET /api/autoruns/post-analysisGET /api/autoruns/autogen/historyGET /api/autoruns/autogen/personality-catalogPOST /api/autoruns/autogen/generatePOST /api/eval/run-async/startGET /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.mddocs/TECH/capabilities_registry.jsondocs/TECH/manual_case_decision_schema.jsondocs/TECH/ui_markup_system.mddocs/TECH/history_colibration.md