ai-forever / gigachain

⚑ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для создания комплСксных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с LLM ⚑
MIT License
302 stars 37 forks source link

CI Downloads License: MIT


Logo

πŸ¦œοΈπŸ”— GigaChain (GigaChat + LangChain)

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ LangChain-style ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° русском языкС с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ GigaChat
Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ issue Β· ДокумСнтация GigaChain

Product Name Screen Shot

πŸ€” Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ GigaChain?

GigaChain это Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с использованиСм Π±ΠΎΠ»ΡŒΡˆΠΈΡ… языковых ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ (LLM), Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ GigaChat ΠΈΠ»ΠΈ YandexGPT. Он позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅:

[!WARNING] ВСрсия Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ LangChain адаптированная для русского языка с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ нСйросСтСвой ΠΌΠΎΠ΄Π΅Π»ΠΈ GigaChat. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° GigaChain ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ совмСстима с LangChain, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с GigaChat, Π½ΠΎ ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ LLM Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… комбинациях.

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚:

ΠšΡ€ΠΎΠΌΠ΅ этого, Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ совмСстим со сторонним сСрвисом LangSmith β€” ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², которая позволяСт ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ, Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ, построСнныС Π½Π° любой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ LLM, ΠΈ Π»Π΅Π³ΠΊΠΎ интСгрируСтся с LangChain ΠΈ GigaChain.

Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ содСрТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹:

Бтэк Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ GigaChain

[!WARNING] GigaChain находится Π² состоянии Π°Π»ΡŒΡ„Π°-вСрсии: ΠΌΡ‹ заняты ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π΅Π΅ Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠ΅ΠΉ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с GigaChat. Π‘ΡƒΠ΄ΡŒΡ‚Π΅ остороТны ΠΏΡ€ΠΈ использовании GigaChain Π² своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ всС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Ρ‹ Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с GigaChat.

Π‘ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π΄Ρ‹ вашим PR ΠΈ issues.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° упростит ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ вашСго прилоТСния с нСйросСтСвой модСлью GigaChat ΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π·Π°Π΄Π°Ρ‡Π°Ρ…:

Установка

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pip:

pip install gigachain-community

ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ с LangChain

Π‘Π°ΠΌΡ‹ΠΉ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ способ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ с LangChain β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Python (Python virtual environment), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π»ΠΈΡΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ LangChain.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ venv, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

# Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ чистоС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Python
python -m venv .venv
# АктивируСт созданноС ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅
source .venv/bin/activate
# УстанавливаСт gigachain
pip install gigachain-community

Π Π°Π±ΠΎΡ‚Π° с GigaChain

Основной ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ являСтся Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ модуля gigachat, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ запросы ΠΊ нСйросСтСвой ΠΌΠΎΠ΄Π΅Π»ΠΈ GigaChat.

Авторизация запросов ΠΊ GigaChat

Для Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ запросов ΠΊ GigaChat Π²Π°ΠΌ понадобится ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с GigaChat API.

[!NOTE] О Ρ‚ΠΎΠΌ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ для доступа ΠΊ GigaChat Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с сСрвисом GigaChat ΠΏΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ credentials ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° GigaChat.

chat = GigaChat(credentials=<Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅_Π΄Π°Π½Π½Ρ‹Π΅>)

Для обращСния ΠΊ GigaChat Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ Π² вашСй ОБ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ установлСны сСртификаты НУЦ ΠœΠΈΠ½Ρ†ΠΈΡ„Ρ€Ρ‹. О Ρ‚ΠΎΠΌ ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ сСртификаты НУЦ ΠœΠΈΠ½Ρ†ΠΈΡ„Ρ€Ρ‹ для обращСния ΠΊ GigaChat Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ сСртификаты с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ gigachain-cli. Для этого:

  1. УстановитС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² pip:
pip install gigachain-cli
  1. УстановитС сСртификаты с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:
gigachain install-rus-certs

Если Π²Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ сСртификат НУЦ ΠœΠΈΠ½Ρ†ΠΈΡ„Ρ€Ρ‹, Ρ‚ΠΎ ΠΏΡ€ΠΈ создании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° GigaChat Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ verify_ssl_certs=False.

chat = GigaChat(credentials=<Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅_Π΄Π°Π½Π½Ρ‹Π΅>, verify_ssl_certs=False)

[!NOTE] Для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π°Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² GigaChat Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, GIGACHAT_CREDENTIALS, GIGACHAT_GIGACHAT_ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

ИспользованиС модуля gigachat

Π’ΠΎΡ‚ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‡Π°Ρ‚ΠΎΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ модуля:

"""ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‡Π°Ρ‚ΠΎΠΌ Ρ‡Π΅Ρ€Π΅Π· gigachain"""
from langchain.schema import HumanMessage, SystemMessage
from langchain_community.chat_models.gigachat import GigaChat

# Авторизация Π² сСрвисС GigaChat
chat = GigaChat(credentials=<Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅_Π΄Π°Π½Π½Ρ‹Π΅>, verify_ssl_certs=False)

