Блог
Технические обзоры

Мульти-LLM-оркестрация: смена модели, сравнение и fallback

Как Simmetric Chat оркестрирует Ollama, OpenAI, Anthropic, OpenRouter и Gemini с 20 preset'ами провайдеров, палитрой моделей Cmd+K и сравнением бок о бок.

Simmetric Team7 мин чтения15/04/2026

Развёртывание с одной моделью - решение, которое вы перерастёте

Команды не остаются верны одному LLM - и не должны. Быстрая локальная модель, отлично отвечающая на вопросы поддержки, проваливается на нюансированном юридическом анализе. Frontier-модель, справляющаяся с рассуждениями, слишком дорога, чтобы отвечать на «что в этом документе?». Провайдер меняет цены, снимает модель или уходит в даун - и внезапно весь продукт лежит или пересматривает контракт. Поэтому серьёзная AI-платформа относится к «какая модель» как к решению времени выполнения, а не установки.

Simmetric Chat делает это сквозным образом: каждая граница провайдера - стратегия, модель выбирается на чат, оценка встроена в интерфейс, а сбой изящно деградирует вместо ошибки. Эта статья разбирает слой оркестрации - провайдеры, опыт переключения, режим сравнения и цепочку fallback.

Пять первоклассных провайдеров, двадцать preset'ов

Из коробки платформа говорит с пятью первоклассными провайдерами: Ollama (локальный, privacy-first по умолчанию), OpenAI, Anthropic, OpenRouter и Gemini. У каждого выделенный потоковый парсер - сетевые форматы различаются достаточно, чтобы обработка стриминга как общей задачи порождала тонкие баги, - поэтому потоковые токены, цитаты и терминальные события парсятся по провайдеру, а не приблизительно.

Помимо первоклассной пятёрки двадцать preset'ов провайдеров покрывают OpenAI-совместимую экосистему: DeepSeek, Mistral, Kimi/Moonshot, NVIDIA NIM, Qwen, xAI, Z.AI/GLM, MiniMax, LM Studio, GitHub Copilot и другие. Поскольку эти сервисы реализуют сетевой протокол OpenAI, добавить ещё один - строка конфигурации (базовый URL, ключ, список моделей), а не правка кода. Развёртывание может смешивать локальный Ollama для чувствительной работы, облачную frontier-модель для глубокого анализа и дешёвый OpenAI-совместимый провайдер для массового суммаризации - всё в одном workspace.

Конфигурация следует правилам приоритета платформы: переменные окружения задают инфраструктурные значения по умолчанию, изменения из админ-панели действуют сразу, а настройки разрешаются как база данных выше окружения выше дефолтов. Глобальный провайдер по умолчанию - ровно это: значение по умолчанию, переопределяемое на workspace и на чат.

Смена модели, не покидая разговор

Выбор модели живёт там, где живёт разговор. Поле ввода чата несёт бейдж модели, показывающий, кто ответит на следующее сообщение; клик по нему - или Cmd+K (Ctrl+K в Windows/Linux) - открывает палитру быстрого переключения. Палитра группирует модели по провайдерам и аннотирует их бейджами возможностей из метаданных модели:

  • local-only - работает on-premise, никаких исходящих данных
  • fastest - самая низкая задержка в текущем наборе провайдеров
  • smartest - самое высокое доступное качество
  • reasoning - способна к chain-of-thought

Ввод /model <имя> в поле ввода мгновенно переключает на подходящую модель, с отфильтрованной палитрой как запасным вариантом, когда имя неточное. Текст команды удаляется из сообщения перед отправкой, так что slash-команда никогда не загрязняет историю чата.

Две детали делают это удобным, а не просто возможным. Первая: переключение происходит посреди разговора - один и тот же чат может перейти с локальной модели на frontier-модель и обратно, и каждое сообщение сохраняет, какая модель его на самом деле обслужила, - след аудита использования моделей переживает переключение. Вторая: палитра - keyboard-first поверхность: паттерн Cmd+K делает выбор модели ценой одной клавиши, а не путешествия на страницу настроек, и это разница между функцией, которой люди пользуются, и функцией, которую настроили один раз и забыли.

Сравнение бок о бок

Выбирать модель по описанию - выстрел вслепую; выбирать её, глядя на два ответа на ваш реальный промпт, - инженерия. Нажатие Cmd+Shift+M (Ctrl+Shift+M) открывает сравнение моделей бок о бок: две панели одновременно стримят ответы разных моделей на один промпт, токен за токеном.

