No project description provided
Project description
Прокси для использования GigaChat вместо OpenAI GPT
Данный проект представляет собой HTTP-прокси, который позволяет подменять использование ChatGPT на GigaChat в тех случаях, когда возможна настройка URL для взаимодействия с ChatGPT. Утилита поддерживает все основные функции взаимодействия с чат-моделями, включая поддержку работы с функциями, стриминг-ответов и проксирование эндпоинтов для embeddings.
Основные возможности
- Полная замена: утилита подменяет использование ChatGPT на GigaChat, позволяя использовать все его возможности.
- Поддержка функций: корректно обрабатываются вызовы функций через API, включая передачу и выполнение функций с аргументами.
- Поддержка стриминга: возможно получение ответа стримом (построчная отправка фрагментов) при запросах с параметром
stream=true. - Проксирование Embeddings: поддержка эндпоинтов
/embeddingsи/v1/embeddings. - Асинхронный HTTP-прокси: поддерживает многопоточную обработку запросов для эффективной работы с большим количеством клиентов.
- Простота настройки: конфигурация через аргументы командной строки или переменные окружения (
.env). - Поддержка логирования: при включённом
verbose-режиме отображаются подробные сведения о запросах и ответах.
Установка
-
Установите пакет из pypi:
pip install gpt2giga
Или напрямую из исходников:
pip install git+https://github.com/ai-forever/gpt2giga.git
-
Переименуйте файл
.env.exampleв.envи расположите его в корне вашего проекта, укажите необходимые учетные данные для доступа к GigaChat:cp .env.example .env
Обратите внимание, что поддерживаются различные способы авторизации в зависимости от типа вашей учетной записи. Также можно настроить другие переменные, поддерживаемые GigaChat (см. документацию).
Использование
После установки пакет добавит команду gpt2giga, с помощью которой вы можете запускать прокси-сервер.
Пример простого запуска
gpt2giga
По умолчанию сервер запустится на localhost:8090 (при отсутствии соответствующих переменных окружения).
Аргументы командной строки
--host <HOST>— хост, на котором будет запущен прокси (по умолчаниюlocalhost).--port <PORT>— порт, на котором будет запущен прокси (по умолчанию8090).--verbose— включить подробный вывод логов (запросы и ответы).--pass-model— передавать в GigaChat модель, которую указал клиент в полеmodelв режиме чата.--pass-token— передавать токен, полученный в заголовкеAuthorization, в GigaChat. С помощью него можно настраивать передачу ключей в GigaChat черезOPENAI_API_KEY--base-url <BASE_URL>— базовый URL для GigaChat API (по умолчанию берётся из переменнойGIGACHAT_BASE_URLили значенияBASE_URLвнутри пакета).--model <MODEL>— модель по умолчанию для запросов в GigaChat (по умолчаниюGIGACHAT_MODEL).--timeout <TIMEOUT>— таймаут для запросов к GigaChat (по умолчанию600секунд).--embeddings <EMBED_MODEL>— модель Embeddings (по умолчаниюEmbeddingsGigaR).--env-path <PATH>— путь до .env-файла (по умолчанию ищется.envв текущей директории).
Пример использования с кастомными настройками
gpt2giga \
--host 127.0.0.1 \
--port 8080 \
--verbose \
--pass-model \
--pass-token \
--base-url https://gigachat.devices.sberbank.ru/api/v1 \
--model GigaChat-Max \
--timeout 300 \
--embeddings EmbeddingsGigaR
После запуска сервер будет слушать указанный хост и порт и перенаправлять все запросы, адресованные ChatGPT, на GigaChat.
Пример интеграции
Любое приложение, которое взаимодействует с ChatGPT через настраиваемый URL (например, в настройках вы указываете API_URL=https://api.openai.com/v1/), можно «обмануть», подставив вместо https://api.openai.com/v1/ адрес вашего запущенного прокси, например, http://localhost:8090/v1/. Тогда все запросы к ChatGPT будут перенаправлены в GigaChat.
То же самое справедливо для эндпоинтов /embeddings или /v1/embeddings, которые будет обслуживать прокси и отправлять запросы к GigaChat для генерации эмбеддингов.
Переменные окружения
Вы можете либо передавать все параметры напрямую через аргументы, либо использовать .env / переменные окружения. Ниже список основных переменных, которые можно переопределить (название = значение по умолчанию):
PROXY_HOST="localhost"— хост для запуска прокси.PROXY_PORT="8090"— порт для запуска прокси.GPT2GIGA_VERBOSE="False"— выводить ли подробную информацию (True/False).GPT2GIGA_PASS_MODEL="False"— передавать ли модель, указанную в запросе, непосредственно в GigaChat.GPT2GIGA_PASS_TOKEN="False"— пробрасывать ли токен авторизации дальше в GigaChat.GIGACHAT_BASE_URL="https://gigachat.devices.sberbank.ru/api/v1"— базовый URL GigaChat.GIGACHAT_MODEL="GigaChat"— модель GigaChat по умолчанию.GPT2GIGA_TIMEOUT="600"— таймаут для запросов (в секундах).GPT2GIGA_EMBEDDINGS="EmbeddingsGigaR"— модель для эндпоинта/embeddings.
Также при необходимости можно настроить:
GIGACHAT_USERиGIGACHAT_PASSWORD— если требуется аутентификация по логину/паролю.GIGACHAT_CREDENTIALS— если нужно передавать токен в стилеBearer giga-cred-....GIGACHAT_ACCESS_TOKEN— если уже есть готовый токен аутентификации.
Авторизация через заголовок
Если вы запускаете прокси с флагом --pass-token (или переменной окружения GPT2GIGA_PASS_TOKEN=True), то прокси будет пытаться преобразовать заголовок Authorization в формат, понятный 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 можно прочитать здесь
Лицензия
Этот проект распространяется под лицензией MIT. См. LICENSE для получения подробной информации.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gpt2giga-0.0.9.tar.gz.
File metadata
- Download URL: gpt2giga-0.0.9.tar.gz
- Upload date:
- Size: 14.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.13.2 Darwin/24.3.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39aba638fc6b4644033ca75cf0052c42bcc06e19fa915d7e0775816faabf2941
|
|
| MD5 |
6b86fcaed415850611c7f582904af7f9
|
|
| BLAKE2b-256 |
c4d55924fb146b1016233e22bf337c10525192462e69f233406a540ec6e96a67
|
File details
Details for the file gpt2giga-0.0.9-py3-none-any.whl.
File metadata
- Download URL: gpt2giga-0.0.9-py3-none-any.whl
- Upload date:
- Size: 11.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.13.2 Darwin/24.3.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0f1072658496f66a7a99ebd0838ca791e1982d1c68628f3d57a5b81014caa0c
|
|
| MD5 |
446e9fae911c343140d4e36b6f66422f
|
|
| BLAKE2b-256 |
20a407c82771e0e50d4baa1999b5504bb4ab9731e981525ad6687ff8e04f0ed3
|