ΠΠ°Π±ΠΎΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ LLM-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΡΡΡΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ GigaChat
Π‘ΠΎΠ·Π΄Π°ΡΡ issue
Β·
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ GigaChain
[!WARNING] Π‘ 29.10.2024 GigaChain ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΏΠΎΡΠΎΠ± Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ LangChain. ΠΡΠΎΠ΅ΠΊΡ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π΅Ρ Π±ΡΡΡ ΠΎΡΠ²Π΅ΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ LangChain ΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΠ°ΡΡΠ½Π΅ΡΡΠΊΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° langchain-gigachat.
ΠΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ GigaChain, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ LangChain ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠΏΡΡΠΊΠ°.
ΠΡΠ΅Π΄ΡΠ΄ΡΡΡΡ Π²Π΅ΡΡΠΈΡ GigaChain (v0.2.x) Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π² Π²Π΅ΡΠΊΠ΅ v_2.x_legacy.
GigaChain β ΡΡΠΎ Π½Π°Π±ΠΎΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠΈΡ ΡΠ·ΡΠΊΠΎΠ²ΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ (LLM), ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡ Π²Π°ΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ ΡΡΠ°ΠΏΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, Π΄ΠΎ Π·Π°ΠΏΡΡΠΊΠ° Π² ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ.
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² GigaChain β ΠΏΠ°ΡΡΠ½Π΅ΡΡΠΊΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ langchain-gigachat, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ GigaChat ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ LangChain. Π’Π°ΠΊΠΆΠ΅, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ ΠΏΠ°ΠΊΠ΅ΡΡ, Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ GigaChat Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π°Π³Π΅Π½ΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ LangGraph.
Π§ΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΠ°ΡΡΠ½Π΅ΡΡΠΊΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ:
pip install langchain-gigachat
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
from langchain_core.messages import HumanMessage, SystemMessage
from langchain_gigachat.chat_models import GigaChat
# ΠΠ²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ Π² GigaChat
llm = GigaChat(
credentials="ΠΊΠ»ΡΡ_Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ",
scope="GIGACHAT_API_PERS",
model="GigaChat",
# ΠΡΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π½Π°Π»ΠΈΡΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² ΠΠ£Π¦ ΠΠΈΠ½ΡΠΈΡΡΡ
verify_ssl_certs=False,
streaming=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
.
verify_ssl_certs
β Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² ΠΠ£Π¦ ΠΠΈΠ½ΡΠΈΡΡΡ.
streaming
β Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΈ ΠΎΡΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ². ΠΠΎΡΠΎΠΊΠΎΠ²Π°Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΎΡΠ·ΡΠ²ΡΠΈΠ²ΠΎΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π΄Π»ΠΈΠ½Π½ΡΠΌΠΈ ΡΠ΅ΠΊΡΡΠ°ΠΌΠΈ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ False
.