gigachat
О gigachat
GigaChat — это Python-библиотека для работы с REST API GigaChat. Она является частью GigaChain и входит в состав langchain-gigachat — партнерского пакета opensource-фреймворка LangChain.
Библиотека управляет авторизацией запросов и предоставляет все необходимые методы для работы с API. Кроме этого она поддерживает:
- обработку потоковой передачи токенов;
- работу с функциями;
- создание эмбеддингов;
- работу в синхронном или в асинхронном режиме.
[!TIP] Примеры работы с библиотекой gigachat — в папке examples.
Установка
Для установки библиотеки используйте менеджер пакетов pip:
pip install gigachat
Быстрый старт
Для работы с библиотекой вам понадобится ключ авторизации API.
Чтобы получить ключ авторизации:
- Создайте проект GigaChat API в личном кабинете Studio.
- В интерфейсе проекта, в левой панели выберите раздел Настройки API.
- Нажмите кнопку Получить ключ.
В открывшемся окне скопируйте и сохраните значение поля Authorization Key. Ключ авторизации, отображается только один раз и не хранятся в личном кабинете. При компрометации или утере ключа авторизации вы можете сгенерировать его повторно.
Подробно о том, как создать проект GigaChat API — в официальной документации, в разделах Быстрый старт для физических лиц и Быстрый старт для ИП и юридических лиц.
Передайте полученный ключ авторизации в параметре
при инициализации объекта GigaChat.
Пример показывает как отправить простой запрос на генерацию с помощью библиотеки GigaChat:
from gigachat import GigaChat
# Укажите ключ авторизации, полученный в личном кабинете, в интерфейсе проекта GigaChat APIwith GigaChat(credentials="ваш_ключ_авторизации", verify_ssl_certs=False) as giga: response = giga.chat("Какие факторы влияют на стоимость страховки на дом?") print(response.choices[0].message.content)
[!NOTE] Этот и другие примеры работы с библиотекой gigachat — в папке examples.
Параметры объекта GigaChat
В таблице описаны параметры, которые можно передать при инициализации объекта GigaChat:
Параметр | Обязательный | Описание |
---|---|---|
| да | Ключ авторизации для обмена сообщениями с GigaChat API. Ключ авторизации содержит информацию о версии API, к которой выполняются запросы. Если вы используете версию API для ИП или юрлиц, укажите это явно в параметре
|
| нет | Отключение проверки ssl-сертификатов. Для обращения к GigaChat API нужно установить корневой сертификат НУЦ Минцифры. Используйте параметр ответственно, так как отключение проверки сертификатов снижает безопасность обмена данными |
| нет | Версия API, к которой будет выполнен запрос. По умолчанию запросы передаются в версию для физических лиц. Возможные значения:
|
| нет | необязательный параметр, в котором можно явно задать модель GigaChat. Вы можете посмотреть список доступных моделей с помощью метода , который выполняет запрос .Стоимость запросов к разным моделям отличается. Подробную информацию о тарификации запросов к той или иной модели вы ищите в официальной документации |
| нет | Адрес API. По умолчанию запросы отправляются по адресу , но если вы хотите использовать модели в раннем доступе, укажите адрес
|
![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 и вызовите метод
.
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)
Вы также можете отключить проверку сертификатов с помощью параметра
, который передается при инициализации.
giga = GigaChat( credentials="ключ_авторизации", verify_ssl_certs=False)
![WARNING] Отключение проверки сертификатов снижает безопасность обмена данными.
Настройка переменных окружения
Чтобы задать параметры с помощью переменных окружения, в названии переменной используйте префикс
.
Пример переменных окружения, которые задают ключ авторизации, версию API и отключают проверку сертификатов.
export GIGACHAT_CREDENTIALS=...export GIGACHAT_SCOPE=...export GIGACHAT_VERIFY_SSL_CERTS=False
Пример переменных окружения, которые задают адрес API, имя пользователя и пароль.
export GIGACHAT_BASE_URL=https://gigachat.devices.sberbank.ru/api/v1export GIGACHAT_USER=...export GIGACHAT_PASSWORD=...