Полнофункциональная интеграция GigaChat API с LiteLLM
Project description
Интеграция GigaChat с LiteLLM
Полнофункциональная интеграция GigaChat API с LiteLLM - готовое решение для подключения российской языковой модели GigaChat через стандартный OpenAI-совместимый интерфейс. Включает автоматическое обновление токенов, преобразование контента и полную совместимость с AI-ассистентом Cline.
📚 Документация
Полная документация | FAQ | Тестовые запросы | Причины несовместимости с OpenAI API
🚀 Основные возможности
- Автоматическое обновление токенов
- Автоматическая настройка сертификатов
- Совместимость с Cline
- Streaming поддержка
📦 Установка
Через pip (рекомендуется)
# Установка пакета
pip install litellm-gigachat
# Проверка установки
litellm-gigachat --version
Из исходников (для разработки)
# 1. Клонирование репозитория
git clone https://github.com/stp008/litellm-gigachat.git
cd litellm-gigachat
# 2. Установка в режиме разработки
pip install -e .
# 3. Проверка установки
litellm-gigachat --version
🎯 Быстрый старт
1. Настройка API ключа
# Установите ваш authorization key от GigaChat
export GIGACHAT_AUTH_KEY="ваш_authorization_key"
2. Запуск прокси-сервера
# Через установленный пакет (рекомендуется)
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
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 (программно)
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 провайдера. В случае использования второго варианта появляется больше доступных опций.
Настройки OpenAI Compatible провайдера:
Настройка LiteLLM провайдера:
В настройках Cline укажите следующие параметры:
Основные настройки:
- API Provider: Выберите
OpenAI CompatibleилиLiteLLMиз выпадающего списка - Base URL: Введите
http://localhost:4000(без слэша в конце) - API Key: Введите любое значение, например
gigachat-key(токен управляется автоматически) - Model: Выберите одну из моделей:
gigachat- основная модель (рекомендуется для начала)gigachat-pro- продвинутая модель для сложных задачgigachat-max- модель с максимальными возможностями
4.3 Дополнительные настройки (опционально)
- Temperature: 0.7 (для баланса между креативностью и точностью)
- Max Tokens: 4000 (максимальная длина ответа)
- Timeout: 60 секунд
Тестирование интеграции с Cline
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 |
Примеры использования
# Запуск на 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 |
Модель с максимальными возможностями |
🧪 Тестирование
После установки через pip
# Проверка версии и 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": "Привет!"}]
}'
При разработке из исходников
# Базовая функциональность
python tests/test_basic_functionality.py
# Интеграция с Cline
python tests/test_cline_integration.py
# Интерактивные примеры
python examples/basic_usage.py
# Все тесты
python -m pytest tests/
Быстрая проверка работоспособности
# 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 не найден"
# Установите переменную окружения
export GIGACHAT_AUTH_KEY="ваш_ключ"
# Проверьте, что ключ установлен
echo $GIGACHAT_AUTH_KEY
Проблемы с CLI командой
# Проверьте, что пакет установлен
pip list | grep litellm-gigachat
# Переустановите пакет при необходимости
pip install --upgrade litellm-gigachat
# Проверьте версию
litellm-gigachat --version
Проблемы с прокси-сервером
# Убедитесь, что прокси запущен
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
Проблемы с сертификатами
# Проверьте подключение к GigaChat API
curl -k https://gigachat.devices.sberbank.ru/api/v1/models
# При проблемах с SSL попробуйте переустановить certifi
pip install --upgrade certifi
Полное руководство: ❓ FAQ
🔗 Полезные ссылки
- 📚 Полная документация - подробное руководство
- ❓ FAQ - часто задаваемые вопросы
- 🔧 API Reference - примеры запросов
Лицензия: MIT | Поддерживаемые версии: Python 3.8+
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file litellm_gigachat-0.1.1.tar.gz.
File metadata
- Download URL: litellm_gigachat-0.1.1.tar.gz
- Upload date:
- Size: 455.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4df6f162c199da425d07c01df4ef767eefec9570ccff8a7ebcd6fbd92dede76c
|
|
| MD5 |
f25cf064f2e5363218c596df4e153e3b
|
|
| BLAKE2b-256 |
24b4e65144776d952c4ea40f252d3816a115fd9bd3834ff609c0e19984775ae8
|
File details
Details for the file litellm_gigachat-0.1.1-py3-none-any.whl.
File metadata
- Download URL: litellm_gigachat-0.1.1-py3-none-any.whl
- Upload date:
- Size: 23.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a2381f8eb61bc30e9a4c32714a0eff3351408b86de36be84046db595ba23f0a
|
|
| MD5 |
760d66f6a3f311c22418f13d730bc363
|
|
| BLAKE2b-256 |
7a9573644761b5e6adb72e4b4c880eda0d80d88fe92e28034a5342aa5618d0a5
|