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