gpt2giga
Описание
Proxy to stream OpenAI traffic to GigaChat
Языки
- Python100%
Прокси для использования GigaChat вместо OpenAI GPT
Данный проект представляет собой HTTP-прокси, который позволяет подменять использование ChatGPT на GigaChat в тех случаях, когда возможна настройка URL для взаимодействия с ChatGPT. Утилита поддерживает все основные функции взаимодействия с чат-моделями, включая поддержку работы с функциями, стриминг-ответов и проксирование эндпоинтов для .

Основные возможности
- Полная замена: утилита подменяет использование ChatGPT на GigaChat, позволяя использовать все его возможности.
- Поддержка функций: корректно обрабатываются вызовы функций через API, включая передачу и выполнение функций с аргументами.
- Поддержка стриминга: возможно получение ответа стримом (построчная отправка фрагментов) при запросах с параметром
.stream=true - Проксирование Embeddings: поддержка эндпоинтов
и/embeddings./v1/embeddings - Асинхронный HTTP-прокси: поддерживает многопоточную обработку запросов для эффективной работы с большим количеством клиентов.
- Простота настройки: конфигурация через аргументы командной строки или переменные окружения (
)..env - Поддержка логирования: при включённом
-режиме отображаются подробные сведения о запросах и ответах.verbose
Установка
-
Установите пакет из pypi:
Или напрямую из исходников:
-
Переименуйте файл
в.env.exampleи расположите его в корне вашего проекта, укажите необходимые учетные данные для доступа к GigaChat:.envОбратите внимание, что поддерживаются различные способы авторизации в зависимости от типа вашей учетной записи. Также можно настроить другие переменные, поддерживаемые GigaChat (см. документацию).
Использование
После установки пакет добавит команду , с помощью которой вы можете запускать прокси-сервер.
Пример простого запуска
По умолчанию сервер запустится на (при отсутствии соответствующих переменных окружения).
Аргументы командной строки
— хост, на котором будет запущен прокси (по умолчанию--host <HOST>).localhost— порт, на котором будет запущен прокси (по умолчанию--port <PORT>).8090— включить подробный вывод логов (запросы и ответы).--verbose— передавать в GigaChat модель, которую указал клиент в поле--pass-modelв режиме чата.model— передавать токен, полученный в заголовке--pass-token, в GigaChat. С помощью него можно настраивать передачу ключей в GigaChat черезAuthorizationOPENAI_API_KEY— базовый URL для GigaChat API (по умолчанию берётся из переменной--base-url <BASE_URL>или значенияGIGACHAT_BASE_URLвнутри пакета).BASE_URL— модель по умолчанию для запросов в GigaChat (по умолчанию--model <MODEL>).GIGACHAT_MODEL— таймаут для запросов к GigaChat (по умолчанию--timeout <TIMEOUT>секунд).600— модель Embeddings (по умолчанию--embeddings <EMBED_MODEL>).EmbeddingsGigaR— путь до .env-файла (по умолчанию ищется--env-path <PATH>в текущей директории)..env
Пример использования с кастомными настройками
После запуска сервер будет слушать указанный хост и порт и перенаправлять все запросы, адресованные ChatGPT, на GigaChat.
Пример интеграции
Любое приложение, которое взаимодействует с ChatGPT через настраиваемый URL (например, в настройках вы указываете ), можно «обмануть», подставив вместо адрес вашего запущенного прокси, например, . Тогда все запросы к ChatGPT будут перенаправлены в GigaChat.
То же самое справедливо для эндпоинтов или , которые будет обслуживать прокси и отправлять запросы к GigaChat для генерации эмбеддингов.
Переменные окружения
Вы можете либо передавать все параметры напрямую через аргументы, либо использовать / переменные окружения. Ниже список основных переменных, которые можно переопределить (название = значение по умолчанию):
— хост для запуска прокси.PROXY_HOST="localhost"— порт для запуска прокси.PROXY_PORT="8090"— выводить ли подробную информацию (True/False).GPT2GIGA_VERBOSE="False"— передавать ли модель, указанную в запросе, непосредственно в GigaChat.GPT2GIGA_PASS_MODEL="False"— пробрасывать ли токен авторизации дальше в GigaChat.GPT2GIGA_PASS_TOKEN="False"— базовый URL GigaChat.GIGACHAT_BASE_URL="https://gigachat.devices.sberbank.ru/api/v1"— модель GigaChat по умолчанию.GIGACHAT_MODEL="GigaChat"— таймаут для запросов (в секундах).GPT2GIGA_TIMEOUT="600"— модель для эндпоинтаGPT2GIGA_EMBEDDINGS="EmbeddingsGigaR"./embeddings
Также при необходимости можно настроить:
иGIGACHAT_USER— если требуется аутентификация по логину/паролю.GIGACHAT_PASSWORD— если нужно передавать токен в стилеGIGACHAT_CREDENTIALS.Bearer giga-cred-...— если уже есть готовый токен аутентификации.GIGACHAT_ACCESS_TOKEN
Авторизация через заголовок
Если вы запускаете прокси с флагом (или переменной окружения ), то прокси будет пытаться преобразовать заголовок в формат, понятный GigaChat.
Поддерживаются варианты:
- Bearer giga-user-<user>:<password>
- Bearer giga-cred-<credentials>:<scope>
- Bearer giga-auth-<access_token>
Совместимые решения
Ниже приведен список проверенных приложений, работа с которыми возможна через gpt2giga.
Aider
Aider - AI-ассистент для написания приложений. Для запуска используйте следующую команду:
aider --openai-api-base http://localhost:8090 --model gpt-4o --openai-api-key 123
Более подробно про настройку aider с помощью gpt2giga можно прочитать здесь
n8n
Платформа для создания nocode агентов
Лицензия
Этот проект распространяется под лицензией MIT. См. LICENSE для получения подробной информации.