Skip to main content

Полнофункциональная интеграция GigaChat API с LiteLLM

Project description

Интеграция GigaChat с LiteLLM

GitHub stars PyPI version

Python LiteLLM License GigaChat

Полнофункциональная интеграция 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 провайдера. В случае использования второго варианта появляется больше доступных опций.

Настройка LiteLLM провайдера (рекомендуется):
Настройки Cline через LiteLLM
Настройки OpenAI Compatible провайдера:
Настройки Cline с OpenAI совместимостью

В настройках 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

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 Модель с максимальными возможностями

Внутренние модели (с заголовками)

Модель API Описание
gigachat-internal Внутренняя установка основной модели
gigachat-pro-internal Внутренняя установка продвинутой модели
gigachat-max-internal Внутренняя установка модели с максимальными возможностями

Примечание: Внутренние модели доступны только при настройке переменных окружения для внутренней установки (см. раздел "Настройка внутренней установки").

🏢 Настройка внутренней установки GigaChat

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

Переменные окружения

# Включить поддержку внутренней установки
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

Использование внутренних моделей

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)

Тестирование внутренней установки

# Запуск примера
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": "Привет!"}]
  }'

Кастомизация

Вы можете настроить любые параметры:

# Пример для другой установки
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

# Проверка версии и 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

🔗 Полезные ссылки


Лицензия: 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

litellm_gigachat-0.1.3.tar.gz (475.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

litellm_gigachat-0.1.3-py3-none-any.whl (46.2 kB view details)

Uploaded Python 3

File details

Details for the file litellm_gigachat-0.1.3.tar.gz.

File metadata

  • Download URL: litellm_gigachat-0.1.3.tar.gz
  • Upload date:
  • Size: 475.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for litellm_gigachat-0.1.3.tar.gz
Algorithm Hash digest
SHA256 974c1658e59c22f30eb0b0f4969e26e12db1f498668bc3a75c9935eaa524bbf1
MD5 334dcc8702ddd766dc00a7c96d6ea66e
BLAKE2b-256 247fac3d0fab15039804c12269c7e9877bed0f22320bb60b117c08154e56a210

See more details on using hashes here.

File details

Details for the file litellm_gigachat-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for litellm_gigachat-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3d63a8a9c5b7b1a2a61c400e66c133646b08d55364f6d3a7dfe8fa2a6cc06c0f
MD5 84dead80f161eeb00617a929d3ce8bee
BLAKE2b-256 c9f80f42d5f4404070d09945b98bfe047d6d3cc106219e6b9e42518c11ca161b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page