Адаптер предоставляет доступ к GigaChat API через интерфейс, совместимый с OpenAI API, позволяя интегрировать GigaChat в приложения, изначально ориентированные на OpenAI, с минимальными изменениями кода.
Изначально проект был создан для подключения к сервису Open WebUI. На текущий момент реализована базовая работа с GigaChat через метод chat/completions с поддержкой файлов в сообщениях. Таких возможности как embeddings и т.д будут реализованы по мере необходимости.
✨ Основные возможности:
- На основе официальной библиотеки gigachat
- Поддержка
chat/completionsAPI с потоковой передачей сообщений - Поддержка файлов в сообщениях исключая повторные загрузки в GigaChat
- Docker-образ
- Healthcheck API (ready, live)
docker run -p 8000:8000 \
-e GIGACHAT_CREDENTIALS=your_credentials \
-e BEARER_TOKEN=your_token \
-e GIGACHAT_VERIFY_SSL_CERTS=False \
antonk0/gigachat-adapter:latestЧерез Docker Compose:
services:
gigachat-adapter:
image: antonk0/gigachat-adapter:latest
ports:
- "8000:8000"
environment:
- GIGACHAT_CREDENTIALS=your_credentials
- BEARER_TOKEN=your_token
- GIGACHAT_VERIFY_SSL_CERTS=FalseПри интеграции адаптера с приложениями, которые поддерживают OpenAI API, используйте следующий базовый URL:
http://your-host:8000/v1
Важно: Для корректной работы с большинством OpenAI-совместимых приложений рекомендуется добавлять /v1 к базовому URL адаптера (но это не точно).
Примеры настройки:
- Base URL:
http://localhost:8000/v1(для локального запуска) - Base URL:
http://gigachat-adapter:8000/v1(для Docker Compose) - Authorization: Bearer Token (значение переменной
BEARER_TOKEN)
Below are the environment variables you can set in your .env file:
Параметры библиотеки gigachat. Параметры должны начинаться с GIGACHAT_ и соответствовать параметрам GigaChat API.
| Параметр | Обязательный | Описание |
|---|---|---|
| CREDENTIALS | Да | Ключ авторизации для доступа к GigaChat API.API. |
| VERIFY_SSL_CERTS | Нет | Отключение проверки ssl-сертификатов. |
| SCOPE | Нет | Версия API: GIGACHAT_API_PERS, GIGACHAT_API_B2B, GIGACHAT_API_CORP |
| MODEL | Нет | Модель GigaChat |
| BASE_URL | Нет | URL API |
| AUTH_URL | Нет | URL для авторизации |
| ACCESS_TOKEN | Нет | Токен доступа |
| PROFANITY_CHECK | Нет | Модерация |
| USER | Нет | Имя пользователя |
| PASSWORD | Нет | Пароль |
| TIMEOUT | Нет | Таймаут запросов |
| VERBOSE | Нет | Подробный вывод логов |
| CA_BUNDLE_FILE | Нет | Путь к корневому сертификату |
| CERT_FILE | Нет | Путь к клиентскому сертификату |
| KEY_FILE | Нет | Путь к ключу сертификата |
| KEY_FILE_PASSWORD | Нет | Пароль от ключа сертификата |
Обязательно надо указать BEARER_TOKEN для авторизации запросов к адаптеру.
| Параметр | Обязательный | Описание |
|---|---|---|
| BEARER_TOKEN | Да | Токен для авторизации запросов к адаптеру |
| DEBUG | Нет | Режим отладки, подробные логи |
| ENVIRONMENT | Нет | Окружение (development/production) |
| CORS_ALLOWED_HOSTS | Нет | Список разрешенных хостов для CORS |
# Clone repository
git clone https://github.com/your-username/gigachat-adapter
cd gigachat-adapter
# Install dependencies
uv sync- Создайте файл
.envв корне проекта - Добавьте обязательные переменные окружения:
BEARER_TOKEN=your_token
GIGACHAT_CREDENTIALS=your_gigachat_credentials
- Local development:
uv run fastapi dev src/main.pySwagger документация доступна по адресу: http://localhost:8000/docs
Build and run with Docker:
docker build -t gigachat-adapter .
docker run -p 8000:8000 \
-e BEARER_TOKEN=your_token \
-e GIGACHAT_CREDENTIALS=your_credentials \
-e GIGACHAT_VERIFY_SSL_CERTS=false \
gigachat-adapterpytest .ruff check
mypy .Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.