ym88659208ym87991671
Быстрый старт | Документация для разработчиков

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

Обновлено 11 ноября 2024

В этом разделе вы узнаете:

  • как подготовить среду к работе GigaChain;
  • ознакомитесь с примером обращения к GigaChat;
  • узнаете как работать с потоком токенов.

Подготовка к работе

Для работы с GigaChain нужно:

Установка 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. Для этого:

  1. Установите утилиту с помощью менеджера пакетов pip:

    pip install gigachain-cli
  2. Установите сертификаты с помощью команды:

    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)

Смотрите также

ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.