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
Petunjuk latihan
- Akses pesan terakhir dari
statemenggunakan"messages". - Tulis pernyataan kondisional untuk memeriksa apakah
last_messageadalahAIMessagedan bahwa pesan ini juga memilikitool_calls. - Jika kondisi terpenuhi, kembalikan
"response"pertama daritool_callsyang diambil darilast_messagedalam kolomcontentdariAIMessage. - Jika kondisi tidak terpenuhi, terapkan
.invoke()padamodel_with_toolsuntuk menghasilkan respons, dengan meneruskan riwayat percakapan lengkap daristate["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": [____.____(____["____"])]}