# Интеграция GigaChat с LiteLLM
[](https://github.com/stp008/litellm-gigachat/stargazers)
[](https://pypi.org/project/litellm-gigachat/)
[](https://python.org)
[](https://github.com/BerriAI/litellm)
[](LICENSE)
[](https://developers.sber.ru/portal/products/gigachat-api)
**Полнофункциональная интеграция GigaChat API с LiteLLM** - готовое решение для подключения российской языковой модели GigaChat через стандартный OpenAI-совместимый интерфейс. Включает автоматическое обновление токенов, преобразование контента и полную совместимость с AI-ассистентом Cline.
## 📚 Документация
**[Полная документация](docs/README.md)** | **[FAQ](docs/FAQ.md)** | **[Тестовые запросы](docs/TEST_REQUESTS.md)** | **[Причины несовместимости с OpenAI API](docs/GIGACHAT_COMPATIBILITY.md)**
## 🚀 Основные возможности
- **Автоматическое обновление токенов**
- **Автоматическая настройка сертификатов**
- **Совместимость с Cline**
- **Streaming поддержка**
## 📦 Установка
### Через pip (рекомендуется)
```bash
# Установка пакета
pip install litellm-gigachat
# Проверка установки
litellm-gigachat --version
```
### Из исходников (для разработки)
```bash
# 1. Клонирование репозитория
git clone https://github.com/stp008/litellm-gigachat.git
cd litellm-gigachat
# 2. Установка в режиме разработки
pip install -e .
# 3. Проверка установки
litellm-gigachat --version
```
## 🎯 Быстрый старт
### 1. Настройка API ключа
```bash
# Установите ваш authorization key от GigaChat
export GIGACHAT_AUTH_KEY="ваш_authorization_key"
```
### 2. Запуск прокси-сервера
```bash
# Через установленный пакет (рекомендуется)
litellm-gigachat
# Через исходники (для разработки)
python tools/start_proxy.py
# С кастомными параметрами (только для установленного пакета)
litellm-gigachat --host 127.0.0.1 --port 8000
# С кастомным файлом конфигурации
litellm-gigachat --config my_config.yml
# Справка по командам
litellm-gigachat --help
```
**Примечание:** Если вы работаете с исходниками проекта (клонировали репозиторий), используйте `python tools/start_proxy.py`. Если установили пакет через pip, используйте команду `litellm-gigachat`.
### 3. Использование через OpenAI API
```python
import openai
client = openai.OpenAI(
base_url="http://localhost:4000",
api_key="any-key" # Токен управляется автоматически
)
response = client.chat.completions.create(
model="gigachat",
messages=[{"role": "user", "content": "Привет, GigaChat!"}]
)
print(response.choices[0].message.content)
```
### 4. Использование через LiteLLM (программно)
```python
import litellm_gigachat
# Автоматическая настройка интеграции
litellm_gigachat.setup_litellm_gigachat_integration()
# Использование через LiteLLM
import litellm
response = litellm.completion(
model="openai/GigaChat",
api_base="https://gigachat.devices.sberbank.ru/api/v1",
api_key=litellm_gigachat.get_gigachat_token(),
messages=[{"role": "user", "content": "Привет!"}]
)
print(response.choices[0].message.content)
```
### Использование через Cline
Допустимо использовать сервер как в качестве OpenAI совместимого провайдера, так и в качестве LiteLLM провайдера. В случае использования второго варианта появляется больше доступных опций.
##### Настройка LiteLLM провайдера (рекомендуется):
<img src="docs/images/cline-settings-litellm.png" alt="Настройки Cline через LiteLLM" width="500">
##### Настройки OpenAI Compatible провайдера:
<img src="docs/images/cline-settings-openai.png" alt="Настройки Cline с OpenAI совместимостью" width="500">
В настройках Cline укажите следующие параметры:
**Основные настройки:**
1. **API Provider**: Выберите `LiteLLM` или `OpenAI Compatible` из выпадающего списка
2. **Base URL**: Введите `http://localhost:4000` (без слэша в конце)
3. **API Key**: Введите любое значение, например `gigachat-key` (токен управляется автоматически)
4. **Model**: Выберите одну из моделей:
- `gigachat` - основная модель (рекомендуется для начала)
- `gigachat-pro` - продвинутая модель для сложных задач
- `gigachat-max` - модель с максимальными возможностями
#### 4.3 Дополнительные настройки (опционально)
- **Temperature**: 0.7 (для баланса между креативностью и точностью)
- **Max Tokens**: 4000 (максимальная длина ответа)
- **Timeout**: 60 секунд
### Тестирование интеграции с Cline
```bash
python test_cline_integration.py
```
## 🔧 CLI команды
После установки пакета доступна команда `litellm-gigachat` для управления прокси-сервером:
### Основные команды
| Команда | Описание |
|---------|----------|
| `litellm-gigachat` | Запуск прокси-сервера с настройками по умолчанию |
| `litellm-gigachat --help` | Показать справку по всем доступным параметрам |
| `litellm-gigachat --version` | Показать версию пакета |
### Параметры командной строки
| Параметр | Описание | По умолчанию |
|----------|----------|--------------|
| `--host` | Хост для прокси-сервера | `0.0.0.0` |
| `--port` | Порт для прокси-сервера | `4000` |
| `--config` | Путь к файлу конфигурации | `config.yml` |
### Примеры использования
```bash
# Запуск на localhost с портом 8000
litellm-gigachat --host 127.0.0.1 --port 8000
# Использование кастомного файла конфигурации
litellm-gigachat --config /path/to/my_config.yml
# Запуск только на локальном интерфейсе
litellm-gigachat --host localhost --port 3000
```
## 📊 Доступные модели
### Официальные модели (с токенами)
| Модель API | Описание |
|------------|----------|
| `gigachat` | Основная модель для общих задач |
| `gigachat-pro` | Продвинутая модель для сложных задач |
| `gigachat-max` | Модель с максимальными возможностями |
### Внутренние модели (с заголовками)
| Модель API | Описание |
|------------|----------|
| `gigachat-internal` | Внутренняя установка основной модели |
| `gigachat-pro-internal` | Внутренняя установка продвинутой модели |
| `gigachat-max-internal` | Внутренняя установка модели с максимальными возможностями |
**Примечание:** Внутренние модели доступны только при настройке переменных окружения для внутренней установки (см. раздел "Настройка внутренней установки").
## 🏢 Настройка внутренней установки GigaChat
Пакет поддерживает работу с внутренними установками GigaChat, которые используют заголовки аутентификации вместо токенов.
### Переменные окружения
```bash
# Включить поддержку внутренней установки
export GIGACHAT_INTERNAL_ENABLED=true
# URL внутренней установки (обязательно)
export GIGACHAT_INTERNAL_URL=https://my-gigachat.company.com/api/v1
# Название заголовка аутентификации (по умолчанию: X-Client-Id)
export GIGACHAT_AUTH_HEADER_NAME=X-Client-Id
# Значение заголовка аутентификации (обязательно)
export GIGACHAT_AUTH_HEADER_VALUE=bddcba1a-6139-4b5f-9994-90f1b74e9109
```
### Использование внутренних моделей
```python
import openai
client = openai.OpenAI(
base_url="http://localhost:4000",
api_key="any-key" # Заголовки управляются автоматически
)
# Использование внутренней модели
response = client.chat.completions.create(
model="gigachat-internal", # Автоматически добавится заголовок X-Client-Id
messages=[{"role": "user", "content": "Привет!"}]
)
print(response.choices[0].message.content)
```
### Тестирование внутренней установки
```bash
# Запуск примера
python examples/internal_gigachat_example.py
# Запуск тестов
python tests/test_internal_gigachat.py
# Тестирование через curl
curl -X POST http://localhost:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer any-key" \
-d '{
"model": "gigachat-internal",
"messages": [{"role": "user", "content": "Привет!"}]
}'
```
### Кастомизация
Вы можете настроить любые параметры:
```bash
# Пример для другой установки
export GIGACHAT_INTERNAL_ENABLED=true
export GIGACHAT_INTERNAL_URL=https://internal-ai.company.ru/v2
export GIGACHAT_AUTH_HEADER_NAME=Authorization-Key
export GIGACHAT_AUTH_HEADER_VALUE=secret-key-123
```
## 🧪 Тестирование
### После установки через pip
```bash
# Проверка версии и CLI
litellm-gigachat --version
litellm-gigachat --help
# Запуск прокси-сервера (требует GIGACHAT_AUTH_KEY)
export GIGACHAT_AUTH_KEY="ваш_ключ"
litellm-gigachat
# Тестирование через curl (в другом терминале)
curl -X POST http://localhost:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer any-key" \
-d '{
"model": "gigachat",
"messages": [{"role": "user", "content": "Привет!"}]
}'
```
### При разработке из исходников
```bash
# Базовая функциональность
python tests/test_basic_functionality.py
# Интеграция с Cline
python tests/test_cline_integration.py
# Интерактивные примеры
python examples/basic_usage.py
# Все тесты
python -m pytest tests/
```
### Быстрая проверка работоспособности
```python
# test_quick.py
import openai
client = openai.OpenAI(
base_url="http://localhost:4000",
api_key="test-key"
)
try:
response = client.chat.completions.create(
model="gigachat",
messages=[{"role": "user", "content": "Тест"}]
)
print("✅ Интеграция работает!")
print(f"Ответ: {response.choices[0].message.content}")
except Exception as e:
print(f"❌ Ошибка: {e}")
```
## 🚨 Устранение неполадок
### Ошибка "Authorization key не найден"
```bash
# Установите переменную окружения
export GIGACHAT_AUTH_KEY="ваш_ключ"
# Проверьте, что ключ установлен
echo $GIGACHAT_AUTH_KEY
```
### Проблемы с CLI командой
```bash
# Проверьте, что пакет установлен
pip list | grep litellm-gigachat
# Переустановите пакет при необходимости
pip install --upgrade litellm-gigachat
# Проверьте версию
litellm-gigachat --version
```
### Проблемы с прокси-сервером
```bash
# Убедитесь, что прокси запущен
litellm-gigachat
# Проверьте, что порт свободен
lsof -i :4000
# Запустите на другом порту
litellm-gigachat --port 8000
```
### Проблемы с Cline
- Убедитесь, что прокси запущен: `litellm-gigachat`
- Проверьте URL: `http://localhost:4000`
- Проверьте, что порт доступен: `curl http://localhost:4000/health`
- Тест интеграции: `python tests/test_cline_integration.py`
### Проблемы с сертификатами
```bash
# Проверьте подключение к GigaChat API
curl -k https://gigachat.devices.sberbank.ru/api/v1/models
# При проблемах с SSL попробуйте переустановить certifi
pip install --upgrade certifi
```
Полное руководство: **[❓ FAQ](docs/FAQ.md)**
## 🔗 Полезные ссылки
- **[📚 Полная документация](docs/README.md)** - подробное руководство
- **[❓ FAQ](docs/FAQ.md)** - часто задаваемые вопросы
- **[🔧 API Reference](docs/TEST_REQUESTS.md)** - примеры запросов
---
**Лицензия**: MIT | **Поддерживаемые версии**: Python 3.8+
Raw data
{
"_id": null,
"home_page": null,
"name": "litellm-gigachat",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "LiteLLM GigaChat Team <clack008@gmail.com>",
"keywords": "gigachat, litellm, openai, api, proxy, sber, russian, llm, ai, chatbot",
"author": null,
"author_email": "LiteLLM GigaChat Team <clack008@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/c9/7a/66062a1c2618e7a81fd5947b0885c7848b5c8dae52b7eb663a9d4e5c35da/litellm_gigachat-0.1.2.tar.gz",
"platform": null,
"description": "# \u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f GigaChat \u0441 LiteLLM\n\n[](https://github.com/stp008/litellm-gigachat/stargazers)\n[](https://pypi.org/project/litellm-gigachat/)\n\n[](https://python.org)\n[](https://github.com/BerriAI/litellm)\n[](LICENSE)\n[](https://developers.sber.ru/portal/products/gigachat-api)\n\n**\u041f\u043e\u043b\u043d\u043e\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f GigaChat API \u0441 LiteLLM** - \u0433\u043e\u0442\u043e\u0432\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u043e\u0439 \u044f\u0437\u044b\u043a\u043e\u0432\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 GigaChat \u0447\u0435\u0440\u0435\u0437 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 OpenAI-\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441. \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0442\u043e\u043a\u0435\u043d\u043e\u0432, \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0438 \u043f\u043e\u043b\u043d\u0443\u044e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441 AI-\u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u043e\u043c Cline.\n\n## \ud83d\udcda \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\n\n**[\u041f\u043e\u043b\u043d\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f](docs/README.md)** | **[FAQ](docs/FAQ.md)** | **[\u0422\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b](docs/TEST_REQUESTS.md)** | **[\u041f\u0440\u0438\u0447\u0438\u043d\u044b \u043d\u0435\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 \u0441 OpenAI API](docs/GIGACHAT_COMPATIBILITY.md)**\n\n## \ud83d\ude80 \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438\n\n- **\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0442\u043e\u043a\u0435\u043d\u043e\u0432**\n- **\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432**\n- **\u0421\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441 Cline** \n- **Streaming \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430**\n\n## \ud83d\udce6 \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\n\n### \u0427\u0435\u0440\u0435\u0437 pip (\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f)\n\n```bash\n# \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u0430\npip install litellm-gigachat\n\n# \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438\nlitellm-gigachat --version\n```\n\n### \u0418\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 (\u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438)\n\n```bash\n# 1. \u041a\u043b\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f\ngit clone https://github.com/stp008/litellm-gigachat.git\ncd litellm-gigachat\n\n# 2. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\npip install -e .\n\n# 3. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438\nlitellm-gigachat --version\n```\n\n## \ud83c\udfaf \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442\n\n### 1. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 API \u043a\u043b\u044e\u0447\u0430\n\n```bash\n# \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0432\u0430\u0448 authorization key \u043e\u0442 GigaChat\nexport GIGACHAT_AUTH_KEY=\"\u0432\u0430\u0448_authorization_key\"\n```\n\n### 2. \u0417\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u043a\u0441\u0438-\u0441\u0435\u0440\u0432\u0435\u0440\u0430\n\n```bash\n# \u0427\u0435\u0440\u0435\u0437 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043f\u0430\u043a\u0435\u0442 (\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f)\nlitellm-gigachat\n\n# \u0427\u0435\u0440\u0435\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 (\u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438)\npython tools/start_proxy.py\n\n# \u0421 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430)\nlitellm-gigachat --host 127.0.0.1 --port 8000\n\n# \u0421 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u043c \u0444\u0430\u0439\u043b\u043e\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\nlitellm-gigachat --config my_config.yml\n\n# \u0421\u043f\u0440\u0430\u0432\u043a\u0430 \u043f\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\nlitellm-gigachat --help\n```\n\n**\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435:** \u0415\u0441\u043b\u0438 \u0432\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u0435 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u043c\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 (\u043a\u043b\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 `python tools/start_proxy.py`. \u0415\u0441\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 \u043f\u0430\u043a\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 pip, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 `litellm-gigachat`.\n\n### 3. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 OpenAI API\n\n```python\nimport openai\n\nclient = openai.OpenAI(\n base_url=\"http://localhost:4000\",\n api_key=\"any-key\" # \u0422\u043e\u043a\u0435\u043d \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\n)\n\nresponse = client.chat.completions.create(\n model=\"gigachat\",\n messages=[{\"role\": \"user\", \"content\": \"\u041f\u0440\u0438\u0432\u0435\u0442, GigaChat!\"}]\n)\n\nprint(response.choices[0].message.content)\n```\n\n### 4. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 LiteLLM (\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e)\n\n```python\nimport litellm_gigachat\n\n# \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438\nlitellm_gigachat.setup_litellm_gigachat_integration()\n\n# \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 LiteLLM\nimport litellm\n\nresponse = litellm.completion(\n model=\"openai/GigaChat\",\n api_base=\"https://gigachat.devices.sberbank.ru/api/v1\",\n api_key=litellm_gigachat.get_gigachat_token(),\n messages=[{\"role\": \"user\", \"content\": \"\u041f\u0440\u0438\u0432\u0435\u0442!\"}]\n)\n\nprint(response.choices[0].message.content)\n```\n\n### \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 Cline\n\n\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440 \u043a\u0430\u043a \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 OpenAI \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0433\u043e \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430, \u0442\u0430\u043a \u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 LiteLLM \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043e\u043f\u0446\u0438\u0439.\n\n##### \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 LiteLLM \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 (\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f):\n<img src=\"docs/images/cline-settings-litellm.png\" alt=\"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 Cline \u0447\u0435\u0440\u0435\u0437 LiteLLM\" width=\"500\">\n\n##### \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 OpenAI Compatible \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430:\n<img src=\"docs/images/cline-settings-openai.png\" alt=\"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 Cline \u0441 OpenAI \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c\u044e\" width=\"500\">\n\n\u0412 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 Cline \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:\n\n**\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438:**\n1. **API Provider**: \u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 `LiteLLM` \u0438\u043b\u0438 `OpenAI Compatible` \u0438\u0437 \u0432\u044b\u043f\u0430\u0434\u0430\u044e\u0449\u0435\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430\n2. **Base URL**: \u0412\u0432\u0435\u0434\u0438\u0442\u0435 `http://localhost:4000` (\u0431\u0435\u0437 \u0441\u043b\u044d\u0448\u0430 \u0432 \u043a\u043e\u043d\u0446\u0435)\n3. **API Key**: \u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043b\u044e\u0431\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 `gigachat-key` (\u0442\u043e\u043a\u0435\u043d \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438)\n4. **Model**: \u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043e\u0434\u043d\u0443 \u0438\u0437 \u043c\u043e\u0434\u0435\u043b\u0435\u0439:\n - `gigachat` - \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c (\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430)\n - `gigachat-pro` - \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u043b\u044f \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447\n - `gigachat-max` - \u043c\u043e\u0434\u0435\u043b\u044c \u0441 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438\n\n#### 4.3 \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 (\u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e)\n\n- **Temperature**: 0.7 (\u0434\u043b\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043c\u0435\u0436\u0434\u0443 \u043a\u0440\u0435\u0430\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e)\n- **Max Tokens**: 4000 (\u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u043e\u0442\u0432\u0435\u0442\u0430)\n- **Timeout**: 60 \u0441\u0435\u043a\u0443\u043d\u0434\n\n\n### \u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 Cline\n\n```bash\npython test_cline_integration.py\n```\n\n## \ud83d\udd27 CLI \u043a\u043e\u043c\u0430\u043d\u0434\u044b\n\n\u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 `litellm-gigachat` \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u043a\u0441\u0438-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c:\n\n### \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b\n\n| \u041a\u043e\u043c\u0430\u043d\u0434\u0430 | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 |\n|---------|----------|\n| `litellm-gigachat` | \u0417\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u043a\u0441\u0438-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e |\n| `litellm-gigachat --help` | \u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u043f\u0440\u0430\u0432\u043a\u0443 \u043f\u043e \u0432\u0441\u0435\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c |\n| `litellm-gigachat --version` | \u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044e \u043f\u0430\u043a\u0435\u0442\u0430 |\n\n### \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438\n\n| \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 | \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e |\n|----------|----------|--------------|\n| `--host` | \u0425\u043e\u0441\u0442 \u0434\u043b\u044f \u043f\u0440\u043e\u043a\u0441\u0438-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 | `0.0.0.0` |\n| `--port` | \u041f\u043e\u0440\u0442 \u0434\u043b\u044f \u043f\u0440\u043e\u043a\u0441\u0438-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 | `4000` |\n| `--config` | \u041f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 | `config.yml` |\n\n### \u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\n\n```bash\n# \u0417\u0430\u043f\u0443\u0441\u043a \u043d\u0430 localhost \u0441 \u043f\u043e\u0440\u0442\u043e\u043c 8000\nlitellm-gigachat --host 127.0.0.1 --port 8000\n\n# \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\nlitellm-gigachat --config /path/to/my_config.yml\n\n# \u0417\u0430\u043f\u0443\u0441\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435\nlitellm-gigachat --host localhost --port 3000\n```\n\n## \ud83d\udcca \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u0438\n\n### \u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 (\u0441 \u0442\u043e\u043a\u0435\u043d\u0430\u043c\u0438)\n| \u041c\u043e\u0434\u0435\u043b\u044c API | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 |\n|------------|----------|\n| `gigachat` | \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u043b\u044f \u043e\u0431\u0449\u0438\u0445 \u0437\u0430\u0434\u0430\u0447 |\n| `gigachat-pro` | \u041f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u043b\u044f \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 |\n| `gigachat-max` | \u041c\u043e\u0434\u0435\u043b\u044c \u0441 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438 |\n\n### \u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 (\u0441 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u043c\u0438)\n| \u041c\u043e\u0434\u0435\u043b\u044c API | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 |\n|------------|----------|\n| `gigachat-internal` | \u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 |\n| `gigachat-pro-internal` | \u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 |\n| `gigachat-max-internal` | \u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043c\u043e\u0434\u0435\u043b\u0438 \u0441 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438 |\n\n**\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435:** \u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 (\u0441\u043c. \u0440\u0430\u0437\u0434\u0435\u043b \"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438\").\n\n## \ud83c\udfe2 \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 GigaChat\n\n\u041f\u0430\u043a\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u043c\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\u043c\u0438 GigaChat, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u043a\u0435\u043d\u043e\u0432.\n\n### \u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f\n\n```bash\n# \u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438\nexport GIGACHAT_INTERNAL_ENABLED=true\n\n# URL \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 (\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e)\nexport GIGACHAT_INTERNAL_URL=https://my-gigachat.company.com/api/v1\n\n# \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e: X-Client-Id)\nexport GIGACHAT_AUTH_HEADER_NAME=X-Client-Id\n\n# \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 (\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e)\nexport GIGACHAT_AUTH_HEADER_VALUE=bddcba1a-6139-4b5f-9994-90f1b74e9109\n```\n\n### \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439\n\n```python\nimport openai\n\nclient = openai.OpenAI(\n base_url=\"http://localhost:4000\",\n api_key=\"any-key\" # \u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\n)\n\n# \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u043c\u043e\u0434\u0435\u043b\u0438\nresponse = client.chat.completions.create(\n model=\"gigachat-internal\", # \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u0441\u044f \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a X-Client-Id\n messages=[{\"role\": \"user\", \"content\": \"\u041f\u0440\u0438\u0432\u0435\u0442!\"}]\n)\n\nprint(response.choices[0].message.content)\n```\n\n### \u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438\n\n```bash\n# \u0417\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0430\npython examples/internal_gigachat_example.py\n\n# \u0417\u0430\u043f\u0443\u0441\u043a \u0442\u0435\u0441\u0442\u043e\u0432\npython tests/test_internal_gigachat.py\n\n# \u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 curl\ncurl -X POST http://localhost:4000/v1/chat/completions \\\n -H \"Content-Type: application/json\" \\\n -H \"Authorization: Bearer any-key\" \\\n -d '{\n \"model\": \"gigachat-internal\",\n \"messages\": [{\"role\": \"user\", \"content\": \"\u041f\u0440\u0438\u0432\u0435\u0442!\"}]\n }'\n```\n\n### \u041a\u0430\u0441\u0442\u043e\u043c\u0438\u0437\u0430\u0446\u0438\u044f\n\n\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043b\u044e\u0431\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:\n\n```bash\n# \u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438\nexport GIGACHAT_INTERNAL_ENABLED=true\nexport GIGACHAT_INTERNAL_URL=https://internal-ai.company.ru/v2\nexport GIGACHAT_AUTH_HEADER_NAME=Authorization-Key\nexport GIGACHAT_AUTH_HEADER_VALUE=secret-key-123\n```\n\n## \ud83e\uddea \u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\n\n### \u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0447\u0435\u0440\u0435\u0437 pip\n\n```bash\n# \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 \u0438 CLI\nlitellm-gigachat --version\nlitellm-gigachat --help\n\n# \u0417\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u043a\u0441\u0438-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 (\u0442\u0440\u0435\u0431\u0443\u0435\u0442 GIGACHAT_AUTH_KEY)\nexport GIGACHAT_AUTH_KEY=\"\u0432\u0430\u0448_\u043a\u043b\u044e\u0447\"\nlitellm-gigachat\n\n# \u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 curl (\u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435)\ncurl -X POST http://localhost:4000/v1/chat/completions \\\n -H \"Content-Type: application/json\" \\\n -H \"Authorization: Bearer any-key\" \\\n -d '{\n \"model\": \"gigachat\",\n \"messages\": [{\"role\": \"user\", \"content\": \"\u041f\u0440\u0438\u0432\u0435\u0442!\"}]\n }'\n```\n\n### \u041f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432\n\n```bash\n# \u0411\u0430\u0437\u043e\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c\npython tests/test_basic_functionality.py\n\n# \u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 Cline\npython tests/test_cline_integration.py\n\n# \u0418\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b\npython examples/basic_usage.py\n\n# \u0412\u0441\u0435 \u0442\u0435\u0441\u0442\u044b\npython -m pytest tests/\n```\n\n### \u0411\u044b\u0441\u0442\u0440\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438\n\n```python\n# test_quick.py\nimport openai\n\nclient = openai.OpenAI(\n base_url=\"http://localhost:4000\",\n api_key=\"test-key\"\n)\n\ntry:\n response = client.chat.completions.create(\n model=\"gigachat\",\n messages=[{\"role\": \"user\", \"content\": \"\u0422\u0435\u0441\u0442\"}]\n )\n print(\"\u2705 \u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442!\")\n print(f\"\u041e\u0442\u0432\u0435\u0442: {response.choices[0].message.content}\")\nexcept Exception as e:\n print(f\"\u274c \u041e\u0448\u0438\u0431\u043a\u0430: {e}\")\n```\n\n## \ud83d\udea8 \u0423\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043d\u0435\u043f\u043e\u043b\u0430\u0434\u043e\u043a\n\n### \u041e\u0448\u0438\u0431\u043a\u0430 \"Authorization key \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\"\n```bash\n# \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f\nexport GIGACHAT_AUTH_KEY=\"\u0432\u0430\u0448_\u043a\u043b\u044e\u0447\"\n\n# \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0447\u0442\u043e \u043a\u043b\u044e\u0447 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\necho $GIGACHAT_AUTH_KEY\n```\n\n### \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 CLI \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439\n```bash\n# \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0447\u0442\u043e \u043f\u0430\u043a\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\npip list | grep litellm-gigachat\n\n# \u041f\u0435\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u043f\u0430\u043a\u0435\u0442 \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438\npip install --upgrade litellm-gigachat\n\n# \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0432\u0435\u0440\u0441\u0438\u044e\nlitellm-gigachat --version\n```\n\n### \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u043f\u0440\u043e\u043a\u0441\u0438-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c\n```bash\n# \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u043f\u0440\u043e\u043a\u0441\u0438 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\nlitellm-gigachat\n\n# \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0447\u0442\u043e \u043f\u043e\u0440\u0442 \u0441\u0432\u043e\u0431\u043e\u0434\u0435\u043d\nlsof -i :4000\n\n# \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u043c \u043f\u043e\u0440\u0442\u0443\nlitellm-gigachat --port 8000\n```\n\n### \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 Cline\n- \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u043f\u0440\u043e\u043a\u0441\u0438 \u0437\u0430\u043f\u0443\u0449\u0435\u043d: `litellm-gigachat`\n- \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 URL: `http://localhost:4000`\n- \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0447\u0442\u043e \u043f\u043e\u0440\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d: `curl http://localhost:4000/health`\n- \u0422\u0435\u0441\u0442 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438: `python tests/test_cline_integration.py`\n\n### \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\u043c\u0438\n```bash\n# \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a GigaChat API\ncurl -k https://gigachat.devices.sberbank.ru/api/v1/models\n\n# \u041f\u0440\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0445 \u0441 SSL \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c certifi\npip install --upgrade certifi\n```\n\n\u041f\u043e\u043b\u043d\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e: **[\u2753 FAQ](docs/FAQ.md)**\n\n## \ud83d\udd17 \u041f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438\n\n- **[\ud83d\udcda \u041f\u043e\u043b\u043d\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f](docs/README.md)** - \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e\n- **[\u2753 FAQ](docs/FAQ.md)** - \u0447\u0430\u0441\u0442\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b\n- **[\ud83d\udd27 API Reference](docs/TEST_REQUESTS.md)** - \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432\n\n---\n\n**\u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f**: MIT | **\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438**: Python 3.8+\n",
"bugtrack_url": null,
"license": null,
"summary": "\u041f\u043e\u043b\u043d\u043e\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f GigaChat API \u0441 LiteLLM",
"version": "0.1.2",
"project_urls": {
"Bug Tracker": "https://github.com/stp008/litellm-gigachat/issues",
"Documentation": "https://github.com/stp008/litellm-gigachat/blob/main/docs/README.md",
"Homepage": "https://github.com/stp008/litellm-gigachat",
"Repository": "https://github.com/stp008/litellm-gigachat.git"
},
"split_keywords": [
"gigachat",
" litellm",
" openai",
" api",
" proxy",
" sber",
" russian",
" llm",
" ai",
" chatbot"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "df2764fcc29913312f77f4e654bbb358f233b5c7876a036796ef01a0fdf3583f",
"md5": "f93ff359871d9acfef901af5d1491e01",
"sha256": "67252c2c414a7183bd2c6805bd858578058caaeafe6afb60ecb09e98be504923"
},
"downloads": -1,
"filename": "litellm_gigachat-0.1.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f93ff359871d9acfef901af5d1491e01",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 45771,
"upload_time": "2025-07-09T16:21:12",
"upload_time_iso_8601": "2025-07-09T16:21:12.060126Z",
"url": "https://files.pythonhosted.org/packages/df/27/64fcc29913312f77f4e654bbb358f233b5c7876a036796ef01a0fdf3583f/litellm_gigachat-0.1.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c97a66062a1c2618e7a81fd5947b0885c7848b5c8dae52b7eb663a9d4e5c35da",
"md5": "fbccd2cbe5a435a2571edd7307f316bd",
"sha256": "885d35406fb86381093c7163d47b0bf3da649b05f545be35e0a8cfa539f3bab6"
},
"downloads": -1,
"filename": "litellm_gigachat-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "fbccd2cbe5a435a2571edd7307f316bd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 475031,
"upload_time": "2025-07-09T16:21:14",
"upload_time_iso_8601": "2025-07-09T16:21:14.184316Z",
"url": "https://files.pythonhosted.org/packages/c9/7a/66062a1c2618e7a81fd5947b0885c7848b5c8dae52b7eb663a9d4e5c35da/litellm_gigachat-0.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-09 16:21:14",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "stp008",
"github_project": "litellm-gigachat",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "litellm",
"specs": [
[
"==",
"1.65.1"
]
]
},
{
"name": "litellm",
"specs": [
[
"==",
"1.65.1"
]
]
},
{
"name": "requests",
"specs": [
[
">=",
"2.31.0"
],
[
"<",
"3.0.0"
]
]
},
{
"name": "certifi",
"specs": [
[
">=",
"2023.7.22"
]
]
},
{
"name": "python-dotenv",
"specs": [
[
"<",
"2.0.0"
],
[
">=",
"1.0.0"
]
]
}
],
"lcname": "litellm-gigachat"
}