Поток, который это открывает, - тот, что формализуют eval-harness'ы, - только в повседневной поверхности:

  • Спросите один раз, наблюдайте, как обе модели рассуждают: задержка, формулировки и различия в grounding сразу видны
  • Сохраните ответ и продолжайте разговор с этой моделью
  • Отправьте в одну панель, чтобы свести выводы в один тред
  • Закройте сравнение и продолжайте с той или другой моделью

Поскольку сравнение использует ту же инфраструктуру стриминга и цитат, что и обычный чат, сравниваемые ответы приходят с целыми RAG-цитатами - вы можете оценивать не только то, как модель формулирует ответ, но и опирает ли она его на правильные источники. Это различие важно на retrieval-платформе: модель, которая пишет красиво, но цитирует не тот документ, хуже той, что пишет просто и цитирует правильно.

Цепочка fallback

Модели становятся недоступны: сбой провайдера, снятое имя модели, исчерпанная посреди разговора квота. Ответ Simmetric Chat - детерминированная цепочка fallback: если выбранная модель стала недоступна, система автоматически падает на значение по умолчанию workspace, затем на глобальное, затем на любую доступную модель. Toast уведомляет о переключении с опцией «Отменить».

Цепочка срабатывает и при периодическом polling'е (каждые тридцать секунд), и при SSE-ошибках во время стриминга, так что сбой провайдера посреди ответа перенаправляется без потери разговора. Цель дизайна конкретна: сбой модели должен деградировать платформу до её следующей модели, а не до страницы ошибки. Пользователи видят уведомление вместо stack trace, а оператор - платформу, которая продолжала обслуживать.

Для многоинстансных развёртываний та же философия дизайна расширяется наружу: fan-out стриминга и очередь задач, держащие чат отзывчивым под нагрузкой, - это вынесенное состояние, разобранное отдельно в статье о масштабировании.

Что слой оркестрации вам покупает

Собирая нити вместе: слой оркестрации - это то, что превращает выбор провайдера из закупочного решения в набор runtime-рычагов:

  • Контроль затрат. Направляйте массовую работу дешёвому OpenAI-совместимому провайдеру, а frontier-модель резервируйте для промптов, которые её требуют, - на чат, а не на развёртывание.
  • Зоны приватности. Держите чувствительные workspaces на моделях local-only, позволяя общим workspaces использовать облачные провайдеры, - бейджи возможностей делают зону видимой в момент выбора.
  • Устойчивость. Сбои провайдеров становятся сменами модели, а не простоями, благодаря цепочке fallback и перенаправлению стриминга.
  • Оценка как привычка. Сравнение бок о бок делает «на какой модели нам стандартизироваться?» двухминутной проверкой раз в неделю вместо квартального исследовательского проекта.

Всё стоит на той же стратегийной границе провайдеров, которую использует остальная платформа, поэтому добавление провайдера - первоклассного или OpenAI-совместимого preset'а - никогда не трогает чат, RAG или цикл агента.

Читайте полное руководство в документации →

Похожие статьи

Синтез-конвейер: противоречия, бюджеты, одобрение
Технические обзоры

Синтез-конвейер: противоречия, бюджеты, одобрение

Как конвейер синтеза Simmetric Chat собирает документы архива в вики-страницы - ходы LLM с бюджетом на прогон, обнаружение противоречий с фильтром сходства и LLM-судьёй, и заслон выборочного одобрения прежде, чем что-то тронет файловую систему.

Simmetric Team · 16/10/20267 мин чтения
Квоты и учёт затрат: движок hold-and-settle
Технические обзоры

Квоты и учёт затрат: движок hold-and-settle

Как quota engine Simmetric Chat охватывает токены, хранилище и настоящие деньги - дизайн без второго счётчика на ledger'е, семантика fail-open когда ничего не настроено, и двухфазная hold-and-settle-бронь, делающая потолки расхода заслоном, а не отчётом.

Simmetric Team · 14/10/20268 мин чтения
Wiki-движок знаний: правила, директивы и синтез
Технические обзоры

Wiki-движок знаний: правила, директивы и синтез

Как wiki-движок Simmetric Chat управляет записями в архивы трёхслойной моделью инструкций - жёсткие правила, принуждаемые кодом, консультативный schema prompt каждого архива, структурированные поля - и что цепочка приоритетов значит на практике.

Simmetric Team · 11/10/20267 мин чтения