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

Đặt câu hỏi về lịch sử hội thoại

Với một ReAct agent cơ bản trong LangChain, bạn có thể đặt câu hỏi tiếp theo bằng cách lưu lịch sử hội thoại của agent. Vì LLM có quyền truy cập vào tất cả các tin nhắn trước đó, bạn có thể đặt câu hỏi mới và agent sẽ sử dụng toàn bộ ngữ cảnh để phản hồi.

Bây giờ bạn sẽ hỏi một câu tiếp nối về các cạnh của một tam giác khác.

Để sử dụng được các lớp HumanMessage và AIMessage, các module sau đã được nhập sẵn cho bạn: HumanMessage, AIMessage.

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

  • Gán câu hỏi ngôn ngữ tự nhiên đã cho vào new_query.
  • Gọi đối tượng app, truyền vào toàn bộ các tin nhắn, bao gồm message_historynew_query.
  • Dùng list comprehension để trích xuất các tin nhắn từ response["messages"] có nhãn HumanMessage hoặc AIMessage.
  • Truyền truy vấn mới làm input và in ra các tin nhắn đã trích xuất bằng cách truyền các lớp tin nhắn vào "agent_output".

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.

message_history = response["messages"]
____ = "What about one with sides 12 and 14?"

# Invoke the app with the full message history
response = app.____({"messages": ____ + [("human", ____)]})

# Extract the human and AI messages from the result
filtered_messages = [msg for msg in ____["____"] if isinstance(msg, (____, ____)) and msg.content.strip()]

# Pass the new query as input and print the final outputs
print({
    "user_input": ____,
    "agent_output": [f"{msg.____.____}: {msg.content}" for msg in ____]
})
Chỉnh sửa và Chạy Mã