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.
Поддерживаются варианты:

  • 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


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.tar.gz (14.0 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-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

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

Hashes for gpt2giga-0.0.9.tar.gz
Algorithm Hash digest
SHA256 39aba638fc6b4644033ca75cf0052c42bcc06e19fa915d7e0775816faabf2941
MD5 6b86fcaed415850611c7f582904af7f9
BLAKE2b-256 c4d55924fb146b1016233e22bf337c10525192462e69f233406a540ec6e96a67

See more details on using hashes here.

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

Hashes for gpt2giga-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 a0f1072658496f66a7a99ebd0838ca791e1982d1c68628f3d57a5b81014caa0c
MD5 446e9fae911c343140d4e36b6f66422f
BLAKE2b-256 20a407c82771e0e50d4baa1999b5504bb4ab9731e981525ad6687ff8e04f0ed3

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