การใช้หน่วยความจำของกราฟสำหรับการสนทนา
เมื่อแชทบอตมีหน่วยความจำแล้ว ก็สามารถสตรีมการตอบกลับสำหรับคำถามติดตามผลได้ โดยไม่จำเป็นต้องระบุบริบทเพิ่มเติม เนื่องจากแชทบอตสามารถเข้าถึงการสนทนาทั้งหมดที่จัดเก็บไว้ในหน่วยความจำได้ คำถามเหล่านี้ถูกตั้งค่าไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การออกแบบระบบ Agentic ด้วย LangChain
คำแนะนำการฝึกหัด
- สร้าง dictionary ชื่อ
configที่มี"configurable"ซึ่งกำหนดให้"thread_id"มีค่าเป็น"single_session_memory" - วนลูปผ่านแต่ละ
eventของกราฟ โดยเรียกใช้เมธอด.stream()บนgraphพร้อมส่ง dictionary ที่มี"messages"ซึ่งประกอบด้วยuser_inputที่ติดป้ายกำกับว่า"user"และ dictionaryconfig - วนลูปผ่าน
event.values()โดยใช้ตัวแปรvalueแล้วพิมพ์"Agent:"ตามด้วยข้อมูลใน"messages"หากมีอยู่ในvalueและไม่ว่างเปล่า
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Set up a streaming function for a single user
def stream_memory_responses(user_input: str):
____ = {"____": {"____": "____"}}
# Stream the events in the graph
for ____ in graph.____({"messages": [("user", ____)]}, ____):
# Return the agent's last response
for ____ in event.____():
if "messages" in ____ and value["____"]:
print("Agent:", value["messages"])
stream_memory_responses("Tell me about the Eiffel Tower.")
stream_memory_responses("Who built it?")