gigachain

0
Зеркало из https://github.com/ai-forever/gigachainСинхронизация временно отключена

Описание

Языки

Jupyter Notebook

  • Python
Сообщить о нарушении
README.md

License: MIT


Logo

🦜️🔗 GigaChain (GigaChat + LangChain)

Набор решений для разработки LLM-приложений на русском языке с поддержкой GigaChat
Создать issue · Документация GigaChain

Product Name Screen Shot


О GigaChain

GigaChain – это набор решений для создания приложений с использованием больших языковых моделей (LLM), который охватывает все этапы разработки от прототипирования и исследования, до запуска в эксплуатацию и поддержки.

В состав GigaChain входят две библиотеки для работы с моделями GigaChat:

  • langchain-gigachat — партнерский пакет LangChain, популярного open source фреймворка для разработки комплексных LLM-приложений. Библиотека позволяет использовать все возможности фреймворка и моделей GigaChat, в том числе создание агентов с помощью LangGraph.

  • gigachat — обертка для REST API GigaChat. Библиотека управляет авторизацией запросов, упрощает отправку сообщений в модели GigaChat и предоставляет другие методы для работы с API.

    Подробная информация о библиотеке — в репозитории.

В этом репозитории вы найдете краткие инструкции по началу работы с библиотеками, а так же ссылки на различные примеры их использования.

Требования

Для работы с библиотеками langchain-gigachat и gigachat вам понадобятся:

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

langchain-gigachat

Для установки библиотеки используйте менеджер пакетов pip:

pip install langchain-gigachat

Запустите простой пример:

from langchain_core.messages import HumanMessage, SystemMessage
from 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 принимает параметры:

  • credentials
    — ключ авторизации для обмена сообщениями с GigaChat API. Подробнее о получении ключа авторизации.

  • scope
    — необязательный параметр, в котором можно указать версию API. По умолчанию запросы передаются в версию для физических лиц. Возможные значения:

    • GIGACHAT_API_PERS
      — версия API для физических лиц;
    • GIGACHAT_API_B2B
      — доступ для ИП и юридических лиц по предоплате;
    • GIGACHAT_API_CORP
      — доступ для ИП и юридических лиц по схеме pay-as-you-go.
  • model
    — необязательный параметр, в котором можно задать модель GigaChat. По умолчанию запросы передаются в модель GigaChat Lite (
    model="GigaChat"
    ).

  • verify_ssl_certs
    — необязательный параметр, с помощью которого можно отключить проверку сертификатов НУЦ Минцифры.

  • streaming
    — необязательный параметр, который включает и отключает потоковую генерацию токенов. По умолчанию
    False
    . Потоковая генерация позволяет повысить отзывчивость интерфейса программы при работе с длинными текстами.

[!TIP] Спросите чат-бот LangChain, о том, как использовать GigaChat с инструментами фреймворка.

Исходный код чат-бота — в репозитории chat-langchain.

gigachat

Для установки библиотеки используйте менеджер пакетов pip:

pip install gigachat

Вызовите подходящий метод для запроса в API:

from gigachat import GigaChat
# Для авторизации запросов используйте ключ, полученный в проекте GigaChat API
with GigaChat(credentials="ваш_ключ_авторизации", verify_ssl_certs=False) as giga:
response = giga.chat("Какие факторы влияют на стоимость страховки на дом?")
print(response.choices[0].message.content)

Объект GigaChat принимает параметры:

  • credentials
    — ключ авторизации для обмена сообщениями с GigaChat API. Подробнее о получении ключа авторизации.

  • scope
    — необязательный параметр, в котором можно указать версию API. Возможные значения:

    • GIGACHAT_API_PERS
      — версия API для физических лиц;
    • GIGACHAT_API_B2B
      — доступ для ИП и юридических лиц по предоплате;
    • GIGACHAT_API_CORP
      — доступ для ИП и юридических лиц по схеме pay-as-you-go.

    По умолчанию запросы передаются в версию для физических лиц.

  • model
    — необязательный параметр, в котором можно явно задать модель GigaChat. По умолчанию запросы передаются в модель GigaChat Lite (значение поля
    GigaChat
    ).

  • verify_ssl_certs
    — необязательный параметр, с помощью которого можно отключить проверку сертификатов НУЦ Минцифры.

В отличие от библиотеки langchain-gigachat, для запуска потоковой передачи используйте метод

stream()
:

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:

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

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.