Быстрый старт
В этом разделе вы узнаете:
- как подготовить среду к работе GigaChain;
- ознакомитесь с примером обращения к GigaChat;
- узнаете как работать с потоком токенов.
Подготовка к работе
Для работы с GigaChain нужно:
- Установить пакет langchain-gigachat.
- Настроить авторизацию запросов к GigaChat API.
- Установить сертификаты минцифры.
Установка GigaChain
GigaChain можно установить с помощью менеджера пакетов pip:
pip install langchain-gigachat
При установке пакета langchain-gigachat
автоматически устанавливаются фреймворк LangChain, а также библиотека gigachat
, которая позволяет отправлять запросы к разным моделям GigaChat.
Настройка авторизации запросов к GigaChat API
Для авторизации запросов к GigaChat вам понадобится получить ключ авторизации для работы с GigaChat API.
Как получить ключ авторизации, Client ID и Client Secret читайте в разделах Быстрый старт для физических лиц и Быстрый старт для ИП и юридических лиц.
Подробнее о ключе авторизации
Ключ авторизации — строка, полученная в результате кодирования в Base64 клиентского идентификатора (Client ID) и ключа (Client Secret) API. Вы можете использовать готовые данные из личного кабинета или самостоятельно закодировать идентификатор и ключ.
Ключ авторизации нужен для получения токена доступа Access token с помощью запроса POST /api/v2/oauth
.
При этом, если вы хотите протестировать API с помощью консоли в документации, для получения токена доступа потребуются именно идентификатор и ключ, которые используются в качестве логина и пароля соответственно. Консоль автоматически кодирует их в Base64.
Это связано с тем, что запрос POST /api/v2/oauth
работает по Basic-схеме аутентификации.
Передайте полученные ключ авторизации в параметре credentials
объекта GigaChat
.
chat = GigaChat(credentials="ключ_авторизации")
Объект GigaChat принимает параметры:
credentials
— ключ авторизации для обмена сообщениями с GigaChat API. О том как получить ключ авторизации — в разделе Быстрый старт.scope
— версия API, к которой будет выполнен запрос. Необязательный параметр. Возможные значения:GIGACHAT_API_PERS
— версия API для физических лиц;GIGACHAT_API_B2B
— версия API для ИП и юрлиц при работе по предоплате.GIGACHAT_API_CORP
— версия API для ИП и юрлиц при работе по постоплате.
По умолчанию запросы передаются в версию для физических лиц.
model
— необязательный параметр, в котором можно явно задать модель GigaChat.В примере используется модель GigaChat-Pro. Ответы других моделей могут отличаться.
verify_ssl_certs
— необязательный параметр, с помощью которого можно отключить проверку сертификатов НУЦ Минцифры.
Подробнее о параметрах GigaChat — в репозитории.
Для передачи ключа авторизации и других параметров GigaChat вы также можете настроить переменные окружения, например, GIGACHAT_CREDENTIALS
и другие.
Установка сертификатов минцифры
Для обращения к GigaChat в вашем приложении или в вашей ОС должны быть установлены сертификаты минцифры.
Вы можете установить сертификаты с помощью утилиты gigachain-cli
.
Для этого:
Установите утилиту с помощью менеджера пакетов pip:
pip install gigachain-cli
Установите сертификаты с помощью команды:
gigachain install-rus-certs
Если вы не используете сертификат минцифры, то при создании объекта GigaChat
вам нужно передать параметр verify_ssl_certs=False
.
chat = GigaChat(credentials=<ключ_авторизации>, verify_ssl_certs=False)
Этот и другие параметры вы можете настроить с помощью переменных окружения, например GIGACHAT_VERIFY_SSL_CERTS
и других.
Работа с GigaChain
Простой пример работы с чатом с помощью модуля GigaChat:
"""Пример обращения к GigaChat с помощью GigaChain"""
from langchain_core.messages import HumanMessage, SystemMessage
from langchain_gigachat.chat_models import GigaChat
# Авторизация в GigaChat
llm = GigaChat(
credentials="ключ_авторизации",
scope="GIGACHAT_API_PERS",
model="GigaChat",
# Отключает проверку наличия сертификатов НУЦ Минцифры
verify_ssl_certs=False,
streaming=False,
)
messages = [
SystemMessage(
content="Ты эмпатичный бот-психолог, который помогает пользователю решить его проблемы."
)
]
while(True):
user_input = input("Пользователь: ")
if user_input == "пока":
break
messages.append(HumanMessage(content=user_input))
res = llm.invoke(messages)
messages.append(res)
print("GigaChat: ", res.content)
Устранение проблем
C 30.10.2924 для работы с GigaChain нужно установить партнерский пакет langchain_gigachat
.
Для миграции на партнерский пакет выполните команды из раздела Миграция с LangChain.
Если у вас возникли проблемы при работе с GigaChain убедитесь, что:
- вы используете Python версии 3.9 и выше;
- у вас установлена последняя версия библиотеки;
- вместо модулей GigaChain не установлены модули LangChain.
В любом случае для решения проблемы нужно удалить модули LangChain и повторно установить пакет langchain_gigachat
.
Для вывода полного списка установленных модулей используйте команду:
pip list
Модули langchain_hub
и langsmith
не требуют удаления и переустановки.
Для удаления модулей LangChain используйте команды менеджера пакетов:
pip uninstall langchain-core
pip uninstall langchain-community
pip uninstall langchain-expiremental
#Модуль langchain-openai содержит зависимости от langchain-core
pip uninstall langchain-openai
pip uninstall langchain
Для установки последних версий модулей GigaChain используйте команды менеджера пакетов:
pip install langchain-gigachat
Работа с большими текстами
Обработка больших текстов может занимать у модели продолжительное время — 10 минут и более. Это может привести к возникновению проблем, связанных с превышением времени ожидания.
Чтобы избежать таких проблем, используйте потоковую передачу токенов (параметр streaming=True
):
chat = GigaChat(credentials='<ключ_авторизации>', verify_ssl_certs=False, streaming=True)