Адаптер предоставляет доступ к GigaChat API через интерфейс, совместимый с OpenAI API, позволяя интегрировать GigaChat в приложения, изначально ориентированные на OpenAI, с минимальными изменениями кода.
Изначально проект был создан для подключения к сервису Open WebUI. На текущий момент реализована базовая работа с GigaChat через метод chat/completions
с поддержкой файлов в сообщениях. Таких возможности как embeddings и т.д будут реализованы по мере необходимости.
✨ Основные возможности:
- На основе официальной библиотеки gigachat
- Поддержка
chat/completions
API с потоковой передачей сообщений - Поддержка файлов в сообщениях исключая повторные загрузки в 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
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.py
Swagger документация доступна по адресу: 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-adapter
pytest .
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.