Skip to content
Эта страница создана и переведена с помощью ИИ. Если вы заметили неточности, помогите нам улучшить её. Редактировать на GitHub

LLM-провайдеры

PRX подключается к большим языковым моделям через провайдеров — подключаемые бэкенды, реализующие трейт Provider. Каждый провайдер обрабатывает аутентификацию, форматирование запросов, потоковую передачу и классификацию ошибок для конкретного LLM API.

PRX поставляется с 9 встроенными провайдерами, OpenAI-совместимым эндпоинтом для сторонних сервисов, а также инфраструктурой для цепочек отката и интеллектуальной маршрутизации.

Матрица возможностей

ПровайдерКлючевые моделиСтримингЗрениеВызов инструментовOAuthСамохостинг
AnthropicClaude Opus 4, Claude Sonnet 4ДаДаДаДа (Claude Code)Нет
OpenAIGPT-4o, o1, o3ДаДаДаНетНет
Google GeminiGemini 2.0 Flash, Gemini 1.5 ProДаДаДаДа (Gemini CLI)Нет
OpenAI CodexМодели CodexДаНетДаДаНет
GitHub CopilotМодели Copilot ChatДаНетДаДа (Device Flow)Нет
OllamaLlama 3, Mistral, Qwen, любой GGUFДаЗависит от моделиДаНетДа
AWS BedrockClaude, Titan, LlamaДаЗависит от моделиЗависит от моделиAWS IAMНет
GLMGLM-4, Zhipu, Minimax, Moonshot, Qwen, Z.AIДаЗависит от моделиЗависит от моделиДа (Minimax/Qwen)Нет
OpenRouter200+ моделей от разных вендоровДаЗависит от моделиЗависит от моделиНетНет
Custom CompatibleЛюбой OpenAI-совместимый APIДаЗависит от эндпоинтаЗависит от эндпоинтаНетДа

Быстрая конфигурация

Провайдеры настраиваются в ~/.config/openprx/config.toml (или ~/.openprx/config.toml). Как минимум, укажите провайдера по умолчанию и API-ключ:

toml
# Выбор провайдера и модели по умолчанию
default_provider = "anthropic"
default_model = "anthropic/claude-sonnet-4-6"
default_temperature = 0.7

# API-ключ (можно также задать через переменную окружения ANTHROPIC_API_KEY)
api_key = "sk-ant-..."

Для самохостинговых провайдеров, таких как Ollama, укажите эндпоинт:

toml
default_provider = "ollama"
default_model = "llama3:70b"
api_url = "http://localhost:11434"

Каждый провайдер определяет свой API-ключ из следующих источников (в порядке приоритета):

  1. Поле api_key в config.toml
  2. Переменная окружения конкретного провайдера (например, ANTHROPIC_API_KEY, OPENAI_API_KEY)
  3. Общая переменная окружения API_KEY

См. Переменные окружения для полного списка поддерживаемых переменных.

Цепочки отката с ReliableProvider

PRX оборачивает вызовы провайдеров в слой ReliableProvider, который обеспечивает:

  • Автоматические повторы с экспоненциальной задержкой для транзитных ошибок (5xx, 429 rate limit, таймауты сети)
  • Цепочки отката — при сбое основного провайдера запросы автоматически перенаправляются к следующему провайдеру в цепочке
  • Обнаружение неповторяемых ошибок — клиентские ошибки вроде недействительных API-ключей (401/403) и неизвестных моделей (404) завершаются быстро без траты попыток

Настройка надёжности в секции [reliability]:

toml
[reliability]
max_retries = 3
fallback_providers = ["openai", "gemini"]

Когда основной провайдер (например, Anthropic) возвращает транзитную ошибку, PRX повторяет попытки до max_retries раз с задержкой. Если все попытки исчерпаны, запрос переходит к первому откатному провайдеру. Цепочка отката продолжается до успешного ответа или исчерпания всех провайдеров.

Классификация ошибок

ReliableProvider классифицирует ошибки на две категории:

  • Повторяемые: HTTP 5xx, 429 (rate limit), 408 (таймаут), сетевые ошибки
  • Неповторяемые: HTTP 4xx (кроме 429/408), недействительные API-ключи, неизвестные модели, некорректные ответы

Неповторяемые ошибки пропускают повторные попытки и сразу переходят к следующему провайдеру, избегая лишних задержек.

Интеграция с маршрутизатором

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

  • Оценка возможностей — сопоставление сложности запроса с сильными сторонами модели
  • Рейтинг Elo — отслеживание производительности модели с течением времени
  • Оптимизация стоимости — предпочтение более дешёвых моделей для простых запросов
  • Взвешивание задержки — учёт времени ответа
  • Семантическая маршрутизация KNN — использование эмбеддингов исторических запросов для маршрутизации на основе сходства
  • Эскалация Automix — начало с дешёвой модели и повышение до премиальной при низкой уверенности
toml
[router]
enabled = true
knn_enabled = true

[router.automix]
enabled = true
confidence_threshold = 0.7
premium_model_id = "anthropic/claude-sonnet-4-6"

См. Конфигурация маршрутизатора для полных деталей.

Страницы провайдеров

Released under the Apache-2.0 License.