MulaiMulai sekarang secara gratis

Buat fungsi untuk mengembalikan respons LLM

Chatbot Anda kini memiliki banyak tool yang tersedia. Namun, tetap berguna untuk memanggil LLM secara langsung ketika pertanyaan tidak terkait dengan tool apa pun yang telah ditambahkan ke chatbot. Sekarang Anda akan mendefinisikan sebuah fungsi yang memeriksa pesan terakhir dalam percakapan untuk mengetahui apakah ada pemanggilan tool. Jika tidak ada, chatbot akan menggunakan LLM untuk memberikan jawaban. Agar dapat menangani pertanyaan pengguna sekaligus respons chatbot, modul berikut telah diimpor untuk Anda guna menangani berbagai jenis pesan.

from langchain_core.messages import AIMessage, HumanMessage

Latihan ini adalah bagian dari kursus

Merancang Sistem Agentic dengan LangChain

Lihat Kursus

Petunjuk latihan

  • Akses pesan terakhir dari state menggunakan "messages".
  • Tulis pernyataan kondisional untuk memeriksa apakah last_message adalah AIMessage dan bahwa pesan ini juga memiliki tool_calls.
  • Jika kondisi terpenuhi, kembalikan "response" pertama dari tool_calls yang diambil dari last_message dalam kolom content dari AIMessage.
  • Jika kondisi tidak terpenuhi, terapkan .invoke() pada model_with_tools untuk menghasilkan respons, dengan meneruskan riwayat percakapan lengkap dari state["messages"].

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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": [____.____(____["____"])]}
Edit dan Jalankan Kode