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 merupakan bagian dari kursus
Merancang Sistem Agentic dengan LangChain
Instruksi 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 langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# 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": [____.____(____["____"])]}