CLI for interacting with LangChain


License
MIT
Install
pip install gigachain-cli==0.0.30.post1

Documentation

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: для Python, для JavaScript;
  • Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° партнСрского ΠΏΠ°ΠΊΠ΅Ρ‚Π° langchain-gigachat для Python Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ LangChain.
  • gigachat β€” ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠ° для REST API GigaChat. Она управляСт Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ запросов, ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ сообщСний Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ GigaChat ΠΈ прСдоставляСт Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с API. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° доступна ΠΊΠ°ΠΊ для 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.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

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