Files
llm/docs/runbooks/model-chat-testbench.md
T

72 lines
2.8 KiB
Markdown

# Model Chat Testbench
Цель: вручную проверять модели из `registry/index.json` через чат с выбором плагина и модели.
## Web UI
```powershell
python scripts/model_chat_server.py
```
Открыть:
```text
http://127.0.0.1:8765
```
Интерфейс читает модели из `registry/index.json`, группирует их по плагинам и отправляет запросы в OpenAI-compatible endpoint через локальный proxy.
Возможности:
- выбор endpoint preset: `vLLM text`, `llama.cpp GGUF`, `local`;
- проверка `/v1/models` и наличия выбранного `served_model_name`;
- выбор плагина и модели из registry;
- готовые тестовые prompt-пакеты по каждому плагину;
- сравнение нескольких моделей на одном prompt;
- сборка 1C RAG prompt с найденными источниками;
- сохранение каждого ответа и ошибки в JSONL;
- ручная оценка ответа: `ok`, `needs_review`, `bad`.
Endpoint по умолчанию:
```text
http://docker-gpu.cin.su:8000
```
## CLI Smoke Chat
```powershell
python scripts/model_chat_cli.py --plugin text
python scripts/model_chat_cli.py --plugin 1c --model-id qwen3-4b-instruct-2507
python scripts/model_chat_cli.py --plugin translation --prompt "Переведи на английский: Проверяем модель."
```
## Reports
Результаты сохраняются в:
```text
reports/model-chat/YYYYMMDD.jsonl
```
Записи `type=chat` содержат prompt, ответ, модель, endpoint, latency и статус. Записи `type=feedback` содержат ручную оценку и ссылку на `parent_id`.
Записи `type=compare` содержат общий prompt и ответы нескольких моделей. Записи `type=rag_prompt` содержат вопрос, количество найденных источников и список source chunks.
## 1C RAG Prompt
Для кнопки `1C RAG` нужен подготовленный индекс:
```powershell
python scripts/prepare_1c_rag_corpus.py
python scripts/build_1c_rag_index.py
```
Если индекс отсутствует, UI покажет команду подготовки.
## Notes
- Для vLLM используется `served_model_name` из model card.
- Для GGUF/llama.cpp укажите endpoint соответствующего сервиса, например `--base-url http://docker-gpu.cin.su:8080`.
- Если GPU endpoint недоступен, UI покажет ошибку запроса, но каталог моделей все равно загрузится.