เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

เปิดใช้งานการสนทนาหลายรอบด้วยหน่วยความจำ

ใกล้จะพร้อมแชร์แชทบอตเวอร์ชันอัปเดตให้ทีมบริหารโรงเรียนแล้ว! เพื่อให้นักเรียนมีประสบการณ์การเรียนรู้ที่ราบรื่น สิ่งสำคัญคือต้องเปิดให้นักเรียนถามคำถามต่อเนื่องได้ หากข้อมูลในคำตอบแรกยังไม่ครบถ้วน นักเรียนจะได้ปรับคำถามผ่านการสนทนาได้เลย ในขั้นตอนนี้ จะปรับฟังก์ชันสตรีมของแชทบอตให้รองรับการสนทนาหลายรอบ โดยแสดงทั้งคำถามของผู้ใช้และคำตอบของแชทบอต เพื่อเปิดใช้งานหน่วยความจำ LangGraph จะส่งการสนทนาทั้งหมดไปยัง LLM เมื่อมีคำถามต่อเนื่อง เพื่อเริ่มต้น พารามิเตอร์ config ได้ถูกตั้งค่าสำหรับผู้ใช้หนึ่งรายไว้แล้ว:

config = {"configurable": {"thread_id": "1"}}

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การออกแบบระบบ Agentic ด้วย LangChain

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ในแต่ละรอบ ให้เริ่มด้วยการพิมพ์ query ของผู้ใช้จากลิสต์ queries
  • วนซ้ำผ่าน msg และ metadata โดยใช้ app.stream() โดยส่ง query เป็น content ของ HumanMessage พร้อมกับ config แล้วรวมค่า msg.content เข้าด้วยกัน
  • เพื่อดึงคำตอบของแชทบอต ให้พิมพ์ msg.content โดยกรองออก msg ที่มีประเภทเป็น HumanMessage และเพิ่มบรรทัดใหม่ก่อนคำถามถัดไป

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# 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)
แก้ไขและรันโค้ด