> For the complete documentation index, see [llms.txt](https://docs.clore.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.clore.ai/guides/guides_v2-ru/yazykovye-modeli/litellm.md).

# AI-шлюз LiteLLM

LiteLLM — это AI Gateway с открытым исходным кодом, который предоставляет единый API, совместимый с OpenAI, для более чем 100 провайдеров языковых моделей — включая OpenAI, Anthropic, Azure, Bedrock, HuggingFace и локально размещённые модели. Разверните его на CLORE.AI, чтобы маршрутизировать, балансировать нагрузку и управлять всеми вашими вызовами к API LLM через один конечный узел с встроенным отслеживанием затрат, ограничением частоты запросов и логикой резервного перехода.

Настоящая мощь LiteLLM раскрывается в масштабе: команды, работающие со смешанными локальными+облачными стековыми конфигурациями, могут мгновенно подменять модели, не трогая код приложения. Замените `gpt-4o` с `mistral-7b-local` в конфиге, перезапустите — готово.

{% hint style="success" %}
Все примеры можно запускать на GPU-серверах, арендованных через [маркетплейс CLORE.AI](https://clore.ai/marketplace).
{% endhint %}

## Требования к серверу

| Параметр | Минимум             | Рекомендуется                         |
| -------- | ------------------- | ------------------------------------- |
| ОЗУ      | 4 ГБ                | 8 ГБ+                                 |
| VRAM     | Н/Д (только прокси) | Н/Д                                   |
| Диск     | 10 ГБ               | 20 ГБ+                                |
| GPU      | Не требуется        | Необязательно (для локальных моделей) |

{% hint style="info" %}
Сам LiteLLM — это прокси на базе CPU, и ему не требуется GPU. Однако развертывать его на GPU-сервере CLORE.AI имеет смысл, когда вы хотите запускать локальные модели (через Ollama, TGI, vLLM) вместе с LiteLLM как единый шлюз на той же машине.
{% endhint %}

## Быстрое развертывание на CLORE.AI

**Docker-образ:** `ghcr.io/berriai/litellm:main-latest`

**Порты:** `22/tcp`, `4000/http`

**Переменные среды:**

| Переменная           | Пример             | Описание                               |
| -------------------- | ------------------ | -------------------------------------- |
| `OPENAI_API_KEY`     | `sk-xxx...`        | ключ API OpenAI                        |
| `ANTHROPIC_API_KEY`  | `sk-ant-xxx...`    | ключ API Anthropic                     |
| `AZURE_API_KEY`      | `xxx...`           | ключ Azure OpenAI                      |
| `LITELLM_MASTER_KEY` | `sk-my-master-key` | главный ключ аутентификации для прокси |
| `DATABASE_URL`       | `postgresql://...` | PostgreSQL для отслеживания затрат     |
| `STORE_MODEL_IN_DB`  | `True`             | Сохранять конфигурацию модели в БД     |

## Пошаговая настройка

### 1. Арендуйте сервер на CLORE.AI

LiteLLM отлично работает даже на серверах только с CPU. Перейдите на [маркетплейс CLORE.AI](https://clore.ai/marketplace) и отфильтруйте по:

* самым дешёвым CPU-серверам для чистой прокси-конфигурации
* GPU-серверам (RTX 3090+), если вы хотите также запускать локальные модели

### 2. Подключитесь к серверу по SSH

```bash
ssh -p <PORT> root@<SERVER_IP>
```

### 3. Создайте файл конфигурации

LiteLLM использует YAML-файл конфигурации для определения моделей:

```bash
mkdir -p /root/litellm
cat > /root/litellm/config.yaml << 'EOF'
model_list:
  # Модели OpenAI
  - model_name: gpt-4o
    litellm_params:
      model: openai/gpt-4o
      api_key: "os.environ/OPENAI_API_KEY"

  - model_name: gpt-4o-mini
    litellm_params:
      model: openai/gpt-4o-mini
      api_key: "os.environ/OPENAI_API_KEY"

  # Модели Anthropic
  - model_name: claude-3-5-sonnet
    litellm_params:
      model: anthropic/claude-3-5-sonnet-20241022
      api_key: "os.environ/ANTHROPIC_API_KEY"

  # Локальная модель через TGI (на том же сервере, порт 8080)
  - model_name: mistral-7b-local
    litellm_params:
      model: openai/mistralai/Mistral-7B-Instruct-v0.3
      api_base: "http://localhost:8080/v1"
      api_key: "none"

  # Балансировщик нагрузки: маршрутизация к нескольким конечным точкам
  - model_name: fast-model
    litellm_params:
      model: openai/gpt-4o-mini
      api_key: "os.environ/OPENAI_API_KEY"
    model_info:
      mode: chat

litellm_settings:
  drop_params: True
  set_verbose: False
  num_retries: 3
  request_timeout: 60

general_settings:
  master_key: "sk-my-secret-master-key"  # Измените это!
  alerting: []
EOF
```

### 4. Запустите LiteLLM

**Базовый запуск:**

```bash
docker run -d \
  --name litellm \\
  --network host \\
  -v /root/litellm/config.yaml:/app/config.yaml \\
  -e OPENAI_API_KEY=sk-your-openai-key \\
  -e ANTHROPIC_API_KEY=sk-ant-your-anthropic-key \\
  -e LITELLM_MASTER_KEY=sk-my-secret-master-key \\
  ghcr.io/berriai/litellm:main-latest \\
  --config /app/config.yaml \\
  --port 4000 \\
  --host 0.0.0.0
```

**С PostgreSQL для отслеживания затрат:**

Сначала запустите контейнер PostgreSQL:

```bash
docker run -d \
  --name postgres \\
  -e POSTGRES_PASSWORD=litellm_pass \\
  -e POSTGRES_DB=litellm \\
  -p 5432:5432 \\
  postgres:15

# Затем запустите LiteLLM с БД
docker run -d \
  --name litellm \\
  -p 4000:4000 \\
  -v /root/litellm/config.yaml:/app/config.yaml \\
  -e OPENAI_API_KEY=sk-your-openai-key \\
  -e ANTHROPIC_API_KEY=sk-ant-your-anthropic-key \\
  -e LITELLM_MASTER_KEY=sk-my-secret-master-key \\
  -e DATABASE_URL="postgresql://postgres:litellm_pass@localhost:5432/litellm" \\
  --network host \\
  ghcr.io/berriai/litellm:main-latest \\
  --config /app/config.yaml \\
  --port 4000 \\
  --host 0.0.0.0
```

**Использование Docker Compose (рекомендуется):**

```bash
cat > /root/litellm/docker-compose.yml << 'EOF'
version: "3.8"
services:
  litellm:
    image: ghcr.io/berriai/litellm:main-latest
    ports:
      - "4000:4000"
    volumes:
      - ./config.yaml:/app/config.yaml
    environment:
      - OPENAI_API_KEY=${OPENAI_API_KEY}
      - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
      - LITELLM_MASTER_KEY=sk-my-secret-master-key
      - DATABASE_URL=postgresql://postgres:litellm_pass@db:5432/litellm
    command: --config /app/config.yaml --port 4000 --host 0.0.0.0
    depends_on:
      - db

  db:
    image: postgres:15
    environment:
      POSTGRES_PASSWORD: litellm_pass
      POSTGRES_DB: litellm
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:
EOF

cd /root/litellm && docker compose up -d
```

### 5. Проверьте сервер

```bash
# Проверить состояние
curl http://localhost:4000/health

# Список доступных моделей
curl http://localhost:4000/v1/models \\
  -H "Authorization: Bearer sk-my-secret-master-key"
```

### 6. Доступ через HTTP-прокси CLORE.AI

Ваш URL CLORE.AI http\_pub для порта 4000:

```
https://<order-id>-4000.clore.ai/v1
```

Используйте это как ваш `api_base` в любом клиенте, совместимом с OpenAI.

***

## Примеры использования

### Пример 1: Прямой вызов API через прокси

```bash
curl http://localhost:4000/v1/chat/completions \\
  -X POST \\
  -H "Content-Type: application/json" \\
  -H "Authorization: Bearer sk-my-secret-master-key" \\
  -d '{
    "model": "gpt-4o-mini",
    "messages": [
      {"role": "user", "content": "What is the capital of Germany?"}
    ]
  }'
```

### Пример 2: OpenAI Python SDK с прокси LiteLLM

```python
from openai import OpenAI

# Просто измените base_url и api_key — всё остальное идентично
client = OpenAI(
    base_url="http://localhost:4000/v1",
    api_key="sk-my-secret-master-key",
)

# Используйте любую модель из вашей конфигурации
response = client.chat.completions.create(
    model="gpt-4o-mini",  # или "claude-3-5-sonnet", "mistral-7b-local"
    messages=[{"role": "user", "content": "Summarize the benefits of GPU computing."}],
)
print(response.choices[0].message.content)

# Переключайте модели без изменений в коде
response2 = client.chat.completions.create(
    model="claude-3-5-sonnet",
    messages=[{"role": "user", "content": "Same question, different model."}],
)
print(response2.choices[0].message.content)
```

### Пример 3: Python SDK LiteLLM (напрямую)

```python
import litellm

# Используйте напрямую без прокси
response = litellm.completion(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "Привет!"}],
    api_key="your-openai-key",
)

# Или направляйте через ваш прокси
response = litellm.completion(
    model="openai/gpt-4o-mini",
    messages=[{"role": "user", "content": "Привет!"}],
    api_base="http://localhost:4000",
    api_key="sk-my-secret-master-key",
)
```

### Пример 4: Конфигурация резервного перехода

Настройте автоматические резервные переходы между моделями:

```yaml
# В config.yaml
model_list:
  - model_name: smart-fallback
    litellm_params:
      model: gpt-4o
      api_key: "os.environ/OPENAI_API_KEY"

router_settings:
  routing_strategy: least-busy
  model_group_alias:
    "gpt-4-fallback":
      - "gpt-4o"
      - "claude-3-5-sonnet"
      - "mistral-7b-local"
  num_retries: 3
  fallbacks:
    - gpt-4o:
        - claude-3-5-sonnet
        - mistral-7b-local
```

### Пример 5: Панель отслеживания затрат

После включения PostgreSQL откройте аналитику расходов:

```bash
# Получить расходы по пользователю
curl http://localhost:4000/global/spend/users \\
  -H "Authorization: Bearer sk-my-secret-master-key"

# Получить расходы по модели
curl http://localhost:4000/global/spend/models \\
  -H "Authorization: Bearer sk-my-secret-master-key"

# Сгенерировать отчёт по расходам
curl "http://localhost:4000/global/spend?start_date=2024-01-01&end_date=2024-12-31" \\
  -H "Authorization: Bearer sk-my-secret-master-key"
```

***

## Конфигурация

### Виртуальные ключи (API-ключи для каждого пользователя)

Создавайте отдельные ключи с лимитами скорости и бюджетами:

```bash
# Создать ключ с бюджетом
curl http://localhost:4000/key/generate \\
  -X POST \\
  -H "Content-Type: application/json" \\
  -H "Authorization: Bearer sk-my-secret-master-key" \\
  -d '{
    "models": ["gpt-4o-mini", "claude-3-5-sonnet"],
    "duration": "30d",
    "max_budget": 10.0,
    "metadata": {"user_id": "user_123"}
  }'
```

### Балансировка нагрузки

```yaml
model_list:
  # Круговой перебор между несколькими ключами OpenAI API
  - model_name: gpt-4o
    litellm_params:
      model: openai/gpt-4o
      api_key: sk-key-1
  - model_name: gpt-4o
    litellm_params:
      model: openai/gpt-4o
      api_key: sk-key-2

router_settings:
  routing_strategy: least-busy  # или: simple-shuffle, latency-based-routing
```

### Кэширование

```yaml
litellm_settings:
  cache: True
  cache_params:
    type: redis
    host: localhost
    port: 6379
    ttl: 3600  # 1 час
```

### Ограничение скорости

```yaml
general_settings:
  default_team_settings:
    tpm_limit: 100000   # токенов в минуту
    rpm_limit: 1000     # запросов в минуту
```

***

## Советы по производительности

### 1. Включите кэширование для повторяющихся запросов

Для RAG- или чат-бот-приложений с типовыми вопросами кэширование Redis сокращает затраты на 30–70% и снижает задержку P50 до <5 мс при попадании в кэш:

```yaml
litellm_settings:
  cache: True
  cache_params:
    type: redis
    host: localhost
    port: 6379
```

### 2. Используйте асинхронные запросы

```python
import asyncio
import litellm

async def batch_complete(prompts):
    tasks = [
        litellm.acompletion(
            model="gpt-4o-mini",
            messages=[{"role": "user", "content": p}],
        )
        for p in prompts
    ]
    return await asyncio.gather(*tasks)

results = asyncio.run(batch_complete(["Hello", "World", "Test"]))
```

### 3. Маршрутизация локальных моделей

Направляйте дешёвые/простые запросы к локальным моделям на GPU Clore.ai, а сложные — к GPT-4:

```yaml
model_list:
  - model_name: smart-router
    litellm_params:
      model: openai/gpt-4o
      api_key: "os.environ/OPENAI_API_KEY"
```

Типичная схема: запускать Mistral 7B или Llama 3 8B локально на RTX 3090 от Clore.ai ($0.07–0.21/ч), обрабатывать там 80% трафика, а сложные задачи передавать в GPT-4o. Экономия в 3–5 раз по сравнению с облачным вариантом — обычное дело.

### 4. Настройте тайм-ауты и повторы

```yaml
litellm_settings:
  request_timeout: 30
  num_retries: 3
  retry_after: 5
```

***

## Рекомендации по GPU для Clore.ai

Самому LiteLLM GPU не нужен — это прокси. Выбор GPU важен только тогда, когда вы разворачиваете локальный инференс вместе с ним.

| Локальная модель                                       | GPU                | Почему                                                                            |
| ------------------------------------------------------ | ------------------ | --------------------------------------------------------------------------------- |
| Mistral 7B / Llama 3 8B (bf16)                         | **RTX 3090** 24 ГБ | Легко помещается, пропускная способность \~200 ток/с                              |
| Mixtral 8×7B или Llama 3 70B (AWQ)                     | **RTX 4090** 24 ГБ | Более высокая пропускная способность памяти, чем у 3090; помещается 70B AWQ 4-bit |
| Llama 3 70B (bf16) или обслуживание нескольких моделей | **A100 80 ГБ**     | Запускайте несколько моделей 7–13B одновременно; HBM2e для низкой задержки        |

**Рекомендуемый стек для одиночного разработчика:** RTX 3090 + Mistral 7B + шлюз LiteLLM. Общая стоимость на Clore.ai: $0.07–0.21/ч. Легко обрабатывает \~50 запросов в минуту, с резервным переходом на GPT-4o для сложных задач.

**Стек для команды / продакшена:** A100 80GB, запуск Llama 3 70B + LiteLLM + PostgreSQL. Обслуживает 20+ одновременных пользователей, полное отслеживание затрат, нулевые расходы на облачные LLM для большинства запросов.

***

## Устранение неполадок

### Проблема: «модель не найдена»

Убедитесь, что имя модели в вашем запросе в точности совпадает с тем, что указано в `config.yaml`:

```bash
curl http://localhost:4000/v1/models -H "Authorization: Bearer sk-my-secret-master-key"
```

### Проблема: «ошибка аутентификации»

Проверьте ваш `LITELLM_MASTER_KEY` переменную окружения и используйте её как Bearer-токен.

### Проблема: Изменения конфигурации не отображаются

Перезапустите контейнер после изменений конфигурации:

```bash
docker restart litellm
```

### Проблема: Высокая задержка при первом запросе

LiteLLM загружает конфигурации моделей при запуске. Первые несколько запросов могут быть медленнее, пока устанавливаются соединения.

### Проблема: Ошибки подключения к базе данных

```bash
# Проверьте, что PostgreSQL запущен
docker logs postgres

# Проверьте формат строки подключения
DATABASE_URL="postgresql://user:password@host:5432/dbname"
```

### Проблема: Ошибки 429 ограничения скорости от провайдеров

Настройте резервные переходы:

```yaml
litellm_settings:
  num_retries: 5
  fallbacks:
    - gpt-4o: [claude-3-5-sonnet]
```

***

## Рекомендации по GPU для Clore.ai

LiteLLM — это API-шлюз/прокси — он сам не выполняет инференс. Выбор GPU зависит от того, направляете ли вы запросы к облачным API или локальным моделям.

| Конфигурация               | GPU              | Цена Clore.ai                               | Сценарий использования                                          |
| -------------------------- | ---------------- | ------------------------------------------- | --------------------------------------------------------------- |
| Только прокси облачных API | только CPU       | \~$0.02/ч                                   | Направление к OpenAI, Anthropic, Gemini — GPU не нужен          |
| Локальный backend vLLM     | RTX 3090 (24 ГБ) | $0.07–0.21/ч                                | Самостоятельно размещённые модели 7B–13B с LiteLLM на фронтенде |
| Локальный backend vLLM     | RTX 4090 (24 ГБ) | $0.14–0.42/ч                                | Локальные модели 7B–34B с более высокой пропускной способностью |
| Локальный backend vLLM     | A100 40 ГБ       | [голое железо](https://clore.ai/bare-metal) | Модели 70B, production-развёртывание локального обслуживания    |

{% hint style="info" %}
**Самая распространённая схема:** Запускайте LiteLLM как единый прокси перед вашими экземплярами vLLM/Ollama, размещёнными на Clore.ai. Это даёт вам резервные переходы между провайдерами, ограничение скорости, отслеживание затрат и маршрутизацию, совместимую с OpenAI, — при этом весь инференс остаётся локальным и недорогим.

**Пример стоимости:** Запустите прокси LiteLLM на экземпляре только с CPU ($0.07–0.21/ч) и направьте его на сервер vLLM на RTX 3090 ($0.07–0.21/ч). Общая стоимость $0.07–0.21/ч за готовый к продакшену самохостируемый API LLM с резервными переходами, логированием и ограничением скорости.
{% endhint %}

***

## Ссылки

* [GitHub](https://github.com/BerriAI/litellm)
* [Документация](https://docs.litellm.ai)
* [Docker Hub / GHCR](https://github.com/BerriAI/litellm/pkgs/container/litellm)
* [Поддерживаемые провайдеры](https://docs.litellm.ai/docs/providers)
* [маркетплейс CLORE.AI](https://clore.ai/marketplace)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.clore.ai/guides/guides_v2-ru/yazykovye-modeli/litellm.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