messages = [
    SystemMessage(
        content="Π’Ρ‹ эмпатичный Π±ΠΎΡ‚-психолог, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹."
    )
]

while(True):
    user_input = input("User: ")
    messages.append(HumanMessage(content=user_input))
    res = chat.invoke(messages)
    messages.append(res)
    print("Bot: ", res.content)

Π Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° смотритС Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ Π Π°Π±ΠΎΡ‚Π° с GigaChat. Π­Ρ‚ΠΎΡ‚ Π±Π»ΠΎΠΊΠ½ΠΎΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ содСрТит ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ².

Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

Π’Ρ‹Π±ΠΎΡ€ ΠΌΠΎΠ΄Π΅Π»ΠΈ

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ GigaChain Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ модСлям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСдоставляСт GigaChat

Для этого ΠΏΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ model:

chat = GigaChat(model="GigaChat-Pro", credentials=<Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅_Π΄Π°Π½Π½Ρ‹Π΅>, verify_ssl_certs=False)

ΠŸΠΎΠ»Π½Ρ‹ΠΉ список доступных ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° get_models().

chat = GigaChat(credentials=<Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅_Π΄Π°Π½Π½Ρ‹Π΅>, verify_ssl_certs=False)
chat.get_models() 

ΠœΠ΅Ρ‚ΠΎΠ΄ выполняСт запрос GET /models ΠΊ GigaChat API ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список с описаниСм доступных ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ.

[!WARNING] Π‘Ρ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ запросов ΠΊ Ρ€Π°Π·Π½Ρ‹ΠΌ модСлям отличаСтся. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚Π°Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ запросов ΠΊ Ρ‚ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²Ρ‹ ΠΈΡ‰ΠΈΡ‚Π΅ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚ количСства Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ²

Для подсчСта количСства Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² Π² запросС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ get_num_tokens(str):

chat = GigaChat(credentials=<Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅_Π΄Π°Π½Π½Ρ‹Π΅>, verify_ssl_certs=False)
chat.get_num_tokens("Бколько Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² Π² этой строкС")

ΠœΠ΅Ρ‚ΠΎΠ΄ выполняСт запрос POST /tokens/count ΠΊ GigaChat API ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ количСствС Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² Π² строкС.

ОписаниС модуля gigachat

ΠœΠΎΠ΄ΡƒΠ»ΡŒ gigachat позволяСт Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ запросы ΠΎΡ‚ вашСго прилоТСния Π² GigaChat с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ GigaChat API. ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠ°ΠΊ Π² синхронном, Ρ‚Π°ΠΊ ΠΈ Π² асинхронном Ρ€Π΅ΠΆΠΈΠΌΠ΅. ΠšΡ€ΠΎΠΌΠ΅ этого ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ²[^1].

[!NOTE] Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ GigaChat API Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ GigaChat. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ нСйросСтСвыС ΠΌΠΎΠ΄Π΅Π»ΠΈ, интСграция с GigaChat Π½Π΅ составит Ρ‚Ρ€ΡƒΠ΄Π°.

Π Π°Π±ΠΎΡ‚Π° с эмбСддингами

Π­ΠΌΠ±Π΅Π΄Π΄ΠΈΠ½Π³ β€” это Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠ΅ прСдставлСниС слова, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для опрСдСлСния смысловой близости Ρ€Π°Π·Π½Ρ‹Ρ… тСкстов. Π’Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠ΅ прСдставлСниС создаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠ΄Π΅Π»ΠΈ Embeddings.

[!NOTE] Π Π°Π±ΠΎΡ‚Π° с модСлью Embeddings оплачиваСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ β€” Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π’Π°Ρ€ΠΈΡ„Ρ‹ ΠΈ ΠΎΠΏΠ»Π°Ρ‚Π°.

Для создания эмбСддингов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ GigaChain ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ GigaChatEmbeddings:

from langchain_community.embeddings.gigachat import GigaChatEmbeddings

embeddings = GigaChatEmbeddings(
    credentials="<Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅_Π΄Π°Π½Π½Ρ‹Π΅>", verify_ssl_certs=False
)

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с GigaChatEmbeddings ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚Π΅ ΠΆΠ΅ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ GigaChat.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с эмбСддингами ΠΈ использовании ΠΈΡ… ΠΏΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ RAG-ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ β€” Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰Π΅ΠΌ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π΅.

УстранСниС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ

Если Ρƒ вас Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с GigaChain ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ:

ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ использованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ LangChain ΠΈ GigaChain Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π΄Π°ΠΆΠ΅ послС ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ удалСния ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Для прСдотвращСния ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² рСкомСндуСтся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ чистоС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Python ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ входят Π² состав GigaChain. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ β€” Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ с LangChain.

Для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ списка установлСнных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

pip list

Π’ Π²Ρ‹Π²ΠΎΠ΄Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ слово langchain.

[!NOTE] Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ langchain_hub ΠΈ langsmith. Они Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ удалСния ΠΈ пСрСустановки.