Skip to content

⚡ Набор решений для разработки LLM-приложений на русском языке с поддержкой GigaChat ⚡

License

Notifications You must be signed in to change notification settings

ai-forever/gigachain

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

License: MIT


Logo

🦜️🔗 GigaChain (GigaChat + LangChain)

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

Product Name Screen Shot


О GigaChain

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

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

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

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

Требования

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

  • Python версии 3.9 и выше для работы библиотеками Python.

  • Node.js версии 16 и выше для работы с библиотеками JavaScript.

  • Ключ авторизации для работы с API. О том, как получить ключ авторизации — в документации GigaChat API.

  • Сертификаты НУЦ Минцифры.

    Если нужно, вы можете отключить проверку сертификатов. Подробнее — в примерах ниже.

Быстрый старт для Python

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 = giga.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

Больше примеров работы с библиотекой — в репозитории.

Быстрый старт для JavaScript

langchain-gigachat

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

npm install --save langchain-gigachat

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

import { Agent } from 'node:https';
import { GigaChat } from "langchain-gigachat"
import { HumanMessage, SystemMessage } from "@langchain/core/messages";

const httpsAgent = new Agent({
    rejectUnauthorized: false, // Отключение проверки сертификатов НУЦ Минцифры
}); 

const giga = new GigaChat({
    credentials: 'ключ_авторизации',
    model: 'GigaChat-Max',
    httpsAgent
})

const messages = [
  new SystemMessage("Переведи следующее сообщение на английский"),
  new HumanMessage("Привет!"),
];

const resp = await giga.invoke(messages);

console.log(resp.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 (model="GigaChat").

  • httpsAgent — необязательный параметр, который позволяет задать настройки HTTPS. Эти настройки будут использованы при подключении к серверу API. Вы можете использовать их для отключения проверки сертификатов НУЦ Минцифры.

gigachat

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

npm install gigachat

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

import GigaChat from 'gigachat';
import { Agent } from 'node:https';

const httpsAgent = new Agent({
  rejectUnauthorized: false, // Отключение проверки сертификатов НУЦ Минцифры
});

const giga = new GigaChat({
  model: 'GigaChat',
  credentials: 'ключ_авторизации',
  httpsAgent: httpsAgent,
});

giga
  .chat({
    messages: [{ role: 'user', content: 'Привет, как дела?' }],
  })
  .then((resp) => {
    console.log(resp.choices[0]?.message.content);
  });

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

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

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

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

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

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

Настройки HTTPS, которые добавляются при подключении к серверу API

  • httpsAgent — необязательный параметр, который позволяет задать настройки HTTPS. Эти настройки будут использованы при подключении к серверу API. Вы можете использовать их для отключения проверки сертификатов НУЦ Минцифры.

Tip

Больше примеров работы с библиотекой — в репозитории.

Примеры

Ниже представлен список интерактивных примеров для Python и JavaScript в формате Jupyter-блокнотов.

Python

При запуске примеров могут возникать проблемы, связанные с особенностями локального окружения Python. Чтобы их избежать, используйте чистое виртуальное окружение.

JavaScript

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

About

⚡ Набор решений для разработки LLM-приложений на русском языке с поддержкой GigaChat ⚡

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Jupyter Notebook 98.2%
  • Python 1.8%