Поддерживаемые провайдеры

Обзор

Meridian поддерживает множество LLM-провайдеров через единый OpenAI-совместимый интерфейс. Переключайтесь между провайдерами без изменения кода приложения.

Обзор

Meridian поддерживает широкий набор LLM-провайдеров — все они доступны через один OpenAI-совместимый интерфейс. Стандартизация позволяет переключаться между провайдерами без правок в приложении: ответы возвращаются в одном и том же формате независимо от того, какая модель и какой провайдер обработали запрос.

Meridian также может выступать как provider-compatible шлюз — например, для Anthropic, Google Gemini, Cohere, Bedrock и других. В этом режиме Meridian отдаёт provider-specific эндпоинты, и вы используете существующие SDK провайдеров без изменений в коде. Подробнее — на странице интеграций.


Матрица поддержки

В таблице ниже сведено, какие операции поддерживаются каждым провайдером через единый интерфейс Meridian.

ПровайдерModelsTextText (stream)ChatChat (stream)ResponsesResponses (stream)ImagesImages (stream)Image EditImage Edit (stream)Image VariationEmbeddingsTTSTTS (stream)STTSTT (stream)FilesBatchCount tokens
Anthropic (anthropic/<model>)
Azure (azure/<model>)
Bedrock (bedrock/<model>)
Cerebras (cerebras/<model>)
Cohere (cohere/<model>)
Elevenlabs (elevenlabs/<model>)
Fireworks (fireworks/<model>)
Gemini (gemini/<model>)
Groq (groq/<model>)🟡🟡
Hugging Face (huggingface/<model>)
Mistral (mistral/<model>)
Nebius (nebius/<model>)
Ollama (ollama/<model>)
OpenAI (openai/<model>)
OpenRouter (openrouter/<model>)
Parasail (parasail/<model>)
Perplexity (perplexity/<model>)
Replicate (replicate/<model>)
SGL (sgl/<model>)
Vertex AI (vertex/<model>)
vLLM (vllm/<model>)
xAI (xai/<model>)

Условные обозначения:

  • ✅ — операция поддерживается провайдером напрямую либо реализована внутри Meridian.
  • 🟡 — операция не поддерживается провайдером, но Meridian эмулирует её внутри как fallback.
  • ❌ — операция не поддерживается провайдером и недоступна через Meridian.

Некоторые операции у апстрима недоступны, и их внутренняя реализация в Meridian опциональна (отметка 🟡). Например, text completions не поддерживаются Groq, но Meridian умеет эмулировать их через Chat Completions API. По умолчанию эмуляция выключена; включить её можно флагом enable_litellm_fallbacks: true в client-конфигурации.

Мы не рекомендуем такие фолбэки в продакшене — text completions и chat completions фундаментально различаются. Опция оставлена для пользователей, мигрирующих с LiteLLM.

Расшифровка столбцов:

  • Models — операция list models (/v1/models).
  • Text — классический text completion (/v1/completions).
  • Responses — OpenAI Responses API (/v1/responses). В зависимости от провайдера Meridian использует либо нативный responses-эндпоинт, либо проксирует на эквивалентный chat-API.
  • Reranking (/v1/rerank) — поддерживается для Cohere, Bedrock, Vertex AI и vLLM. Подробности — на страницах конкретных провайдеров.
  • Images — Image Generation API (/v1/images/generations).
  • Image Edit — Image Edit API (/v1/images/edits).
  • Image Variation — Image Variation API (/v1/images/variations).
  • TTS/v1/audio/speech; STT/v1/audio/transcriptions.
  • Files — Files API (/v1/files): загрузка, листинг, чтение, удаление.
  • Batch — Batch API (/v1/batches): создание, листинг, отмена, получение результатов batch-задач.

Формат ответа

Все провайдеры возвращают ответы в OpenAI-совместимом формате. Meridian берёт на себя трансляцию между provider-specific форматами.

# Формат ответа одинаков независимо от провайдера
curl -X POST http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-mini",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

# Возвращает OpenAI-совместимую структуру:
{
  "id": "chatcmpl-123",
  "object": "chat.completion",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! How can I help you?"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 10,
    "completion_tokens": 9,
    "total_tokens": 19
  }
}

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

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


Преимущества единого интерфейса

  • Переключение провайдеров без изменений в коде приложения.
  • Конфигурации фолбэков для повышения надёжности.
  • Балансировка нагрузки между несколькими провайдерами.
  • OpenAI-совместимые шаблоны для всех провайдеров.

Метаданные провайдера

Информация о провайдере включается в секцию extra_fields каждого ответа: вы видите, какой провайдер обработал запрос, и получаете provider-specific метаданные.

Сырые запрос и ответ

Meridian опционально возвращает оригинальный запрос, отправленный провайдеру, и оригинальный ответ от него. Это полезно для отладки, аудита и понимания того, как Meridian трансформирует запросы между разными provider-specific форматами.

Что попадает в ответ:

  • raw_request — точное тело запроса (JSON / структура данных), отправленное на API провайдера.
  • raw_response — точное тело ответа провайдера до нормализации в Meridian.
  • Детали трансформации — видно, как именно Meridian привёл ваш входной формат к provider-specific.

Пример. При отправке Chat Completions запроса с max_completion_tokens к Anthropic Meridian преобразует параметр в max_tokens в исходящем запросе. Включение raw request/response делает эту трансформацию явной:

{
  "extra_fields": {
    "provider": "anthropic",
    "raw_request": {
      "model": "claude-3-5-sonnet",
      "max_tokens": 4096,
      "messages": [...]
    },
    "raw_response": {
      "id": "msg_...",
      "type": "message",
      "content": [...],
      "usage": {
        "input_tokens": 123,
        "output_tokens": 456
      }
    }
  }
}

Сценарии использования:

  • Отладка — проверка, как ваш запрос был преобразован под конкретного провайдера.
  • Аудит — фиксация того, что именно ушло во внешний API.
  • Анализ расходов — реальные счётчики токенов до нормализации Meridian.
  • Интеграционное тестирование — валидация provider-specific трансформаций.

Где включается:

Включение raw request/response увеличивает размер payload и оказывает минимальное влияние на производительность. Используйте опцию выборочно — в окружениях для отладки и тестирования или там, где нужен audit trail.

Содержание