Skip to main content

GigaChat. Python-library for GigaChain and LangChain

Project description

Python-библиотека для работы с GigaChat API

GitHub Actions Workflow Status GitHub License GitHub Downloads (all assets, all releases) GitHub Repo stars GitHub Open Issues

Библиотека Python, позволяющая GigaChain обращаться к GigaChat — нейросетевой модели, которая умеет вести диалог, писать код, создавать тексты и картинки по запросу.

Обмен данными с сервисом обеспечивается с помощью GigaChat API. О том как получить доступ к API читайте в официальной документации.

Библиотека поддерживает обработку потоковой передачи токенов, а также работу в синхронном или в асинхронном режиме.

Библиотека позволяет выполнить точный подсчет токенов в тексте с помощью GigaChat API.

[!WARNING] В версии 0.1.14 добавлена поддержка функций (functions). Данная опция находится на этапе тестирования и пока доступна только для некоторых моделей, а протокол может быть изменен в следующих версиях.

Установка

Библиотеку можно установить с помощью pip:

pip install gigachat

Работа с GigaChat

Перед использованием модуля:

  1. Подключите проект GigaChat API.

  2. В личном кабинете нажмите кнопку Сгенерировать новый Client Secret.

    Откроется окно Новый Client Secret.

  3. В открывшемся окне, скопируйте и сохраните токен, указанный в поле Авторизационные данные.

    [!WARNING] Не закрывайте окно, пока не сохраните токен. В противном случае его нужно будет сгенерировать заново.

Пример показывает как импортировать библиотеку в GigaChain и использовать ее для обращения к GigaChat:

from gigachat import GigaChat

# Используйте токен, полученный в личном кабинете из поля Авторизационные данные
with GigaChat(credentials=<авторизационные данные>, verify_ssl_certs=False) as giga:
    response = giga.chat("Какие факторы влияют на стоимость страховки на дом?")
    print(response.choices[0].message.content)

Больше примеров.

Способы авторизации

Авторизация с помощью токена (в личном кабинете из поля Авторизационные данные):

giga = GigaChat(credentials=...)

# Личное пространство
giga = GigaChat(credentials=..., scope="GIGACHAT_API_PERS")

# Корпоративное пространство
giga = GigaChat(credentials=..., scope="GIGACHAT_API_CORP")

Авторизация с помощью логина и пароля:

giga = GigaChat(
    base_url="https://gigachat.devices.sberbank.ru/api/v1",
    user=...,
    password=...,
)

Предварительная авторизация (в случае, если необходимо получить временный токен и авторизоваться до отправки запросов; по умолчанию, библиотека автоматически получает временный токен при первом запросе к API):

giga = GigaChat(
    base_url="https://gigachat.devices.sberbank.ru/api/v1",
    user=...,
    password=...,
)
giga.get_token()

Взаимная аутентификация по протоколу TLS (mTLS):

giga = GigaChat(
    base_url="https://gigachat.devices.sberbank.ru/api/v1",
    ca_bundle_file="certs/ca.pem",  # chain_pem.txt
    cert_file="certs/tls.pem",  # published_pem.txt
    key_file="certs/tls.key",
    key_file_password="123456",
)

Авторизация с помощью временного токена

Дополнительные настройки

Выбор модели

С помощью GigaChain вы можете обращаться к различным моделям, которые предоставляет GigaChat.

Для этого передайте название модели в параметре model:

giga = GigaChat(model="GigaChat-Pro")

Полный список доступных моделей можно получить с помощью запроса GET /models к GigaChat API.

[!WARNING] Стоимость запросов к разным моделям отличается. Подробную информацию о тарификации запросов к той или иной модели вы ищите в официальной документации.

Подсчет количества токенов

Для подсчета количества токенов в запросах используйте метод tokens_count(["текст1", "текст2", ...]).

Метод выполняет запрос POST /tokens/count к GigaChat API и возвращает список объектов с информацией о количестве токенов в каждой строке.

Векторное представление текста

Эмбеддинг (англ. embedding) — это вектор, представленный в виде массива чисел, который получается в результате преобразования данных, например, текста. Комбинация этих чисел, составляющих вектор, действует как многомерная карта для измерения сходства.

Для получения эмбеддингов используйте метод embeddings("текст").

[!WARNING] Функция получения эмбеддингов находится на этапе тестирования и может быть недоступна некоторым категориям пользователей.

Отключение проверки сертификатов

Для отключения проверки сертификатов передайте параметр verify_ssl_certs=False:

giga = GigaChat(verify_ssl_certs=False)

[!WARNING] Отключение проверки сертификатов снижает безопасность обмена данными.

Установка корневого сертификата НУЦ Минцифры:

Для установка корневого сертификата НУЦ Минцифры выполните команду:

curl -k "https://gu-st.ru/content/Other/doc/russian_trusted_root_ca.cer" -w "\n" >> $(python -m certifi)

Настройки в переменных окружения

Чтобы задать настройки с помощью переменных окружения, используйте префикс GIGACHAT_.

Авторизация с помощью токена и отключение проверки сертификатов:

export GIGACHAT_CREDENTIALS=...
export GIGACHAT_SCOPE=...
export GIGACHAT_VERIFY_SSL_CERTS=False

Авторизация с помощью логина и пароля:

export GIGACHAT_BASE_URL=https://gigachat.devices.sberbank.ru/api/v1
export GIGACHAT_USER=...
export GIGACHAT_PASSWORD=...

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

gigachat-0.1.36.tar.gz (28.3 kB view details)

Uploaded Source

Built Distribution

gigachat-0.1.36-py3-none-any.whl (61.6 kB view details)

Uploaded Python 3

File details

Details for the file gigachat-0.1.36.tar.gz.

File metadata

  • Download URL: gigachat-0.1.36.tar.gz
  • Upload date:
  • Size: 28.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.7 Darwin/23.6.0

File hashes

Hashes for gigachat-0.1.36.tar.gz
Algorithm Hash digest
SHA256 6c10ae23647946854ef98d67899e2ef239a6f675e4e1406ff08f8d56fc2160d6
MD5 c9269493b6d783ee7caa8cd6825b2c68
BLAKE2b-256 2bab56d332407b0621f34d1d60b414795de32f2158c3be1f39833952e4b357a5

See more details on using hashes here.

File details

Details for the file gigachat-0.1.36-py3-none-any.whl.

File metadata

  • Download URL: gigachat-0.1.36-py3-none-any.whl
  • Upload date:
  • Size: 61.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.7 Darwin/23.6.0

File hashes

Hashes for gigachat-0.1.36-py3-none-any.whl
Algorithm Hash digest
SHA256 7e9e3192e8d33e9c63beac533a31290d1a2e7b1b3c57ea0b5dc26da47551db5d
MD5 9faa505014d30391c3991aba08b0716a
BLAKE2b-256 09e93e5e8ccbf8e77cb6b592bd3afbf6141b3fe208f1e774d15adf858c5e6a1d

See more details on using hashes here.

Supported by

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