Aktifkan percakapan multi-giliran dengan memori
Anda hampir siap membagikan pembaruan chatbot Anda kepada pihak administrasi sekolah! Agar siswa mendapatkan pengalaman belajar yang lancar, penting untuk memungkinkan mereka mengajukan pertanyaan lanjutan. Dengan begitu, jika ada informasi yang kurang pada jawaban pertama chatbot, siswa dapat menyempurnakan pertanyaannya melalui percakapan. Sekarang Anda akan menyesuaikan fungsi streaming chatbot agar mendukung beberapa giliran, dengan mencetak kueri pengguna sekaligus jawaban chatbot. Untuk mengaktifkan memori, LangGraph akan mengirim seluruh percakapan ke LLM saat pertanyaan lanjutan diajukan. Sebagai awal, parameter config Anda sudah ditetapkan untuk satu pengguna:
config = {"configurable": {"thread_id": "1"}}
Latihan ini adalah bagian dari kursus
Merancang Sistem Agentic dengan LangChain
Petunjuk latihan
- Untuk setiap giliran, mulailah dengan mencetak
querypengguna dari daftarqueries. - Iterasikan melalui
msgdanmetadatamenggunakanapp.stream(), dengan meneruskanquerysebagaicontentdariHumanMessagebesertaconfig, lalu gabungkan nilaimsg.content. - Untuk mengekstrak respons chatbot, cetak
msg.contentsambil mengecualikan setiapmsgyang berlabelHumanMessage, tambahkan baris baru sebelum kueri berikutnya.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Print the user query first for every interaction
def user_agent_multiturn(queries):
for ____ in ____:
print(f"User: {____}")
# Stream through messages corresponding to queries, excluding metadata
print("Agent: " + "".join(____.____ for ____, ____ in app.____(
{"messages": [____(____=_____)]}, config, stream_mode="messages")
# Filter out the human messages to print agent messages
if ____.____ and not isinstance(____, ____)) + "____")
queries = ["Is `stressed desserts?` a palindrome?", "What about the word `kayak`?",
"What happened on the May 8th, 1945?", "What about 9 November 1989?"]
user_agent_multiturn(queries)