Giới thiệu
Trong LangChain, Message là thành phần cốt lõi dùng để mô tả các tương tác giữa người dùng, hệ thống và mô hình ngôn ngữ (LLM). Việc hiểu rõ các loại Message giúp bạn xây dựng các tác vụ hội thoại, agent, và ứng dụng AI một cách chính xác, dễ kiểm soát và có thể mở rộng.
LangChain định nghĩa nhiều loại message khác nhau, mỗi loại phản ánh một vai trò cụ thể trong quá trình giao tiếp. Dưới đây là tổng quan các loại message chính:
1. HumanMessage
– Tin nhắn từ người dùng
Đây là loại message đại diện cho đầu vào từ người dùng cuối. Khi bạn nhập văn bản để hỏi AI, LangChain sẽ đóng gói nội dung đó thành một HumanMessage
.
from langchain.schema import HumanMessage
message = HumanMessage(content="Bạn có thể giúp tôi tính 5 nhân 3 không?")
Dùng khi mô phỏng hoặc truyền input từ con người.
2. AIMessage
– Phản hồi từ AI
Đại diện cho phản hồi từ LLM, thường là kết quả sau khi xử lý HumanMessage
. Ngoài văn bản, AIMessage còn có thể bao gồm tool calls, nếu AI quyết định gọi một công cụ thay vì trả lời trực tiếp.
from langchain.schema import AIMessage
message = AIMessage(content="Kết quả là 15.")
Dùng để mô tả output từ AI.
3. SystemMessage
– Định hướng AI
Được dùng để thiết lập bối cảnh hoặc hướng dẫn hành vi của AI từ đầu. Những chỉ dẫn như “bạn là một trợ lý thân thiện” hay “chỉ trả lời bằng tiếng Việt” thường được đặt trong SystemMessage.
from langchain.schema import SystemMessage
message = SystemMessage(content="Bạn là một trợ lý AI chuyên nghiệp.")
Dùng để hướng dẫn mô hình trước khi bắt đầu cuộc trò chuyện.
4. ToolMessage
– Phản hồi từ công cụ (tool)
Khi một AI gọi tool (hàm toán học, API, công cụ bên ngoài…), kết quả trả về sẽ được biểu diễn qua ToolMessage. Nó mô tả output của tool, và giúp AI tiếp tục hội thoại dựa trên dữ liệu đó.
from langchain.schema import ToolMessage
message = ToolMessage(
tool_call_id="abc123",
content="Kết quả của phép chia là 2.5"
)
Dùng khi bạn có workflow với tool calling.
5. ToolCall
– Yêu cầu từ AI gọi một tool
Không phải là message, nhưng thường được gói trong AIMessage. Khi AI muốn gọi một hàm cụ thể, nó tạo ra một ToolCall
để mô tả tên tool và các tham số truyền vào.
from langchain.schema.messages import ToolCall
call = ToolCall(
name="multiply",
args={"a": 5, "b": 3},
id="tool_call_1"
)
Gắn liền với quá trình sử dụng bind_tools()
hoặc khi xây dựng các agent có tool.
Tóm lại
Message Type | Vai trò chính | Dùng khi nào? |
---|---|---|
HumanMessage |
Người dùng gửi yêu cầu | Mọi input của người dùng |
AIMessage |
AI phản hồi hoặc gọi tool | Output từ AI |
SystemMessage |
Thiết lập bối cảnh và hành vi AI | Trước khi bắt đầu cuộc trò chuyện |
ToolMessage |
Phản hồi từ công cụ (tool) | Khi một tool được AI gọi và trả về kết quả |
ToolCall |
(Không phải message) – Gọi hàm/tool | Khi AI quyết định gọi tool thay vì trả lời |
Tác giả: Đỗ Ngọc Tú
Công Ty Phần Mềm VHTSoft
Không có bình luận