Голосовые системы

Провайдер модели внутри Agent

src_agent/model_runtime.py выполняет одну генерацию через HTTP/SSE провайдера. Agent вызывает адаптер напрямую; отдельного LLM-сервиса и внутреннего RPC capture нет. Для диагностики ASR сохранён nats.llm.<user_id>: его обработчик в Agent использует тот же адаптер и очередь. Agent владеет состоянием запроса и исполнением инструментов; Gateway передаёт команду Agent напрямую. Core в текущем пути отсутствует.

Один активный слот модели и три ожидающих запроса ограничены FairPool и NATS pending buffers. Deadline из заголовков включает очередь. Отмена через chat.agent.cancel.llm проверяет request/session/attempt и закрывает HTTP-вызов; мгновенная остановка вычисления на внешнем GPU не гарантируется.

Провайдер OpenAI-compatible: VLLM_URL и VLLM_MODEL (по умолчанию Qwen3.8-27B-FP8). Точный вход считается через /tokenize; бюджет — 32768 токенов. При переполнении удаляется только необязательный кэш страницы, обязательный вход сохраняется или отклоняется явно. Локальная загрузка tokenizer приложению не нужна. enable_thinking:false сохраняется; скрытые рассуждения не публикуются.

Фактические вход, ответ провайдера и обработанный ответ отправляются в существующие диагностические каналы с request/generation ID и ограничениями размера. Ошибка диагностики не повторяет генерацию. Agent возвращает результат в тот же UI-канал. Полное время удалённого HTTP-вызова не обозначается временем работы GPU.

Запуск: python -m src_agent.main. Подключение задаётся CHAT_NATS_URL с конфигурационным наследованием NATS_URL; subjects — NATS_LLM_SUBJECT, NATS_EVENTS_SUBJECT и USER_ID. Health: chat.agent.health.llm — состояние адаптера и очереди; он не измеряет готовность GPU.

Исходники: сервис и ограниченная очередь, HTTP-провайдер, контракт. Старое описание Ollama/local и workflow доступно в истории.

Исходник

Скачать Markdown · К материалам исследования