Быстрый старт
Для работы начала работы:
- Установите пакет langchain-gigachat.
- Установите сертификаты минцифры.
- Настройте авторизацию запросов к GigaChat API.
Установка
Для установки пакета langchain-gigachat используйте менеджер пакетов pip:
pip install langchain-gigachat
После выполнения команды автоматически устанавливаются фреймворк LangChain и библиотека gigachat
, которая позволяет отправлять запросы к разным моделям GigaChat.
Настройка авторизации запросов к GigaChat API
Для авторизации запросов к GigaChat вам понадобится получить ключ авторизации для работы с GigaChat API.
О том как это сделать — в разделах Быстрый старт для физических лиц и Быстрый старт для ИП и юридических лиц.
Подробнее о ключе авторизации
Ключ авторизации — строка, полученная в результате кодирования в Base64 клиентского идентификатора (Client ID) и ключа (Client Secret) API. Вы можете использовать готовые данные из личного кабинета или самостоятельно закодировать идентификатор и ключ.
Ключ авторизации нужен для получения токена доступа Access token с помощью запроса POST /api/v2/oauth
.
При этом, если вы хотите протестировать API с помощью консоли в документации, для получения токена доступа потребуются именно идентификатор и ключ, которые используются в качестве логина и пароля соответственно. Консоль автоматически кодирует их в Base64.
Это связано с тем, что запрос POST /api/v2/oauth
работает по Basic-схеме аутентификации.
Передайте ключ авторизации в параметре credentials
объекта GigaChat
.
model = GigaChat(
credentials="ключ_авторизации",
scope="GIGACHAT_API_PERS",
model="GigaChat",
streaming=False,
verify_ssl_certs=False,
)
Объект GigaChat принимает параметры:
credentials
— ключ авторизации для обмена сообщениями с GigaChat API. О том как получить ключ авторизации — в разделе Быстрый старт.scope
— версия API, к которой будет выполнен запрос. Необязательный параметр. Возможные значения:GIGACHAT_API_PERS
— версия API для физических лиц;GIGACHAT_API_B2B
— версия API для ИП и юрлиц при работе по предоплате.GIGACHAT_API_CORP
— версия API для ИП и юрлиц при работе по постоплате.
По умолчанию запросы передаются в версию для физических лиц.
model
— необязательный параметр, в котором можно явно задать модель GigaChat.По умолчанию запросы передаются в модель GigaChat Lite.
streaming
— необязательный параметр, который включает потоковую передачу токенов.verify_ssl_certs
— необязательный параметр, с помощью которого можно отключить проверку сертификатов НУЦ Минцифры.
Подробнее о параметрах GigaChat — в репозитории.
Ключ авторизации и другие параметры GigaChat можно задать с помощью переменных среды.
Для этого используйте переменные с префиксом GIGACHAT
:
export GIGACHAT_CREDENTIALS=...
export GIGACHAT_SCOPE=...
export GIGACHAT_VERIFY_SSL_CERTS=False
Установка сертификатов минцифры
Для обращения к GigaChat в вашем приложении или в вашей операционной системе должны быть установлены сертификаты минцифры.
Если нужно вы можете отключить проверку сертификатов с помощью параметра verify_ssl_certs=False
.
Пример работы
Простой пример работы с чатом с помощью модуля GigaChat:
"""Пример обращения к GigaChat с помощью GigaChain"""
from langchain_core.messages import HumanMessage, SystemMessage
from langchain_gigachat.chat_models import GigaChat
# Авторизация в GigaChat
model = GigaChat(
credentials="ключ_авторизации",
scope="GIGACHAT_API_PERS",
model="GigaChat",
# Отключает проверку наличия сертификатов НУЦ Минцифры
verify_ssl_certs=False,
)
messages = [
SystemMessage(
content="Ты эмпатичный бот-психолог, который помогает пользователю решить его проблемы."
)
]
while(True):
user_input = input("Пользователь: ")
if user_input == "пока":
break
messages.append(HumanMessage(content=user_input))
res = model.invoke(messages)
messages.append(res)
print("GigaChat: ", res.content)