Интеграция с LangChain
Библиотека langchain-gigachat
позволяет использовать нейросетевые модели GigaChat при разработке LLM-приложений с помощью фреймворков LangChain и LangGraph.
Требования
Для работы с библиотекой и обмена сообщениями с моделями GigaChat понадобятся:
- Python версии 3.9 и выше;
- сертификат НУЦ Минцифры;
- ключ авторизации GigaChat API.
Вы также можете использовать другие способы авторизации.
Установка
Для установки библиотеки используйте менеджер пакетов pip:
pip install -U langchain-gigachat
Быстрый старт
Запрос на генерацию
Пример запроса на генерацию:
from langchain_gigachat.chat_models import GigaChat
giga = GigaChat(
# Для авторизации запросов используйте ключ, полученный в проекте GigaChat API
credentials="ваш_ключ_авторизации",
verify_ssl_certs=False,
)
print(giga.invoke("Hello, world!"))
Создание эмбеддингов
Пример создания векторного представления текста:
from langchain_gigachat.embeddings import GigaChatEmbeddings
embeddings = GigaChatEmbeddings(credentials="ключ_авторизации", verify_ssl_certs=False)
result = embeddings.embed_documents(texts=["Привет!"])
print(result)
Параметры объекта GigaChat
В таблице описаны параметры, которые можно передать при инициализации объекта GigaChat:
Параметр | Обязательный | Описание |
---|---|---|
credentials | да | Ключ авторизации для обмена сообщениями с GigaChat API. Ключ авторизации содержит информацию о верс ии API, к которой выполняются запросы. Если вы используете версию API для ИП или юрлиц, укажите это явно в параметре scope |
verify_ssl_certs | нет | Отключение проверки ssl-сертификатов. Для обращения к GigaChat API нужно установить корневой сертификат НУЦ Минцифры. Используйте параметр ответственно, так как отключение проверки сертификатов снижает безопасность обмена данными |
scope | нет | Версия 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 |
Чтобы не указывать параметры при каждой инициализации, задайте их в переменных окружения.
Способы авторизации
Для авторизации запросов, кроме ключа, полученного в личном кабинете, вы можете использовать:
- имя пользователя и пароль для доступа к сервису;
- сертификаты 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="ваш_токен_доступа",
)
Токен действителен в течение 30 минут. При использовании такого способа авторизации, в приложении нужно реализовать механизм обновления токена.
Предварительная авторизация
По умолчанию, библиотека GigaChat получает токен доступа при первом запросе к API.
Если вам нужно получить токен и авторизоваться до выполнения запроса, инициализируйте объект GigaChat и вызовите метод get_token()
.
giga = GigaChat(
base_url="https://gigachat.devices.sberbank.ru/api/v1",
user="имя_пользователя",
password="пар оль",
)
giga.get_token()
Настройка переменных окружения
Чтобы задать параметры с помощью переменных окружения, в названии переменной используйте префикс 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=...