gpt2giga — FastAPI-прокси, который принимает OpenAI-, Anthropic- и Gemini-like запросы и отправляет их в GigaChat. Он нужен, когда клиент, редактор, агентный фреймворк или SDK умеет работать с OpenAI/Anthropic/Gemini API, а реальный backend должен быть GigaChat.
Локальный адрес по умолчанию: http://localhost:8090.
GigaChat не является drop-in заменой OpenAI или Anthropic API. Прямое подключение существующих SDK часто ломается на формате запросов, streaming-событиях, tool schemas, model discovery, авторизации и optional-параметрах клиентов.
gpt2giga закрывает практические несовместимости:
- переводит OpenAI Chat Completions, OpenAI Responses, OpenAI Embeddings, Anthropic Messages и Gemini GenerateContent в вызовы GigaChat;
- маппит tools/function calling, structured output, изображения, reasoning flags и SSE streaming там, где GigaChat поддерживает базовую возможность;
- принимает и безопасно игнорирует optional-поля OpenAI/Anthropic, которые SDK присылают, но GigaChat не понимает;
- фильтрует транспортные SDK headers, клиентские API keys, cookies и другие небезопасные метаданные перед upstream;
- отделяет клиентскую API-key авторизацию прокси от GigaChat credentials;
- отдаёт список моделей в OpenAI-, Anthropic-, Gemini- и LiteLLM-совместимом виде;
- держит batch/file routes отключёнными, пока их нельзя выполнить end-to-end через GigaChat SDK/backend.
Подробная матрица поддержки и список реальных ограничений вынесены в API Compatibility.
Создайте .env из шаблона и заполните GigaChat credentials:
cp .env.example .envЗапуск через Docker Compose:
docker compose --env-file .env -f deploy/base.yaml --profile DEV up -dИли локальный запуск только gateway с актуальной prerelease-версией:
uv tool install --prerelease allow gpt2giga
gpt2gigaТекущая alpha-preview линия Unified Harness — 0.5.0a1. Её всегда можно
запустить из source checkout. Опубликованный
provider-neutral пакет добавляет команды giga и gpt2giga-harness:
uv tool install 'gpt2giga-harness==0.5.0a1'
giga doctor
giga --version
giga uiДля Direct Chat и provider preset локального gateway установите явный extra
gpt2giga-harness[gpt2giga]==0.5.0a1; он закрепляет gpt2giga==0.2.5a1.
Нативные команды Codex CLI, Claude Code и Gemini CLI получают ровно один
префикс; общий глагол exec не вводится:
giga codex exec --json "проверь репозиторий"
giga claude -p "проверь репозиторий"
giga gemini -p "проверь репозиторий"Суффикс команды, --help, --version, JSON/JSONL, pipe/redirect и exit status
остаются нативными. Подробности, completion для Bash/Zsh/Fish/PowerShell и
инструкции обновления/отката — в руководстве Unified Harness.
Python namespace Harness — gpt2giga_harness; прежний
gpt2giga.harness больше не поставляется. Подробности обновления со старого
combined prerelease wheel — в Unified Harness.
Минимальный OpenAI SDK вызов:
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8090/v1", api_key="<GPT2GIGA_API_KEY>")
response = client.chat.completions.create(
model="GigaChat-2-Max",
messages=[{"role": "user", "content": "Привет"}],
)
print(response.choices[0].message.content)Минимальный Anthropic SDK вызов:
from anthropic import Anthropic
client = Anthropic(base_url="http://localhost:8090", api_key="<GPT2GIGA_API_KEY>")
response = client.messages.create(
model="GigaChat-2-Max",
max_tokens=256,
messages=[{"role": "user", "content": "Привет"}],
)
print(response.content[0].text)Больше вариантов запуска — в Quickstart.
Полная документация публикуется на GitHub Pages.
Локально проверить docs можно через Docusaurus wrapper в docs-site/:
make docs-install
make docsПосле make docs сайт доступен на http://127.0.0.1:3000/ и включает локали en/ru.
Для быстрой разработки с hot reload:
make docs-devDocusaurus dev server обслуживает одну локаль за запуск. Для русского dev preview:
make docs-dev-ruЧтобы проверить переключатель языков между en и ru, используйте full preview через make docs или make docs-preview.
| Тема | Документ |
|---|---|
| Быстрый запуск и первые запросы | docs/quickstart.md |
| Что поддерживается, отключено или намеренно игнорируется | docs/api-compatibility.md |
Совместимость SDK extra_* и параметров клиентов |
docs/client-parameter-compatibility.md |
| Встроенные инструменты GigaChat и маппинг OpenAI/Anthropic/Gemini | docs/builtin-tools.md |
| Local harness CLI/UI для smoke tests и agent CLI adapters | docs/harness.md |
| Direct Chat, Coding Agents, native Codex subagents, Arena и Workflows | docs/agents-and-multi-agent.md |
| Переменные окружения, CLI flags, backend modes | docs/configuration.md |
| Docker Compose, Traefik, Postgres, OpenSearch, Phoenix, production hardening | docs/deployment.md |
| Logs, metrics, traffic logs, admin API, debug translation | docs/operations.md |
| Live GigaChat integration tests | docs/live-integration-tests.md |
| Provider-owned login, status, logout и headless-границы | docs/architecture/provider-authentication-capability-matrix.md |
| Внутренняя архитектура normalized messages | docs/architecture/normalized-messages.md |
| Checklist для добавления provider/protocol | docs/architecture/how-to-add-provider.md |
| Редакторы, агенты, SDK examples, reverse proxies | docs/integrations.md |
| Runnable-примеры | examples/README.md |
| История изменений gateway | RU · EN |
| История изменений Harness | RU · EN |
Смонтированные routes доступны в корне и под versioned prefixes. Root routes
используют GPT2GIGA_GIGACHAT_API_MODE, /v1 принудительно выбирает GigaChat
v1 contract, /v2 принудительно выбирает GigaChat v2 contract. Например:
/chat/completions, /v1/chat/completions и /v2/chat/completions.
Поддерживается:
- OpenAI-compatible
GET /models,GET /models/{model},POST /chat/completions,POST /responses,POST /embeddings; - Anthropic-compatible
POST /messages,POST /messages/count_tokens, а также Anthropic-shaped model responses для model-вызовов Anthropic SDK; - Gemini-compatible
/v1beta/models/{model}:generateContent,:streamGenerateContent,:countTokens,:embedContent,:batchEmbedContents, а также/v1beta/models; - LiteLLM-compatible
GET /model/info; - системные endpoints
GET /healthиGET|POST /ping.
Отключено до появления нужных batch methods в GigaChat SDK/backend:
- OpenAI-compatible Files API и Batches API;
- Anthropic Message Batches API.
- Gemini-compatible Files API и Batch GenerateContent API.
Сейчас не является целью проекта:
- полная OpenAI parity для audio, image generation/editing, fine-tuning, assistants, threads, runs, vector stores, uploads, moderations, realtime;
- полная Anthropic parity для Files beta, Skills beta, Agents beta, Sessions, Environments или Admin API;
- полная Gemini parity для Files, batchGenerateContent, cached content, Vertex/RAG tools и non-text embeddings content.
Docker Compose manifests лежат в deploy/:
docker compose --env-file .env -f deploy/base.yaml --profile PROD up -d
docker compose --env-file .env -f deploy/base.yaml --profile DEV up -dProduction mode требует API key и отключает /docs, /redoc, /openapi.json и /logs*:
GPT2GIGA_MODE=PROD
GPT2GIGA_ENABLE_API_KEY_AUTH=True
GPT2GIGA_API_KEY="<strong-random-secret>"
GIGACHAT_VERIFY_SSL_CERTS=TrueCompose profiles, reverse proxies, TLS и hardening описаны в Deployment.
| Path | Назначение |
|---|---|
packages/gpt2giga/src/gpt2giga/ |
FastAPI app, routers, protocol transforms, config, middleware |
packages/gpt2giga-harness/src/gpt2giga_harness/ |
Harness CLI, local UI, runtime, sessions, and agent adapters |
tests/ |
Unit, router, protocol, sink и integration tests |
examples/ |
Runnable OpenAI, Anthropic, Gemini, embeddings and agents examples; files/batches examples are prepared but not mounted |
docs/ |
Markdown-контент пользовательской документации и architecture notes |
docs-site/ |
Docusaurus wrapper, sidebar/theme config и npm tooling для GitHub Pages |
integrations/ |
Editor/agent/reverse-proxy integration guides |
deploy/ |
Docker Compose deployment manifests |
traefik/ |
Traefik config для deploy/traefik.yaml |
.github/ |
CI, release, Docker publish, PR/issue templates |
Установить зависимости:
uv sync --all-packages --all-extras --devЗапустить сервис:
uv run gpt2giga
uv run giga doctorСборка двух дистрибутивов выполняется явно:
uv build --package gpt2giga
uv build --package gpt2giga-harnessПроверки перед PR:
uv run ruff check .
uv run ruff format --check .
uv run pytest tests/ --cov=. --cov-report=term --cov-fail-under=80Live-тесты с реальными вызовами GigaChat запускаются отдельно и требуют локальных секретов: см. Live GigaChat Integration Tests.
Используйте Conventional Commits (feat:, fix:, docs:, refactor:, test:, ci:) и сверяйтесь с .github/PULL_REQUEST_TEMPLATE.md.