# 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

```powershell
conda create -n ndc-gui nodejs=22 -y
conda activate ndc-gui
```

2. Backend

```powershell
cd X:\1C\NDC_1C\llm_normalizer\backend
npm install
npm run dev
```

3. Frontend (в новом терминале)

```powershell
cd X:\1C\NDC_1C\llm_normalizer\frontend
npm install
npm run dev
```

4. Открыть GUI

- `http://localhost:5174`

Backend по умолчанию:
- `http://localhost:8787`

## Запуск из одной папки (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)`

2. Через одну команду в терминале:

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

Или:

```powershell
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

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