Bir ReAct ajanıyla konuşma

LangChain ile Aracı Sistemler Tasarlama

Dilini K. Sumanapala, PhD

Founder & AI Engineer, Genverv, Ltd.

Konuşma

Kenarları 5 ve 7 olan bir dikdörtgenin alanı 35 kare birimdir.
  • Yanıtları doğrulama

  • Kullanıcı: "Kenarları 5 ve 7 olan bir dikdörtgenin alanı nedir?"

  • Ajan: "Kenarları 5 ve 7 olan bir dikdörtgenin alanı 35 kare birimdir."
LangChain ile Aracı Sistemler Tasarlama

Konuşma

tools = [rectangle_area]
query = "Kenarları 14 ve 4 olan bir dikdörtgenin alanı nedir?"


# ReAct ajanını oluşturun app = create_react_agent(model, tools)
# Ajanı bir sorgu ile çağırın ve mesajları saklayın response = app.invoke({"messages": [("human", query)]})
# Girdi ve çıktı mesajlarını tanımlayın ve yazdırın print({ "user_input": query, "agent_output": response["messages"][-1].content})
LangChain ile Aracı Sistemler Tasarlama

Konuşma çıktısı

{'user_input': 'Kenarları 14 ve 4 olan bir dikdörtgenin alanı nedir?',
 'agent_output': 'Kenarları 14 ve 4 olan bir dikdörtgenin alanı 56 
 kare birimdir.'}
LangChain ile Aracı Sistemler Tasarlama

Takip soruları

  • Takip:
    • Kullanıcı: "Peki kenarları 12 ve 14 olan nasıl?"
  • Konuşma geçmişi:
    • Kullanıcı: "Kenarları 5 ve 7 olan bir dikdörtgenin alanı nedir?"
    • Ajan: "Kenarları 5 ve 7 olan bir dikdörtgenin alanı 35 kare birimdir."
    • Kullanıcı: "Peki kenarları 12 ve 14 olan nasıl?"
    • Ajan: "Kenarları 12 ve 14 olan bir dikdörtgenin alanı 168 kare birimdir."
  • Çıktı
    • Kullanıcı: "Peki kenarları 12 ve 14 olan nasıl?"
    • Ajan: "Kenarları 12 ve 14 olan bir dikdörtgenin alanı 168 kare birimdir."
LangChain ile Aracı Sistemler Tasarlama

Takip soruları

{'user_input': 'Peki kenarları 12 ve 14 olan nasıl?',

'agent_output': ['HumanMessage: Kenarları 5 ve 7 olan bir dikdörtgenin alanı nedir?', 'AIMessage: Kenarları 5 ve 7 olan bir dikdörtgenin alanı 35 kare birimdir.', 'HumanMessage: Peki kenarları 12 ve 14 olan nasıl?', 'AIMessage: Kenarları 12 ve 14 olan bir dikdörtgenin alanı 168 kare birimdir.',
'HumanMessage: Peki kenarları 12 ve 14 olan nasıl?', 'AIMessage: Kenarları 12 ve 14 olan bir dikdörtgenin alanı 168 kare birimdir.']}
LangChain ile Aracı Sistemler Tasarlama

Konuşma geçmişi

from langchain_core.messages import 
HumanMessage, AIMessage












LangChain ile Aracı Sistemler Tasarlama

Konuşma geçmişi

from langchain_core.messages import 
HumanMessage, AIMessage


message_history = messages["messages"]

"mesaj geçmişi" ile doğrusal konuşma kurulumu başlangıcı.

LangChain ile Aracı Sistemler Tasarlama

Konuşma geçmişi

from langchain_core.messages import 
HumanMessage, AIMessage

message_history = messages["messages"]

new_query = "Peki kenarları 4 ve 3 olan nasıl?"

Yeni sorguyla güncellenmiş konuşma kurulumu.

LangChain ile Aracı Sistemler Tasarlama

Konuşma geçmişi

from langchain_core.messages import 
HumanMessage, AIMessage

message_history = messages["messages"]

new_query = "Peki kenarları 4 ve 3 olan nasıl?"
# Uygulamayı tam mesaj geçmişiyle çağır messages = app.invoke({"messages": message_history + [("human", new_query)]})

Uygulama çağrımıyla güncellenmiş konuşma kurulumu.

LangChain ile Aracı Sistemler Tasarlama

Konuşma geçmişi

# İnsan ve AI mesajlarını çıkar
filtered_messages = [msg for msg in 
                    messages["messages"] if 
                    isinstance(msg, 
                    (HumanMessage, 
                    AIMessage)) 
                    and msg.content.strip()]








Mesaj filtreleme ile güncellenmiş konuşma kurulumu.

LangChain ile Aracı Sistemler Tasarlama

Konuşma geçmişi

# İnsan ve AI mesajlarını çıkar
filtered_messages = [msg for msg in 
                    messages["messages"] if 
                    isinstance(msg, 
                    (HumanMessage, 
                    AIMessage)) 
                    and msg.content.strip()]


# Son sonucu biçimlendir ve yazdır print({ "user_input": new_query, "agent_output": [f"{msg.__class__.__name__}: {msg.content}" for msg in filtered_messages]})

Mesaj yazdırma ile güncellenmiş konuşma kurulumu.

LangChain ile Aracı Sistemler Tasarlama

Konuşma geçmişi çıktısı

{'user_input': 'Peki kenarları 4 ve 3 olan nasıl?',

'agent_output': ['HumanMessage: Kenarları 14 ve 4 olan bir dikdörtgenin alanı nedir?', 'AIMessage: Kenarları 14 ve 4 olan bir dikdörtgenin alanı 56 kare birimdir.', 'HumanMessage: Peki kenarları 4 ve 3 olan nasıl?', 'AIMessage: Kenarları 4 ve 3 olan bir dikdörtgenin alanı 12 kare birimdir.',
'HumanMessage: Peki kenarları 4 ve 3 olan nasıl?', 'AIMessage: Kenarları 4 ve 3 olan bir dikdörtgenin alanı 12 kare birimdir.']}
LangChain ile Aracı Sistemler Tasarlama

Hadi pratik yapalım!

LangChain ile Aracı Sistemler Tasarlama

Preparing Video For Download...