- Описание
- Возможности gpt2giga
- Начало работы
- Примеры
- Параметры
- Авторизация с помощью заголовка
- Использование HTTPS
- Использование API ключа
- Системные эндпоинты
- Совместимые приложения
Утилита gpt2giga — это прокси-сервер, который перенаправляет запросы, отправленные в OpenAI API или Anthropic Messages API, в GigaChat API.
При старте утилиты запускается HTTP-сервер, адрес которого нужно использовать вместо адреса OpenAI API (например, https://api.openai.com/v1/) или Anthropic API (например, https://api.anthropic.com/v1/), заданного в вашем приложении.
Утилита обработает запрос и перенаправит его заданной модели GigaChat.
После получения ответа модели, она передаст его в приложение в формате исходного API (OpenAI или Anthropic).
Утилита работает как с запросами на генерацию, так и с запросами на создание эмбеддингов (эндпоинты /embeddings или /v1/embeddings).
Общая схема работы gpt2giga:
sequenceDiagram
participant YourApp as Приложение
participant gpt2giga
participant GigaChat as GigaChat API
YourApp->>gpt2giga: OpenAI / Anthropic запрос
gpt2giga->>GigaChat: Запрос формата GigaChat API
GigaChat->>gpt2giga: Ответ формата GigaChat API
gpt2giga->>YourApp: OpenAI / Anthropic ответ
С помощью gpt2giga вы можете:
- использовать возможности моделей OpenAI и полностью заменить ChatGPT на GigaChat;
- использовать Anthropic SDK — эндпоинт
/v1/messagesсовместим с Anthropic Messages API, включая стриминг, tool use и extended thinking; - вызывать функции через API, включая передачу и выполнение функций с аргументами;
- использовать структурированный вывод (Structured Outputs) для получения гарантированного JSON-ответа;
- обрабатывать ответ модели в режиме потоковой генерации токенов с помощью параметра
stream=true; - перенаправлять запросы на создание эмбеддингов (поддерживаются эндпоинты
/embeddingsи/v1/embeddings); - работать в асинхронном режиме с множеством потоков запросов от нескольких клиентов;
- общение в openai-формате с файлом;
- использовать эндпоинт
/responses(OpenAI Responses API) для совместимости с новыми клиентами; - отображать подробные сведения о запросах и ответах при включенном логировании
DEBUG,INFO...; - задавать параметры работы как с помощью аргументов командной строки, так и с помощью переменных окружения (
.env).
Утилиту можно запустить как в контейнере, с помощью Docker, так и локально.
-
Переименуйте файл
.env.exampleв.env.cp .env.example .env
-
В файле
.envукажите данные для авторизации в GigaChat API.GigaChat API поддерживает различные способы авторизации, которые отличаются в зависимости от типа вашей учетной записи. Пример с
Authorization key.GPT2GIGA_MODE=PROD GPT2GIGA_HOST=0.0.0.0 GPT2GIGA_PORT=8090 GPT2GIGA_ENABLE_API_KEY_AUTH=True GPT2GIGA_API_KEY="<your_strong_api_key>" GIGACHAT_CREDENTIALS="<your_gigachat_credentials>" GIGACHAT_SCOPE=<your_api_scope> GIGACHAT_MODEL=GigaChat GIGACHAT_VERIFY_SSL_CERTS=True
-
(Опционально) Используйте образ/сборку с нужной версией Python (3.10–3.14).
В
docker-compose.yamlпо умолчанию заданimage: ghcr.io/ai-forever/gpt2giga:latestиbuild.args.PYTHON_VERSION. При необходимости:- обновите
build.args.PYTHON_VERSION(если собираете образ локально); - или замените
image:на нужный тег из реестра.
PYTHON_VERSION=3.10 docker pull gigateam/gpt2giga:python${PYTHON_VERSION} docker pull ghcr.io/ai-forever/gpt2giga:${PYTHON_VERSION}
Доступные теги смотрите в реестрах: Docker Hub и GHCR.
- обновите
-
Запустите контейнер с помощью Docker Compose:
- PROD:
docker compose --profile PROD up -d
- DEV:
docker compose --profile DEV up -d
В профиле
PRODпорт по умолчанию пробрасывается только на127.0.0.1(см.docker-compose.yaml). Для доступа извне используйте reverse proxy (nginx/Traefik/Caddy) или измените bind-адрес вports:. - PROD:
В репозитории есть готовый стек Traefik + несколько инстансов gpt2giga в файле docker-compose.traefik.yaml:
gpt2giga(модель по умолчаниюGigaChat) →http://localhost:8090gpt2giga-pro(модель по умолчаниюGigaChat-Pro) →http://localhost:8091gpt2giga-max(модель по умолчаниюGigaChat-Max) →http://localhost:8092- Traefik Dashboard →
http://localhost:8080/dashboard/
-
Запустите стек:
docker compose -f docker-compose.traefik.yaml up -d
Важно: роутинг в Traefik в этой конфигурации завязан на HTTP
Host(см.traefik/rules.yml). Если вы обращаетесь по IP (например,127.0.0.1), задайтеHOST=127.0.0.1или отправляйте корректный заголовокHost:.
Для управления зависимостями и запуска проекта рекомендуется использовать uv.
-
Установите
gpt2giga:С помощью
uv:uv tool install gpt2giga # или uv add gpt2gigaИли используя
pip:pip install gpt2giga
Вы также можете использовать исходники:
pip install git+https://github.com/ai-forever/gpt2giga.git
После установки пакета вы сможете использовать команду
gpt2giga, которая позволяет запускать и настраивать прокси-сервер. -
Переименуйте файл
.env.exampleв.envи сохраните его в корне своего проекта:cp .env.example .env
-
В файле
.envукажите данные для авторизации в GigaChat API.GigaChat API поддерживает различные способы авторизации, которые отличаются в зависимости от типа вашей учетной записи.
Кроме переменных gpt2giga в
.envможно указать переменные окружения, которые поддерживает python-библиотека GigaChat. -
В терминале выполните команду
gpt2giga.
Запустится прокси-сервер, по умолчанию доступный по адресу localhost:8090 (если не задан GPT2GIGA_PORT или --proxy.port).
Адрес и порт сервера, а также другие параметры, можно настроить с помощью аргументов командной строки или переменных окружения.
Документация FastAPI доступна по адресу http://localhost:<PORT>/docs.
Подробные runnable-примеры вынесены в папку examples/.
- OpenAI Python SDK:
- Chat Completions API:
examples/chat_completions/README.md - Responses API:
examples/responses/README.md
- Chat Completions API:
- Anthropic Python SDK (Messages API):
examples/anthropic/README.md - Индекс всех примеров:
examples/README.md
Вы можете изменять параметры работы утилиты с помощью аргументов командной строки или переменных окружения.
Полный список параметров смотрите в gpt2giga --help.
⚠️ Безопасность: Не передавайте секреты (--proxy.api-key,--gigachat.credentials,--gigachat.password,--gigachat.access-token,--gigachat.key-file-password) через аргументы командной строки — они видны всем пользователям черезps aux. Используйте переменные окружения или.envфайл (см. раздел ниже). Утилита поддерживает аргументы 2 типов (настройки прокси и настройки GigaChat):
-
--env-path <PATH>— путь до файла с переменными окружения.env. По умолчанию ищется.envв текущей директории. -
--proxy [JSON]— set proxy from JSON string (по умолчанию{}); -
--proxy.host <HOST>— хост, на котором запускается прокси-сервер. По умолчаниюlocalhost; -
--proxy.port <PORT>— порт, на котором запускается прокси-сервер. По умолчанию8090; -
--proxy.use-https <true/false>— использовать ли HTTPS. По умолчаниюFalse; -
--proxy.https-key-file <PATH>— Путь до key файла для https. По умолчаниюNone; -
--proxy.https-cert-file <PATH>— Путь до cert файла https. По умолчаниюNone; -
--proxy.pass-model <true/false>— передавать в GigaChat API модель, которую указал клиент в полеmodelв режиме чата; -
--proxy.pass-token <true/false>— передавать токен, полученный в заголовкеAuthorization, в GigaChat API. С помощью него можно настраивать передачу ключей в GigaChat черезOPENAI_API_KEY; -
--proxy.embeddings <EMBED_MODEL>— модель, которая будет использоваться для создания эмбеддингов. По умолчаниюEmbeddingsGigaR; -
--proxy.enable-images <true/false>— включить/выключить передачу изображений в формате OpenAI в GigaChat API (по умолчаниюTrue); -
--proxy.enable-reasoning <true/false>— включить reasoning по умолчанию (добавляетreasoning_effort="high"в payload к GigaChat, если клиент не указалreasoning_effortявно); -
--proxy.log-level— уровень логов{CRITICAL,ERROR,WARNING,INFO,DEBUG}. По умолчаниюINFO; -
--proxy.log-filename— имя лог файла. По умолчаниюgpt2giga.log; -
--proxy.log-max-size— максимальный размер файла в байтах. По умолчанию10 * 1024 * 1024(10 MB); -
--proxy.enable-api-key-auth— нужно ли закрыть доступ к эндпоинтам (требовать API-ключ). По умолчаниюFalse; -
--proxy.api-key— API ключ для защиты эндпоинтов (если enable_api_key_auth=True).
⚠️ Безопасность: Не передавайте секреты (--proxy.api-key,--gigachat.credentials,--gigachat.password,--gigachat.access-token,--gigachat.key-file-password) через аргументы командной строки — они видны всем пользователям черезps aux. Используйте переменные окружения или.envфайл (см. раздел ниже).
Далее идут стандартные настройки из библиотеки GigaChat:
--gigachat [JSON]— set gigachat from JSON string (по умолчанию{});--gigachat.base-url <BASE_URL>— базовый URL для GigaChat API. По умолчанию берется значение переменнойGIGACHAT_BASE_URLили поляBASE_URLвнутри пакета;--gigachat.auth-url <AUTH_URL>— базовый URL для Auth GigaChat API. По умолчанию берется значение переменнойGIGACHAT_AUTH_URLили поляAUTH_URLвнутри пакета;--gigachat.credentials <CREDENTIALS>— credentials (ключ/данные авторизации) для GigaChat;--gigachat.scope <GIGACHAT_SCOPE>— Скоуп гигачат (API_CORP, API_PERS...);--gigachat.user <GIGACHAT_USER>— Вариант авторизации через user/password;--gigachat.password <GIGACHAT_PASSWORD>— Вариант авторизации через user/password;--gigachat.access-token <ACCESS_TOKEN>— JWE токен;--gigachat.model <MODEL>— модель для запросов в GigaChat. По умолчаниюGIGACHAT_MODEL;--gigachat.profanity-check <True/False>— Параметр цензуры. По умолчаниюNone;--gigachat.timeout <TIMEOUT>— таймаут для запросов к GigaChat API. По умолчанию30секунд;--gigachat.verify-ssl-certs <True/False>— проверять сертификаты SSL (по умолчаниюTrue);--gigachat.ssl-context— Пользовательский SSL контекст;--gigachat.ca-bundle-file <PATH>— Путь к CA bundle файлу для проверки TLS сертификатов;--gigachat.cert-file <PATH>— Путь к файлу клиентского сертификата;--gigachat.key-file <PATH>— Путь к файлу приватного ключа клиента;--gigachat.key-file-password <PASSWORD>— Пароль для зашифрованного файла приватного ключа;--gigachat.flags <FLAGS>— Дополнительные флаги для управления поведением клиента;--gigachat.max-connections <INT>— Максимальное количество одновременных подключений к GigaChat API;--gigachat.max-retries <INT>— Максимальное количество попыток повтора для временных ошибок. По умолчанию0(отключено);--gigachat.retry-backoff-factor <FLOAT>— Множитель задержки для повторных попыток. По умолчанию0.5;--gigachat.retry-on-status-codes <INT,INT...>— HTTP коды статуса, вызывающие повторную попытку. По умолчанию(429, 500, 502, 503, 504);--gigachat.token-expiry-buffer-ms <INT>— Буфер времени (мс) до истечения токена для запуска обновления. По умолчанию60000(60 секунд).
Для запуска прокси-сервера с заданным адресом и портом выполните команду:
gpt2giga \
--proxy.host 127.0.0.1 \
--proxy.port 8080 \
--proxy.pass-model true \
--proxy.pass-token true \
--gigachat.base-url https://gigachat.devices.sberbank.ru/api/v1 \
--gigachat.model GigaChat-2-Max \
--gigachat.timeout 300 \
--proxy.embeddings EmbeddingsGigaRДля настройки параметров утилиты также можно использовать переменные окружения, заданные в файле .env.
У настроек прокси префикс GPT2GIGA_, у настроек GigaChat: GIGACHAT_
Список доступных переменных:
GPT2GIGA_HOST="localhost"— хост, на котором запускается прокси-сервер. По умолчаниюlocalhost;GPT2GIGA_MODE="DEV"— режим запуска (DEVилиPROD). ВPRODотключаются/docs,/redoc,/openapi.json; вPRODтакже обязательно требуетсяGPT2GIGA_API_KEY, отключаются/logs,/logs/stream,/logs/html; и автоматически ужесточается CORS (нет wildcard*,allow_credentials=False);GPT2GIGA_PORT="8090"— порт, на котором запускается прокси-сервер. По умолчанию8090;GPT2GIGA_USE_HTTPS="False"— Использовать ли https. По умолчаниюFalse;GPT2GIGA_HTTPS_KEY_FILE=<PATH>— Путь до key файла для https. По умолчаниюNone;GPT2GIGA_HTTPS_CERT_FILE=<PATH>— Путь до cert файла https. По умолчаниюNone;GPT2GIGA_PASS_MODEL="False"— передавать ли модель, указанную в запросе, непосредственно в GigaChat;GPT2GIGA_PASS_TOKEN="False"— передавать токен, полученный в заголовкеAuthorization, в GigaChat API;GPT2GIGA_EMBEDDINGS="EmbeddingsGigaR"— модель для создания эмбеддингов.GPT2GIGA_ENABLE_IMAGES="True"— флаг, который включает передачу изображений в формате OpenAI в GigaChat API;GPT2GIGA_ENABLE_REASONING="False"— включить reasoning по умолчанию (добавляетreasoning_effort="high"в payload к GigaChat, если клиент не указалreasoning_effortявно);GPT2GIGA_LOG_LEVEL="INFO"— Уровень логов{CRITICAL,ERROR,WARNING,INFO,DEBUG}. По умолчаниюINFOGPT2GIGA_LOG_FILENAME="gpt2giga.log"— Имя лог файла. По умолчаниюgpt2giga.logGPT2GIGA_LOG_MAX_SIZE="10*1024*1024"Максимальный размер файла в байтах. По умолчанию10 * 1024 * 1024(10 MB)GPT2GIGA_ENABLE_API_KEY_AUTH="False"— Нужно ли закрыть доступ к эндпоинтам (требовать API-ключ). По умолчаниюFalseGPT2GIGA_API_KEY=""— API ключ для защиты эндпоинтов (если enable_api_key_auth=True).GPT2GIGA_CORS_ALLOW_ORIGINS='["*"]'— список разрешенных Origin (JSON массив);GPT2GIGA_CORS_ALLOW_METHODS='["*"]'— список разрешенных HTTP-методов (JSON массив);GPT2GIGA_CORS_ALLOW_HEADERS='["*"]'— список разрешенных заголовков (JSON массив).
Также можно использовать переменные, которые поддерживает библиотека GigaChat:
GIGACHAT_BASE_URL="https://gigachat.devices.sberbank.ru/api/v1"— базовый URL GigaChat;GIGACHAT_MODEL="GigaChat"— модель GigaChat API, которая будет обрабатывать запросы по умолчанию;GIGACHAT_USERиGIGACHAT_PASSWORD— для авторизации с помощью с помощью логина и пароля;GIGACHAT_CREDENTIALSиGIGACHAT_SCOPE— для авторизации с помощью ключа авторизации;GIGACHAT_ACCESS_TOKEN— для авторизации с помощью токена доступа, полученного в обмен на ключ;GIGACHAT_CA_BUNDLE_FILE- путь к файлу сертификата корневого центра сертификации;GIGACHAT_CERT_FILE- путь к клиентскому сертификату;GIGACHAT_KEY_FILE- путь к закрытому ключу;GIGACHAT_KEY_FILE_PASSWORD- пароль от закрытого ключа;GIGACHAT_VERIFY_SSL_CERTS— для того, чтобы проверять SSL сертификаты, по умолчаниюTrue;GIGACHAT_MAX_CONNECTIONS- Максимальное количество одновременных подключений к GigaChat API;GIGACHAT_MAX_RETRIES- Максимальное количество попыток повтора для временных ошибок. По умолчанию0(отключено);GIGACHAT_RETRY_BACKOFF_FACTOR- Множитель задержки для повторных попыток. По умолчанию0.5;GIGACHAT_TOKEN_EXPIRY_BUFFER_MS- Буфер времени (мс) до истечения токена для запуска обновления. По умолчанию60000(60 секунд).
После запуска сервер будет перенаправлять все запросы, адресованные OpenAI API, в GigaChat API.
Утилита может авторизовать запросы в GigaChat API с помощью данных, полученных в заголовке Authorization.
Для этого запустите gpt2giga с аргументом --proxy.pass-token true или задайте переменную окружения GPT2GIGA_PASS_TOKEN=True.
Поддерживается авторизация с помощью ключа, токена доступа и логина и пароля.
Возможные варианты содержимого заголовка Authorization:
giga-cred-<credentials>:<scope>— авторизация с помощью ключа. Вместо<scope>нужно указать версию API, к которой будут выполняться запросы. Подробнее о ключе авторизации и версии API.giga-auth-<access_token>— при авторизации с помощью токена доступа. Токен доступа получается в обмен на ключ авторизации и действителен в течение 30 минут.giga-user-<user>:<password>— при авторизации с помощью логина и пароля.
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8090", api_key="giga-cred-<credentials>:<scope>")
completion = client.chat.completions.create(
model="gpt-5",
messages=[
{"role": "user", "content": "Кто ты?"},
],
)Утилита может использоваться с протоколом HTTPS, пример генерации сертификатов:
openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout key.pem -out cert.pem -subj "/CN=localhost" -addext "subjectAltName=DNS:localhost,IP:127.0.0.1"GPT2GIGA_USE_HTTPS=True
GPT2GIGA_HTTPS_KEY_FILE="Path to key.pem"
GPT2GIGA_HTTPS_CERT_FILE="Path to cert.pem"После этого укажите пути к сертификатам в переменных окружения или CLI-аргументах и включите HTTPS.
Альтернатива: разместите gpt2giga за reverse proxy с TLS-терминацией:
- пример стека с Traefik:
docker-compose.traefik.yamlи правила вtraefik/(при необходимости добавьте ACME/сертификаты под свой домен).
GPT2GIGA_ENABLE_API_KEY_AUTH=True
GPT2GIGA_API_KEY=123После этого, в сервисе будет добавлена авторизация по токену. Возможны разные варианты выполнения запросов, например: Авторизация по запросу:
curl -L http://localhost:8090/models?x-api-key=123Авторизация по заголовкам:
curl -H "x-api-key:123" -L http://localhost:8090/modelsАвторизация через Bearer:
curl -H "Authorization: Bearer 123" -L http://localhost:8090/modelsfrom openai import OpenAI
client = OpenAI(base_url="http://localhost:8090", api_key="123")
completion = client.chat.completions.create(
model="gpt-5",
messages=[
{"role": "user", "content": "Кто ты?"},
],
)GET /healthGET | POST /pingGET /logs/{last_n_lines}- получение последних N строчек из логов;GET /logs/stream- SSE стриминг логов;GET /logs/html- HTML страница для удобства просмотра стрима логов
При использовании можно зайти на страницу: http://localhost:8090/logs/html и:
- Если используется API ключ Использование API ключа, то введите ваш
GPT2GIGA_API_KEY - Иначе, введите любой символ
После этого, воспользуйтесь утилитой и будут выведены логи.
⚠️ Безопасность: Эндпоинты/logs*предназначены только для разработки. ВPRODрежиме (GPT2GIGA_MODE=PROD) они автоматически отключены. Не открывайте log-эндпоинты наружу без аутентификации.
Перед развертыванием gpt2giga в production-среде убедитесь, что выполнены следующие шаги:
- Режим PROD: установите
GPT2GIGA_MODE=PROD. В этом режиме автоматически отключаются/docs,/redoc,/openapi.jsonи все/logs*-эндпоинты; CORS ужесточается (нет wildcard*,allow_credentials=False). - API key аутентификация: установите
GPT2GIGA_ENABLE_API_KEY_AUTH=Trueи задайте надёжныйGPT2GIGA_API_KEY(минимум 32 символа, случайная строка). - TLS-сертификаты GigaChat: установите
GIGACHAT_VERIFY_SSL_CERTS=True. Не отключайте проверку SSL в production. - HTTPS: включите
GPT2GIGA_USE_HTTPS=Trueи укажите пути к TLS-сертификатам (GPT2GIGA_HTTPS_KEY_FILE,GPT2GIGA_HTTPS_CERT_FILE), либо разместите прокси за reverse proxy (nginx, Caddy, Traefik) с TLS-терминацией. - CORS origins: ограничьте
GPT2GIGA_CORS_ALLOW_ORIGINSконкретными доменами вместо["*"]. - Секреты: храните
GIGACHAT_CREDENTIALS,GPT2GIGA_API_KEYи другие секреты в переменных окружения или secrets manager. - Не передавайте секреты через CLI: используйте
.envили переменные окружения вместо--proxy.api-keyи--gigachat.credentials(аргументы видны вps aux).
- Reverse proxy: разместите gpt2giga за reverse proxy (nginx, Caddy и др.) для rate limiting, TLS-терминации и дополнительной фильтрации.
- Уровень логов: установите
GPT2GIGA_LOG_LEVEL=WARNINGилиINFO(неDEBUG) для production — уровеньDEBUGможет содержать чувствительные данные в логах. - Network isolation: запускайте gpt2giga в изолированной сети, чтобы исключить доступ к внутренним сервисам через SSRF.
- Мониторинг: настройте мониторинг
/healthи/pingэндпоинтов. - Ротация секретов: регулярно обновляйте
GPT2GIGA_API_KEYиGIGACHAT_CREDENTIALS.
Таблица содержит приложения, проверенные на совместную работу с gpt2giga.
| Название агента/фреймворка | URL | Описание |
|---|---|---|
| OpenCode | https://opencode.ai/ | AI-агент с открытым исходным кодом |
| KiloCode | https://kilo.ai/ | AI-агент для написания кода, доступен в JetBrains/VSCode |
| OpenHands | https://openhands.dev/ | AI-ассистент для разработки Подробнее о запуске и настройке OpenHands для работы с gpt2giga — в README |
| Zed | https://zed.dev/ | AI-ассистент |
| Cline | https://cline.bot/ | AI-ассистент разработчика |
| OpenAI Codex | https://github.com/openai/codex | CLI агент от OpenAI |
| Aider | https://aider.chat/ | AI-ассистент для написания приложений. Подробнее о запуске и настройке Aider для работы с gpt2giga — в README |
| Langflow | https://github.com/langflow-ai/langflow | Low/No-code платформа для создания агентов |
| DeepAgentsCLI | https://github.com/langchain-ai/deepagents | Deep Agents — это платформа для работы с агентами, построенная на основе langchain и langgraph |
| CrewAI | https://github.com/crewAIInc/crewAI | Фреймворк для оркестрации агентов |
| Qwen Agent | https://github.com/QwenLM/Qwen-Agent | Фреймворк |
| PydanticAI | https://github.com/pydantic/pydantic-ai | GenAI Agent Framework, the Pydantic way |
| Camel | https://github.com/camel-ai/camel | Мультиагентный фреймворк |
| smolagents | https://github.com/huggingface/smolagents | Фреймворк от hf |
| Openclaw | https://openclaw.ai/ | Personal AI assistant |
| Claude Code | https://code.claude.com/docs/en/overview | CLI агент от Anthropic |
| OpenAI Agents SDK | https://github.com/openai/openai-agents-python | SDK для создания агентов с function calling и handoffs. Пример использования — в examples/openai_agents.py |
| Anthropic SDK | https://github.com/anthropics/anthropic-sdk-python | Официальный Python SDK для Anthropic API. Примеры использования — в examples/anthropic/ |
| Cursor | https://cursor.com/ | Cursor — это редактор на основе искусственного интеллекта и агент для программирования |
Подробная информация об изменениях в каждой версии доступна в файле CHANGELOG.md или CHANGELOG_en.md.
Проект распространяется под лицензией MIT. Подробная информация — в файле LICENSE.