Thiết kế Hệ thống Agentic với LangChain
Dilini K. Sumanapala, PhD
Founder & AI Engineer, Genverv, Ltd.

- Agent: [Tool 1: answer]
- Agent: [Tool 2: answer]
- User: [Query]
- Agent: [Tool 1: answer]
- User: [Follow-up query]
- Agent: [Tool 1: follow-up answer]
from langchain_core.messages import AIMessage, HumanMessageconfig = {"configurable": {"thread_id": "1"}}# Tạo thông điệp đầu vào với truy vấn của người dùng def multi_tool_output(query):inputs = {"messages": [HumanMessage(content=query)]}# Stream thông điệp và metadata từ ứng dụng chatbot for msg, metadata in app.stream(inputs, config, stream_mode="messages"):# Kiểm tra nội dung và đảm bảo không phải từ người dùng if msg.content and not isinstance(msg, HumanMessage): print(msg.content, end="", flush=True)print("\n")
multi_tool_output("Is `Stella won no wallets` a palindrome?")multi_tool_output("What happened on April 12th, 1955?")
Cụm hoặc từ 'Stella won no wallets' là một palindrome.Đúng, cụm "Stella won no wallets" là một palindrome.Ngày 12 tháng 4 năm 1955 đáng chú ý vì nhiều lý do, đặc biệt trong bối cảnh khoa học và công nghệ. Vào ngày này, vắc-xin bại liệt đầu tiên do Dr. Jonas Salk phát triển đã được công bố rộng rãi. Đây là bước đột phá lớn trong cuộc chiến chống bệnh bại liệt, căn bệnh từng gây sợ hãi và bùng phát rộng rãi, đặc biệt ở trẻ em. Thông báo này đánh dấu bước ngoặt của y tế công cộng và dẫn tới chiến dịch tiêm chủng trên diện rộng, góp phần gần như xóa sổ bệnh bại liệt...
# Luôn in truy vấn người dùng trước trong mỗi lượt tương tác def user_agent_multiturn(queries): for query in queries: print(f"User: {query}")# Stream qua các thông điệp tương ứng với truy vấn, loại trừ metadata print("Agent: " + "".join(msg.content for msg, metadata in app.stream( {"messages": [HumanMessage(content=query)]}, config, stream_mode="messages")# Lọc bỏ thông điệp từ người dùng để in thông điệp của agent if msg.content and not isinstance(msg, HumanMessage)) + "\n")queries = ["What happened on the 12 April 1961?", "What about 10 December 1948?", "Is `Mr. Owl ate my metal worm?` a palindrome?", "What about 'palladium stadium?'"] user_agent_multiturn(queries)
User: What happened on the 12 April 1961?
Agent: Ngày 12 tháng 4 năm 1961, Yuri Gagarin, phi hành gia Liên Xô, trở thành người đầu tiên bay
vào không gian trên tàu Vostok 1...
User: What about 22 November 1963?
Agent: December 10, 1948... đánh dấu Tuyên ngôn Quốc tế Nhân quyền (UDHR).
User: Is `Mr. Owl ate my metal worm?` a palindrome?
Agent: Cụm hoặc từ 'Mr. Owl ate my metal worm?' là một palindrome...
User: What about 'palladium stadium'?
Agent: Không, cụm `palladium stadium` không phải là palindrome...
Thiết kế Hệ thống Agentic với LangChain