gigachain
🦜️🔗 GigaChain (GigaChat + LangChain)
Набор решений для разработки LLM-приложений на русском языке с поддержкой GigaChat
Создать issue
·
Документация GigaChain
О GigaChain
GigaChain – это набор решений для создания приложений с использованием больших языковых моделей (LLM), который охватывает все этапы разработки от прототипирования и исследования, до запуска в эксплуатацию и поддержки.
В состав GigaChain входят две библиотеки для работы с моделями GigaChat:
-
langchain-gigachat — партнерский пакет LangChain, популярного open source фреймворка для разработки комплексных LLM-приложений. Библиотека позволяет использовать все возможности фреймворка и моделей GigaChat, в том числе создание агентов с помощью LangGraph.
- Официальная документация LangChain.
- Страница партнерского пакета в официальной документации LangChain.
-
gigachat — обертка для REST API GigaChat. Библиотека управляет авторизацией запросов, упрощает отправку сообщений в модели GigaChat и предоставляет другие методы для работы с API.
Подробная информация о библиотеке — в репозитории.
В этом репозитории вы найдете краткие инструкции по началу работы с библиотеками, а так же ссылки на различные примеры их использования.
Требования
Для работы с библиотеками langchain-gigachat и gigachat вам понадобятся:
-
Python версии 3.9 и выше;
-
Ключ авторизации для работы с API. О том, как получить ключ авторизации — в документации GigaChat API;
-
Если нужно, вы можете отключить проверку сертификатов. Подробнее — в примерах ниже.
Быстрый старт
langchain-gigachat
Для установки библиотеки используйте менеджер пакетов pip:
pip install langchain-gigachat
Запустите простой пример:
from langchain_core.messages import HumanMessage, SystemMessagefrom langchain_gigachat.chat_models import GigaChat
giga = GigaChat( # Для авторизации запросов используйте ключ, полученный в проекте GigaChat API credentials="ваш_ключ_авторизации", verify_ssl_certs=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)
Объект GigaChat принимает параметры:
-
— ключ авторизации для обмена сообщениями с GigaChat API. Подробнее о получении ключа авторизации.credentials -
— необязательный параметр, в котором можно указать версию API. По умолчанию запросы передаются в версию для физических лиц. Возможные значения:scope
— версия API для физических лиц;GIGACHAT_API_PERS
— доступ для ИП и юридических лиц по предоплате;GIGACHAT_API_B2B
— доступ для ИП и юридических лиц по схеме pay-as-you-go.GIGACHAT_API_CORP
-
— необязательный параметр, в котором можно задать модель GigaChat. По умолчанию запросы передаются в модель GigaChat Lite (model
).model="GigaChat" -
— необязательный параметр, с помощью которого можно отключить проверку сертификатов НУЦ Минцифры.verify_ssl_certs -
— необязательный параметр, который включает и отключает потоковую генерацию токенов. По умолчаниюstreaming
. Потоковая генерация позволяет повысить отзывчивость интерфейса программы при работе с длинными текстами.False
[!TIP] Спросите чат-бот LangChain, о том, как использовать GigaChat с инструментами фреймворка.
Исходный код чат-бота — в репозитории chat-langchain.
gigachat
Для установки библиотеки используйте менеджер пакетов pip:
pip install gigachat
Вызовите подходящий метод для запроса в API:
from gigachat import GigaChat
# Для авторизации запросов используйте ключ, полученный в проекте GigaChat APIwith GigaChat(credentials="ваш_ключ_авторизации", verify_ssl_certs=False) as giga: response = giga.chat("Какие факторы влияют на стоимость страховки на дом?") print(response.choices[0].message.content)
Объект GigaChat принимает параметры:
-
— ключ авторизации для обмена сообщениями с GigaChat API. Подробнее о получении ключа авторизации.credentials -
— необязательный параметр, в котором можно указать версию API. Возможные значения:scope
— версия API для физических лиц;GIGACHAT_API_PERS
— доступ для ИП и юридических лиц по предоплате;GIGACHAT_API_B2B
— доступ для ИП и юридических лиц по схеме pay-as-you-go.GIGACHAT_API_CORP
По умолчанию запросы передаются в версию для физических лиц.
-
— необязательный параметр, в котором можно явно задать модель GigaChat. По умолчанию запросы передаются в модель GigaChat Lite (значение поляmodel
).GigaChat -
— необязательный параметр, с помощью которого можно отключить проверку сертификатов НУЦ Минцифры.verify_ssl_certs
В отличие от библиотеки langchain-gigachat, для запуска потоковой передачи используйте метод
:
from gigachat import GigaChat
for chunk in GigaChat(credentials="ваш_ключ_авторизации",verify_ssl_certs=False, scope="GIGACHAT_API_PERS", model="GigaChat-Max").stream("Напиши рассказ про двух котят."): print(chunk.choices[0].delta.content, end="", flush=True)
[!TIP] Больше примеров работы с библиотекой — в репозитории.
Примеры
При запуске примеров могут возникать проблемы связанные с особенностями локального окружения Python. Чтобы их избежать используйте чистое виртуальное окружение.
Список интерактивных примеров в формате блокнотов Jupyter:
- Retrieval-Augmented Generation (RAG):
- Агенты:
- Извлечение структурированной информации
- Работа с изображениями:
Смотрите также
- Документация GigaChat API:
- Документация LangChain
- Документация LangGraph