В праздничные дни с 29.12 по 08.01 техническая поддержка отдыхает, но на наиболее важные вопросы постараемся ответить. Счастливого Нового Года!
gitverse new year логотип

gigachat

Форк
0
Зеркало из https://github.com/ai-forever/gigachat

README.md

О gigachat

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

GigaChat — это Python-библиотека для работы с REST API GigaChat. Она является частью GigaChain и входит в состав langchain-gigachat — партнерского пакета opensource-фреймворка LangChain.

Библиотека управляет авторизацией запросов и предоставляет все необходимые методы для работы с API. Кроме этого она поддерживает:

[!TIP] Примеры работы с библиотекой gigachat — в папке examples.

Установка

Для установки библиотеки используйте менеджер пакетов pip:

pip install gigachat

Быстрый старт

Для работы с библиотекой вам понадобится ключ авторизации API.

Чтобы получить ключ авторизации:

  1. Создайте проект GigaChat API в личном кабинете Studio.
  2. В интерфейсе проекта, в левой панели выберите раздел Настройки API.
  3. Нажмите кнопку Получить ключ.

В открывшемся окне скопируйте и сохраните значение поля Authorization Key. Ключ авторизации, отображается только один раз и не хранятся в личном кабинете. При компрометации или утере ключа авторизации вы можете сгенерировать его повторно.

Подробно о том, как создать проект GigaChat API — в официальной документации, в разделах Быстрый старт для физических лиц и Быстрый старт для ИП и юридических лиц.

Передайте полученный ключ авторизации в параметре

credentials
при инициализации объекта GigaChat.

Пример показывает как отправить простой запрос на генерацию с помощью библиотеки GigaChat:

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

[!NOTE] Этот и другие примеры работы с библиотекой gigachat — в папке examples.

Параметры объекта GigaChat

В таблице описаны параметры, которые можно передать при инициализации объекта GigaChat:

ПараметрОбязательныйОписание
credentials
даКлюч авторизации для обмена сообщениями с GigaChat API.
Ключ авторизации содержит информацию о версии API, к которой выполняются запросы. Если вы используете версию API для ИП или юрлиц, укажите это явно в параметре
scope
verify_ssl_certs
нетОтключение проверки ssl-сертификатов.

Для обращения к GigaChat API нужно установить корневой сертификат НУЦ Минцифры.

Используйте параметр ответственно, так как отключение проверки сертификатов снижает безопасность обмена данными
scope
нетВерсия API, к которой будет выполнен запрос. По умолчанию запросы передаются в версию для физических лиц. Возможные значения:
  • GIGACHAT_API_PERS
    — версия API для физических лиц;
  • GIGACHAT_API_B2B
    — версия API для ИП и юрлиц при работе по предоплате.
  • GIGACHAT_API_CORP
    — версия API для ИП и юрлиц при работе по постоплате.
model
нетнеобязательный параметр, в котором можно явно задать модель GigaChat. Вы можете посмотреть список доступных моделей с помощью метода
get_models()
, который выполняет запрос
GET /models
.

Стоимость запросов к разным моделям отличается. Подробную информацию о тарификации запросов к той или иной модели вы ищите в официальной документации
base_url
нетАдрес API. По умолчанию запросы отправляются по адресу
https://gigachat.devices.sberbank.ru/api/v1/
, но если вы хотите использовать модели в раннем доступе, укажите адрес
https://gigachat-preview.devices.sberbank.ru/api/v1

![TIP] Чтобы не указывать параметры при каждой инициализации, задайте их в переменных окружения.

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

Для авторизации запросов, кроме ключа, полученного в личном кабинете, вы можете использовать:

  • имя пользователя и пароль для доступа к сервису;
  • сертификаты TLS;
  • токен доступа (access token), полученный в обмен на ключ авторизации в запросе
    POST /api/v2/oauth
    .

Для этого передайте соответствующие параметры при инициализации.

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

giga = GigaChat(
base_url="https://gigachat.devices.sberbank.ru/api/v1",
user="имя_пользоваеля",
password="пароль",
)

Авторизация с помощью сертификатов по протоколу 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",
ssl_context=context # optional ssl.SSLContext instance
)

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

giga = GigaChat(
access_token="ваш_токен_доступа",
)

![NOTE] Токен действителен в течение 30 минут.

Предварительная авторизация

По умолчанию, библиотека GigaChat получает токен доступа при первом запросе к API.

Если вам нужно получить токен и авторизоваться до выполнения запроса, инициализируйте объект GigaChat и вызовите метод

get_token()
.

giga = GigaChat(
base_url="https://gigachat.devices.sberbank.ru/api/v1",
user="имя_пользователя",
password="пароль",
)
giga.get_token()

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

Чтобы библиотека GigaChat могла передавать запросы в GigaChat API, вам нужно установить корневой сертификат НУЦ Минцифры.

Для этого выполните команду:

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

Вы также можете отключить проверку сертификатов с помощью параметра

verify_ssl_certs=False
, который передается при инициализации.

giga = GigaChat(
credentials="ключ_авторизации",
verify_ssl_certs=False
)

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

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

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

GIGACHAT_
.

Пример переменных окружения, которые задают ключ авторизации, версию API и отключают проверку сертификатов.

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

Пример переменных окружения, которые задают адрес API, имя пользователя и пароль.

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

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.