Bắt đầu ngayBắt đầu miễn phí

Bật hội thoại nhiều lượt với bộ nhớ

Bạn gần như đã sẵn sàng chia sẻ bản cập nhật chatbot với ban giám hiệu! Để học sinh có trải nghiệm mượt mà, điều quan trọng là cho phép các em đặt câu hỏi tiếp theo. Như vậy, nếu câu trả lời đầu tiên của chatbot còn thiếu thông tin, học sinh có thể điều chỉnh câu hỏi thông qua hội thoại. Bây giờ bạn sẽ điều chỉnh hàm streaming của chatbot để hỗ trợ nhiều lượt, in ra cả truy vấn của người dùng và câu trả lời của chatbot. Để bật bộ nhớ, LangGraph sẽ gửi toàn bộ hội thoại tới LLM khi có câu hỏi tiếp theo. Trước tiên, tham số config của bạn đã được thiết lập cho một người dùng:

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

Bài tập này là một phần của khóa học

Thiết kế Hệ thống Agentic với LangChain

Xem khóa học

Hướng dẫn bài tập

  • Ở mỗi lượt, bắt đầu bằng cách in query của người dùng từ danh sách queries.
  • Duyệt qua msgmetadata bằng app.stream(), truyền query làm content của HumanMessage kèm config, và nối các giá trị msg.content.
  • Để trích xuất phản hồi của chatbot, in msg.content trong khi loại trừ các msg được gắn nhãn HumanMessage, và thêm một dòng mới trước truy vấn tiếp theo.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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)
Chỉnh sửa và Chạy Mã