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. Установите пакет:
    pip install git+https://github.com/Rai220/Gpt2Giga.git
    
  2. Создайте файл .env в корне вашего проекта и укажите необходимые параметры для доступа к GigaChat:
    GIGACHAT_USER=
    GIGACHAT_PASSWORD=
    GIGACHAT_BASE_URL=
    GIGACHAT_MODEL=
    
    Или используйте другие переменные, поддерживаемые 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>

Лицензия

Этот проект распространяется под лицензией 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.8.tar.gz (11.6 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.8-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file gpt2giga-0.0.8.tar.gz.

File metadata

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

File hashes

Hashes for gpt2giga-0.0.8.tar.gz
Algorithm Hash digest
SHA256 117786189c821350e7e7b041445b26babdb9b21c87363a85de479747d2f659e2
MD5 98f77ae17388d5cc82b1828059fef131
BLAKE2b-256 c3411df5c150e41afe2c14c2c145fc68b6ac688ea2ae7a7bfd0ca32c92678b3f

See more details on using hashes here.

File details

Details for the file gpt2giga-0.0.8-py3-none-any.whl.

File metadata

  • Download URL: gpt2giga-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.13.2 Darwin/24.3.0

File hashes

Hashes for gpt2giga-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 0a1677e65020ac4ca474989508699ebfdd7371fb0f13ba04982608b576116573
MD5 a32e258c834e8f4e1d68497036f0d3dd
BLAKE2b-256 057770dc467f8898a23cb464b935923801e138c174149f937d036a0cb9083815

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