Initial SQL-only 1C adapter baseline
This commit is contained in:
+201
@@ -0,0 +1,201 @@
|
||||
# Roadmap
|
||||
|
||||
## Current Stand Status - 2026-06-20
|
||||
|
||||
Main UI:
|
||||
|
||||
- LAN URL: `http://192.168.220.91:8765/tools/model-chat/`
|
||||
- Current GPU profile: `image`
|
||||
- Running GPU containers: `llm-model-chat-ui`, `llm-transformers-image`, `llm-transformers-translation`
|
||||
- Stopped heavy GPU containers: `llm-vllm-text`, `llm-transformers-audio`, `llm-transformers-video`, `llm-llama-qwen3-coder-q6-test`
|
||||
- GPU mode is intentionally single-heavy-model: keep only the active task model loaded on RTX 4090.
|
||||
|
||||
Plugin status:
|
||||
|
||||
| Plugin | Current route | Status | Notes |
|
||||
| --- | --- | --- | --- |
|
||||
| Text | `qwen3-4b-instruct` on `vllm-text` | ready to start | Stopped in image profile to free VRAM. |
|
||||
| 1C | `qwen3-coder-1c-q6` on `llama.cpp` port `8081` | ready to start | Default manual-check route now prefers Qwen3-Coder Q6; LoRA/RAG remain separate candidates. |
|
||||
| Translation | `lmt-60-4b` on `translation-api` | online | API responds on `http://docker-gpu.cin.su:8010`. |
|
||||
| Audio | `whisper-large-v3-turbo` | ready to start | Model files are present; service is stopped in image profile. |
|
||||
| Video | `qwen2_5-vl-7b-instruct` | ready to start | Model files are present; service is stopped in image profile. |
|
||||
| Image | `sdxl-image` | online | SDXL generation and inpainting are verified through UI proxy. |
|
||||
|
||||
Recent verified checks:
|
||||
|
||||
- Browser UI opens and selects `Stable Diffusion XL Base 1.0 [staging]` for plugin `Фото`.
|
||||
- Image API route is `http://docker-gpu.cin.su:8040`, served model `sdxl-image`.
|
||||
- SDXL generate smoke test completed at 512x512, 4 steps, after warmup in `2194 ms`.
|
||||
- SDXL inpaint smoke test completed at 512x512, 4 steps, including first inpaint model load in `180649 ms`.
|
||||
- SDXL generate smoke test completed after image service restart at 512x512, 1 step, in `86866 ms`.
|
||||
- Qwen Image Edit files are present and `QwenImageEditPipeline` loads in about `31 s`, but a 512x512
|
||||
1-step edit did not finish within `1800 s` on RTX 4090 with CPU offload; SDXL remains the default
|
||||
practical image service.
|
||||
- Qwen3-Coder Q6 GPU/CPU comparison exists: GPU `57.72 tok/s`, CPU `2.66 tok/s`, speedup about `x21.7`.
|
||||
- `1C` route check returns `qwen3-coder-30b-a3b-instruct-q6_k` through `http://docker-gpu.cin.su:8081`.
|
||||
|
||||
Next technical priorities:
|
||||
|
||||
1. Done: add a first-class launcher for Qwen3-Coder Q6 on GPU instead of keeping it as an ad hoc test container.
|
||||
2. Done: make the `1C` route prefer the strongest available GGUF model for manual checks, while keeping LoRA/RAG as separate modes.
|
||||
3. Done: add smoke tests for `audio` and `video` profiles similar to the completed image smoke tests; live runs wait for profile switches.
|
||||
4. Done: add an image model mode switch for SDXL vs Qwen Image Edit before trying Qwen Image Edit on RTX 4090.
|
||||
5. Done: add a status report generator so this section can be regenerated from `/api/health`.
|
||||
|
||||
## Stage 1: Platform Skeleton
|
||||
|
||||
- Зафиксировать архитектуру `core + plugins`.
|
||||
- Описать правила model registry.
|
||||
- Создать шаблон model card.
|
||||
- Подготовить структуру плагинов.
|
||||
|
||||
## Stage 2: First Inference
|
||||
|
||||
- Выбрать первую текстовую модель.
|
||||
- Описать ее model card.
|
||||
- Поднять inference на `docker-gpu.cin.su`.
|
||||
- Проверить API и базовые eval-тесты.
|
||||
|
||||
Текущая основа:
|
||||
|
||||
- `core/deploy/docker-gpu/vllm/compose.yaml`
|
||||
- `core/deploy/docker-gpu/vllm/.env.example`
|
||||
- `docs/runbooks/first-vllm-inference.md`
|
||||
- `registry/model-cards/qwen3-4b-instruct-2507.yaml`
|
||||
- `scripts/download_hf_model.py`
|
||||
- `scripts/list_model_cards.py`
|
||||
- `scripts/build_model_index.py`
|
||||
|
||||
## Stage 3: 1C RAG
|
||||
|
||||
- Собрать документы и правила по 1С.
|
||||
- Подготовить индекс для поиска.
|
||||
- Добавить инструменты работы с метаданными 1С.
|
||||
- Сделать eval-набор задач по BSL и запросам 1С.
|
||||
|
||||
Текущая основа:
|
||||
|
||||
- `plugins/1c/rag/manifests/corpus.yaml`
|
||||
- `scripts/prepare_1c_rag_corpus.py`
|
||||
- `plugins/1c/tools/tool-contract.yaml`
|
||||
- `plugins/1c/prompts/system.md`
|
||||
- `plugins/1c/evals/smoke.yaml`
|
||||
- `scripts/build_1c_rag_index.py`
|
||||
- `scripts/search_1c_rag.py`
|
||||
- `scripts/ask_1c_rag.py`
|
||||
- `scripts/check_1c_rag_prompt.py`
|
||||
- `plugins/1c/metadata/schema.json`
|
||||
- `scripts/validate_1c_metadata_snapshot.py`
|
||||
- `scripts/convert_1c_metadata_to_rag.py`
|
||||
|
||||
## Stage 4: 1C Fine-Tuning
|
||||
|
||||
- Накопить проверенные пары вопрос/ответ.
|
||||
- Очистить данные от секретов и персональных данных.
|
||||
- Обучить LoRA/adapter.
|
||||
- Сравнить base model, RAG и adapter.
|
||||
|
||||
Текущая основа:
|
||||
|
||||
- `plugins/1c/training/examples/instruction.examples.jsonl`
|
||||
- `plugins/1c/training/manifests/dataset.yaml`
|
||||
- `scripts/validate_1c_training_data.py`
|
||||
- `scripts/prepare_1c_training_data.py`
|
||||
- `plugins/1c/training/configs/qwen3-coder-30b-a3b-lora.yaml`
|
||||
- `scripts/preflight_1c_training.py`
|
||||
- `scripts/train_1c_lora.py`
|
||||
- `core/deploy/docker-gpu/training/1c-lora.compose.yaml`
|
||||
- `plugins/1c/adapters/qwen3-coder-30b-a3b-1c-lora-v1.yaml`
|
||||
- `registry/model-cards/qwen3-coder-30b-a3b-1c-lora-v1.yaml`
|
||||
|
||||
## Stage 5: Service Split
|
||||
|
||||
- Вынести тяжелые плагины в отдельные контейнеры.
|
||||
- Описать API-контракты.
|
||||
- Добавить мониторинг и контроль версий моделей.
|
||||
|
||||
Текущая основа:
|
||||
|
||||
- `core/deploy/docker-gpu/transformers/translation.compose.yaml`
|
||||
- `core/deploy/docker-gpu/transformers/audio.compose.yaml`
|
||||
- `core/deploy/docker-gpu/transformers/video.compose.yaml`
|
||||
- `scripts/transformers_plugin_server.py`
|
||||
- `scripts/deploy_transformers_service.ps1`
|
||||
|
||||
## Stage 6: GPU Service Manager
|
||||
|
||||
- Управлять запуском/остановкой тяжелых сервисов моделей.
|
||||
- Показывать VRAM и endpoint выбранной модели в UI.
|
||||
- Исключить конфликт нескольких compose-проектов.
|
||||
- Оставить ручной операторский путь через PowerShell.
|
||||
|
||||
Текущая основа:
|
||||
|
||||
- `scripts/manage_model_service.ps1`
|
||||
- `POST /api/service-control` in `scripts/model_chat_server.py`
|
||||
- service panel in `tools/model-chat/index.html`
|
||||
|
||||
## Stage 7: Model Cabinet
|
||||
|
||||
- Загружать модель файлом из личного кабинета.
|
||||
- Импортировать модель по URL или серверному пути.
|
||||
- Проверять наличие файлов, размер, checksum и карточку модели.
|
||||
- Переводить проверенную модель из incoming в рабочий registry.
|
||||
|
||||
Текущая основа:
|
||||
|
||||
- `/api/model-ingest/upload`
|
||||
- `/api/model-ingest/source`
|
||||
- `/api/model-ingest/verify`
|
||||
- `reports/model-ingest/jobs.jsonl`
|
||||
|
||||
## Stage 8: Video And Vision
|
||||
|
||||
- Реализовать image endpoint для Qwen2.5-VL.
|
||||
- Добавить загрузку изображения в UI.
|
||||
- Для видео сделать извлечение кадров и VLM-анализ.
|
||||
- Добавить eval-набор для экранов, документов и видео-сцен.
|
||||
|
||||
## Stage 9: 1C Live Integration
|
||||
|
||||
- Подключить read-only коннектор к реальной базе 1С.
|
||||
- Добавить быстрый operational loop без обязательной полной XML/EDT-синхронизации на каждый шаг.
|
||||
- Индексировать реальные метаданные и BSL-модули через легкий 1C agent или JSON snapshot.
|
||||
- Подключить intake задач из текста, Excel-файлов и скриншотов/макетов интерфейса.
|
||||
- Ввести полные 1C-пути как основной язык агента:
|
||||
`Справочник.Контрагенты.Наименование`, а не голое `Наименование`.
|
||||
- Разделить effective-read и editor-provenance: агент читает итоговую картину
|
||||
1С, но пишет только через origin/layer-aware write plan.
|
||||
- Добавить отдельное разрешение BSL-символов внутри модуля/формы, чтобы
|
||||
переменная `Номенклатура` не смешивалась с объектом
|
||||
`Справочник.Номенклатура`.
|
||||
- Расширить поддержку расширений: порядок применения, добавленные объекты,
|
||||
adopted base objects, insert-before/after, replace, replace-with-control.
|
||||
- Добавить quality gates перед любыми изменениями.
|
||||
- Обучать LoRA только после RAG baseline и проверенного датасета.
|
||||
|
||||
Текущая основа:
|
||||
|
||||
- `docs/runbooks/1c-operational-coding.md`
|
||||
- `docs/1c-extension-layer-plan.md`
|
||||
- `docs/1c-adapter-api-contract.md`
|
||||
- `plugins/1c/connector/contracts/openapi.yaml`
|
||||
- `plugins/1c/connector/policies/read-only-query.yaml`
|
||||
- `plugins/1c/connector/policies/change-workflow.yaml`
|
||||
|
||||
## Cross-Cutting: Evals
|
||||
|
||||
- `scripts/validate_evals.py`
|
||||
- `scripts/run_1c_smoke_eval.py`
|
||||
- `docs/runbooks/evals.md`
|
||||
|
||||
## Cross-Cutting: Observability And Quality Logging
|
||||
|
||||
- Add centralized access, turn, model-call, tool-call, and retrieval logging.
|
||||
- Propagate `trace_id` and `request_id` across agent, adapter, MCP, and model routes.
|
||||
- Add redaction, retention, and export rules for quality analysis.
|
||||
- Add reviewed quality labels and aggregate reports for regressions and route comparisons.
|
||||
|
||||
Current plan:
|
||||
|
||||
- `docs/quality-audit-logging-plan.md`
|
||||
Reference in New Issue
Block a user