# Стартовий контекст для нового чату (24.11.2025) Цей документ можна копіювати як короткий промт при старті нового діалогу, щоб одразу мати актуальний стан мультимодальних агентів. ## 🔊 Голос (STT/TTS) - STT сервіс `dagi-stt-service` перебудований з Whisper (`openai-whisper==20231117`, `torch==2.1.0`, `numpy<2`) та працює на `http://172.21.0.19:8895/api/stt/upload`. - Тест через `curl -F file=@/tmp/test.wav` повертає 200 OK (pipeline робочий). - Gateway (`telegram-gateway/app/router_handler.py`) надсилає голосові на `/api/stt/upload` з полем `file`. - Наступний крок: протестувати живим голосовим у будь-якого Telegram-бота; TTS відповіді ще не вмикались. ## 📸 Фото (vision) - `_handle_photo` тепер витягує `file_id` → `file_url` через Telegram Bot API та шле в Router. - У Router додано профіль `specialist_vision_8b` (alias на `qwen3-vl:8b`) і в metadata gateway передає `provider: "llm_specialist_vision_8b"`. - Потрібно проконтролювати, що Router повертає реальний опис (без fallback «не можу обробити») — залежить від доступності vision-моделі. ## 📡 Telegram Gateway - Перезапущений останньою версією (усі 9 ботів у polling). - Голосові/фото тепер проходять у NATS -> Router без 500 в gateway. - Постійне попередження `nats: not a JetStream message` не критичне (acks викликаються на звичайних повідомленнях, можна відкласти фікс). ## ✅ Що вже зроблено - STT контейнер перебудовано, health OK. - `_handle_photo` переписано на робочий pipeline. - Router залишився на Dev-конфізі, але має профіль `llm_specialist_vision_8b`. ## ⏭️ Що перевірити одразу після старту нового чату 1. Надіслати голосове в будь-якого бота, пересвідчитись що gateway → STT → Router повертає текст і TTS-відповідь (дивитись логи `telegram-gateway` та `dagi-stt-service`). 2. Надіслати фото — очікувати осмислену відповідь від `specialist_vision_8b`. 3. Якщо потрібен vision fallback, перевірити Swapper/vision-encoder сервіси. > Якщо чат стартує з нуля, достатньо скопіювати цей блок у промт агента, щоб він миттєво зрозумів поточний стан системи.