Обзор LLM-провайдеров
Система LLM-провайдеров в Elftia позволяет подключаться к нескольким сервисам больших языковых моделей и без проблем переключаться между ними через единый уровень абстракции API, не беспокоясь о различиях в форматах базовых API.
Когда использовать
- Вам нужно подключиться к новому LLM-сервису (например, OpenAI, Anthropic, DeepSeek и др.)
- Вы хотите использовать модели нескольких провайдеров в рамках одного приложения
- Вам нужно подключиться к локально развёрнутым моделям (например, Ollama или LM Studio)
- Вы хотите обеспечить высокую доступность и балансировку нагрузки через пул API-ключей
Основные понятия
Провайдер
Провайдер — это единица конфигурации для LLM API-сервиса. Каждый провайдер содержит следующую ключевую информацию:
| Понятие | Описание | Пример |
|---|---|---|
| Название | Отображаемое имя провайдера | OpenAI, DeepSeek, Zhipu GLM |
| Формат API | Протокол API, используемый провайдером | openai, anthropic, google |
| Базовый URL | Базовый адрес для запросов API | https://api.openai.com/v1/chat/completions |
| API-ключ | Учётные данные для аутентификации | sk-... или ссылка на переменную окружения, например $OPENAI_API_KEY |
| Список моделей | Модели, доступные у этого провайдера | gpt-4o, claude-sonnet-4-5, gemini-3-pro |
Формат API
Elftia поддерживает 5 форматов API, используя встроенные преобразователи форматов (Transformers) для автоматической обработки различий в форматах запросов и ответов:
| Формат API | Описание | Используется |
|---|---|---|
openai | Формат OpenAI Chat Completions (/v1/chat/completions) | OpenAI, DeepSeek, Zhipu, Ollama, Groq и большинство других провайдеров |
anthropic | Формат Anthropic Messages (/v1/messages) | Официальный Anthropic, MiniMax |
google | Формат Google Gemini | Google Gemini |
azure-openai | Формат Azure OpenAI (аналогичен OpenAI, другая аутентификация) | Azure OpenAI Service |
openai-response | Формат OpenAI Responses API (/v1/responses) | Новый OpenAI Responses API |
Модель
Под каждым провайдером можно настроить несколько моделей. Конфигурация модели включает:
- ID модели: Идентификатор, используемый при вызове API (например,
gpt-4o) - Отображаемое имя: Название, которое показывается в UI (например,
GPT-4o) - Категория: chat, reasoning, code, image и т.д.
- Флаги возможностей: Поддерживает ли модель обработку изображений, вызов функций, режим рассуждений и веб-поиск
- Длина контекста: Максимальное количество входных токенов, поддерживаемых моделью
- Максимальный вывод: Максимальное количество токенов, которое модель может генерировать за один ответ
API-ключ
API-ключ — это учётные данные для аутентификации при доступе к сервису провайдера. Elftia поддерживает два способа настройки API-ключа:
- Прямой ввод: Вставить API-ключ непосредственно в настройках UI
- Ссылка на переменную окружения: Сослаться на системную переменную окружения, добавив к имени префикс
$(например,$OPENAI_API_KEY) — удобно, если вы не хотите хранить ключ в конфигурации приложения
Процесс обработки запроса
После отправки сообщения пользователем Elftia обрабатывает запрос следующим образом:
Пользователь отправляет сообщение
|
v
Выбор провайдера и модели
|
v
Разрешение API-ключа (прямое значение / переменная окружения / пул ключей)
|
v
Transformer: преобразование унифицированного запроса в формат целевого API
| (openai / anthropic / google / ...)
v
Отправка запроса в API провайдера
|
v
Transformer: преобразование ответа провайдера в унифицированный формат
|
v
Отображение ответа в интерфейсе чата
Список провайдеров по умолчанию
Elftia поставляется со следующими шаблонами провайдеров, которые создаются автоматически при первом запуске (по умолчанию отключены — чтобы использовать их, введите API-ключ и включите):
| Провайдер | Формат API | Базовый URL | Особенности |
|---|---|---|---|
| DeepSeek | openai | https://api.deepseek.com/v1 | Отличное соотношение цены и качества, поддержка режима рассуждений |
| OpenRouter | openai | https://openrouter.ai/api/v1 | Агрегирует 200+ моделей с единой тарификацией |
| SiliconFlow | openai | https://api.siliconflow.cn/v1 | Ускоренный доступ в Китае, размещает модели с открытым исходным кодом |
| OpenAI | openai | https://api.openai.com/v1/chat/completions | Серия GPT, модели рассуждений серии o |
| Anthropic | anthropic | https://api.anthropic.com/v1/messages | Серия Claude, встроенная цепочка рассуждений |
| Google Gemini | https://generativelanguage.googleapis.com/v1beta/models/ | Сверхдлинный контекст (1 миллион токенов) | |
| Zhipu GLM | openai | https://api.z.ai/api/paas/v4 | Серия GLM, поддержка Coding Plan |
| Moonshot (Kimi) | openai | https://api.moonshot.ai/v1 | Kimi K2.5, сверхдлинный контекст |
| Alibaba Cloud Bailian | openai | https://dashscope.aliyuncs.com/compatible-mode/v1 | Серия Qwen, 1 миллион токенов |
| Ollama | openai | http://localhost:11434/v1 | Локальное развёртывание, полностью офлайн |
| Groq | openai | https://api.groq.com/openai/v1 | Сверхбыстрый инференс, низкая задержка |
| Claude Code | anthropic | https://api.anthropic.com/v1/messages | Интеграция с Claude Agent SDK |
Помимо перечисленных выше, Elftia предоставляет готовые шаблоны для ряда китайских облачных платформ (Volcengine, Tencent Cloud Hunyuan, Baidu Qianfan, MiniMax, Kuaishou KwaiKAT, Moore Threads и др.), доступные в диалоге «Добавить провайдера».
Справочник настроек
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
| Название провайдера | Строка | (имя шаблона) | Отображаемое имя, можно изменить |
| Формат API | Перечисление | openai | openai / anthropic / google / azure-openai / openai-response |
| Базовый URL | URL | (зависит от шаблона) | Адрес API-запросов |
| API-ключ | Строка | (пусто) | Поддерживает префикс $ для ссылки на переменные окружения |
| Список моделей | Массив | (зависит от шаблона) | Можно добавлять вручную или получать через обнаружение моделей |
| Включён | Булево | false | Отображается ли провайдер в списке выбора модели |
| Transformer | Объект | (зависит от формата) | Конфигурация преобразователя формата запроса/ответа |
| Параметры по умолчанию | Объект | temperature: 0.7 | Параметры генерации по умолчанию на уровне провайдера |
| Таймаут API | Миллисекунды | (глобальная настройка) | Таймаут для одного запроса |
| Лимит параллелизма | Число | (зависит от провайдера) | Максимальное количество параллельных запросов в режиме Agent |
Поведение системы
Включение и отключение провайдеров
- Отключённые провайдеры не отображаются в выпадающем списке выбора модели
- Отключение провайдера не удаляет его конфигурацию; все настройки сохраняются при повторном включении
- Если текущая сессия использует модель провайдера, который был отключён, существующие сессии продолжат работу, но новые сообщения не смогут использовать эту модель
Обнаружение моделей
Некоторые провайдеры поддерживают обнаружение моделей: Elftia вызывает API списка моделей провайдера (например, /v1/models) для автоматического получения доступных моделей. Провайдеры, поддерживающие обнаружение моделей: OpenAI, Anthropic, Gemini, Zhipu и другие.
API-ключи через переменные окружения
Если API-ключ начинается с $, Elftia считывает фактическое значение из системной переменной окружения во время выполнения. Например:
- Настроенное значение
$OPENAI_API_KEY→ читаетprocess.env.OPENAI_API_KEYво время выполнения - Если переменная окружения не существует, запрос завершится с ошибкой аутентификации
Преобразователи форматов
Transformer — это ключевой механизм поддержки нескольких форматов API в Elftia. Каждому провайдеру, использующему формат, отличный от OpenAI, назначается соответствующий преобразователь:
| Тип провайдера | Transformer | Назначение |
|---|---|---|
| Официальный Anthropic | anthropic | Поддерживает формат Anthropic Messages, обрабатывает цепочку рассуждений |
| Google Gemini | gemini | Преобразует запросы в формат Gemini |
| OpenAI Responses | openai-response | Адаптирует к конечной точке /v1/responses |
| OpenRouter | openrouter | Обрабатывает конфигурацию маршрутизации провайдера |
| DeepSeek | deepseek | Обрабатывает специфичные для DeepSeek поля рассуждений |
| Groq | groq | Адаптирует к ограничениям параметров Groq |
Устранение неполадок
| Проблема | Возможная причина | Решение |
|---|---|---|
| Провайдер не отображается в списке выбора модели | Провайдер отключён | Откройте настройки провайдера и включите переключатель |
| Запрос возвращает ошибку 401 | API-ключ недействителен или истёк | Проверьте и обновите API-ключ; убедитесь, что у ключа достаточно квоты |
| Запрос возвращает ошибку 403 | API-ключ не имеет разрешения | Проверьте, имеет ли API-ключ доступ к выбранной модели |
| Ключ через переменную окружения недействителен | Имя переменной неверно или переменная не задана | Убедитесь, что переменная окружения задана в системе, затем перезапустите Elftia |
| Превышение времени ожидания запроса | Нет сети или сбой сервиса провайдера | Проверьте сетевое подключение, убедитесь в правильности базового URL, попробуйте использовать прокси |
| Список моделей пуст | Провайдер не поддерживает обнаружение моделей или ключ недействителен | Добавьте модели вручную или проверьте правильность API-ключа |
| Необычный формат ответа | Несоответствие конфигурации Transformer | Убедитесь в правильности выбранного формата API; проверьте, нужен ли специфический Transformer |
| Медленное подключение к китайским провайдерам | Сетевая задержка | Убедитесь, что используется правильный внутренний базовый URL; проверьте настройки прокси |
Связанные страницы
- Добавление провайдера — Добавьте нового провайдера из готового шаблона или пользовательской конфигурации
- Пулы API-ключей — Балансировка нагрузки по нескольким ключам и автоматическое переключение при сбое
- Пользовательские конечные точки — Подключение к локальным сервисам, таким как Ollama и LM Studio
- Параметры модели — Настройка параметров генерации, таких как temperature и max_tokens