Skip to main content

No project description provided

Project description

Прокси для использования GigaChat вместо OpenAI GPT

Данный проект представляет собой HTTP-прокси, который позволяет подменять использование ChatGPT на GigaChat в тех случаях, когда возможна настройка URL для взаимодействия с ChatGPT. Утилита поддерживает все основные функции взаимодействия с чат-моделями, включая поддержку работы с функциями, стриминг-ответов и проксирование эндпоинтов для embeddings.

alt text

Основные возможности

  • Полная замена: утилита подменяет использование ChatGPT на GigaChat, позволяя использовать все его возможности.
  • Поддержка функций: корректно обрабатываются вызовы функций через API, включая передачу и выполнение функций с аргументами.
  • Поддержка стриминга: возможно получение ответа стримом (построчная отправка фрагментов) при запросах с параметром stream=true.
  • Проксирование Embeddings: поддержка эндпоинтов /embeddings и /v1/embeddings.
  • Асинхронный HTTP-прокси: поддерживает многопоточную обработку запросов для эффективной работы с большим количеством клиентов.
  • Простота настройки: конфигурация через аргументы командной строки или переменные окружения (.env).
  • Поддержка логирования: при включённом verbose-режиме отображаются подробные сведения о запросах и ответах.

Установка

  1. Установите пакет из pypi:

    pip install gpt2giga
    

    Или напрямую из исходников:

    pip install git+https://github.com/ai-forever/gpt2giga.git
    
  2. Переименуйте файл .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.
Поддерживаются варианты:

  • giga-cred-<credentials>:<scope>
  • giga-user-<user>:<password>
  • 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 для получения подробной информации.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gpt2giga-0.0.9.post2.tar.gz (14.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gpt2giga-0.0.9.post2-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file gpt2giga-0.0.9.post2.tar.gz.

File metadata

  • Download URL: gpt2giga-0.0.9.post2.tar.gz
  • Upload date:
  • Size: 14.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.13.2 Darwin/24.3.0

File hashes

Hashes for gpt2giga-0.0.9.post2.tar.gz
Algorithm Hash digest
SHA256 060c33bfb900520d9f98a27ddf549ea05af312c68b36fd7002c2434dce58689c
MD5 948f20acc03cf67fae9c2cfe846dbc4a
BLAKE2b-256 6ac04e873ceaaf296fae1ef1e2874d26010ea63ca4e6d4ce1bf9d4966d957c1b

See more details on using hashes here.

File details

Details for the file gpt2giga-0.0.9.post2-py3-none-any.whl.

File metadata

  • Download URL: gpt2giga-0.0.9.post2-py3-none-any.whl
  • Upload date:
  • Size: 12.0 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

Hashes for gpt2giga-0.0.9.post2-py3-none-any.whl
Algorithm Hash digest
SHA256 b8335bf1747539da5be8ca1fbc5b2b93c60835fca066dfbe514b13597f9ac889
MD5 989b94f5e2310bee544d0ce928c5cacc
BLAKE2b-256 c703af0693b2ac0b7c6c074538a48cd661105ec6dad2aeb47cc61374ec731233

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page