NODEDC_1C/llm_normalizer/README.md

5.5 KiB
Raw Permalink Blame History

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