BaşlayınÜcretsiz Başlayın

Bir LLM yanıtı döndüren fonksiyon oluştur

Sohbet botunun artık birçok aracı var. Yine de, sohbete eklenen araçlarla ilgisi olmayan bir soru geldiğinde LLM'i tek başına çağırmak faydalıdır. Şimdi, konuşmadaki son mesajı olası araç çağrıları için kontrol eden bir fonksiyon tanımlayacaksın. Eğer hiçbir araç çağrısı yoksa, sohbet botu yalnızca LLM'i kullanarak bir yanıt döndürecek. Hem kullanıcının sorgularını hem de sohbet botunun yanıtlarını işleyebilmek için, farklı mesaj türlerini ele almak üzere şu modüller senin için içe aktarıldı:

from langchain_core.messages import AIMessage, HumanMessage

Bu egzersiz

LangChain ile Aracı Sistemler Tasarlama

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • state içinden "messages" anahtarını kullanarak son mesaja eriş.
  • last_message'ın bir AIMessage olup olmadığını ve bu mesajın tool_calls içerip içermediğini kontrol eden bir koşullu ifade yaz.
  • Koşul sağlanıyorsa, last_message içindeki tool_calls'tan ilk "response" değerini al ve AIMessage'ın content alanında döndür.
  • Koşul sağlanmıyorsa, model_with_tools üzerinde .invoke() çağırarak bir yanıt üret ve state["messages"] içindeki tam konuşma geçmişini geçir.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# Extract the last message from the history
def call_model(state: MessagesState):
    ____ = ____["____"][____]

    # If the last message has tool calls, return the tool's response
    if isinstance(____, ____) and ____.____:
        
        # Return only the messages from the tool call
        return {"messages": [____(content=____.____[0]["____"])]}
    
    # Otherwise, proceed with a regular LLM response
    return {"messages": [____.____(____["____"])]}
Kodu Düzenle ve Çalıştır