Интеграции

LiteLLM

Прокси и Python SDK с единым интерфейсом. LLM Mart — OpenAI-совместимый backend: префикс `openai/` обязателен, иначе LiteLLM решит, что это вендор из своего кат

В config.yaml задайте либо проброс всего каталога (model_name: "*"), либо отдельную запись на каждый короткий алиас.

Что нужно

Протокол

Куда ходит LiteLLMapi_baseПрефикс в model
Chat Completions / embeddingshttps://www.llmmart.ru/api/v1openai/<slug>
Native Anthropic Messageshttps://www.llmmart.ru/api без /v1anthropic/<slug>

Ключ: Authorization: Bearer. Для native Messages шлюз также принимает x-api-key.

Не дописывайте к api_base /chat/completions или /embeddings — клиент OpenAI добавит путь сам. Если тест даёт Not Found, проверьте, что у OpenAI-маршрута есть суффикс /v1.

Настройки

ПараметрЗначение
litellm_params.modelopenai/ + slug, например openai/anthropic/claude-sonnet-5
api_basehttps://www.llmmart.ru/api/v1
api_keyos.environ/LLM_MART_API_KEY (не кладите sk-… в файл)
litellm_settings.drop_paramstrue — отбросить поля, которых нет у модели
export LLM_MART_API_KEY="sk-…"

Python SDK

import os
from litellm import completion, embedding

response = completion(
    model="openai/anthropic/claude-sonnet-5",
    api_key=os.environ["LLM_MART_API_KEY"],
    api_base="https://www.llmmart.ru/api/v1",
    messages=[{"role": "user", "content": "Привет!"}],
)
print(response.choices[0].message.content)

vector = embedding(
    model="openai/text-embedding-3-small",
    api_key=os.environ["LLM_MART_API_KEY"],
    api_base="https://www.llmmart.ru/api/v1",
    input=["hello world"],
)

Префикс openai/ обязателен: без него ошибка вроде LLM Provider NOT provided или запрос уйдёт на api.openai.com / api.anthropic.com.

Proxy (config.yaml)

Проброс всех slug из каталога плюс короткие имена для клиентов прокси:

model_list:
  - model_name: "*"
    litellm_params:
      model: openai/*
      api_base: https://www.llmmart.ru/api/v1
      api_key: os.environ/LLM_MART_API_KEY
  - model_name: sonnet
    litellm_params:
      model: openai/anthropic/claude-sonnet-5
      api_base: https://www.llmmart.ru/api/v1
      api_key: os.environ/LLM_MART_API_KEY
  - model_name: gpt-mini
    litellm_params:
      model: openai/gpt-4o-mini
      api_base: https://www.llmmart.ru/api/v1
      api_key: os.environ/LLM_MART_API_KEY
  - model_name: embeddings
    litellm_params:
      model: openai/text-embedding-3-small
      api_base: https://www.llmmart.ru/api/v1
      api_key: os.environ/LLM_MART_API_KEY

litellm_settings:
  drop_params: true

Запуск: litellm --config config.yaml. Клиенты прокси видят sonnet, gpt-mini или исходный slug (* пробрасывает его как есть). В кабинете модели должны быть включены.

Native Messages (thinking, prompt cache на native-поставщике) — только если это сознательно:

  - model_name: sonnet-native
    litellm_params:
      model: anthropic/anthropic/claude-sonnet-5
      api_base: https://www.llmmart.ru/api
      api_key: os.environ/LLM_MART_API_KEY

LiteLLM сам допишет /v1/messages. Если путь уже полный, задайте LITELLM_ANTHROPIC_DISABLE_URL_SUFFIX=true. Для IDE и OpenAI SDK native-маршрут не нужен.

Типичные ошибки

СимптомЧто проверить
401LLM_MART_API_KEY = sk-…
404 model_not_foundslug после префикса openai/; включение
LLM Provider NOT providedпрефикс openai/ или anthropic/
404 /v1/v1для Anthropic api_base без /v1
Запрос на api.anthropic.comв model стоит anthropic/… — смените на openai/<slug>
Not Found на тестеу OpenAI-маршрута api_base со /v1

Проверено: 2026-09-17 по OpenAI-Compatible в LiteLLM и config.yaml.

Что дальше