SystemMessage - Thiết lập ngữ cảnh
Trong LangChain, SystemMessage
là một loại message đặc biệt dùng để thiết lập ngữ cảnh hoặc hướng dẫn hành vi cho mô hình ngôn ngữ (LLM).
Nó giống như "lệnh nền" mà người dùng không thấy, nhưng ảnh hưởng đến cách AI trả lời.
Cú pháp
from langchain.schema import SystemMessage
system_msg = SystemMessage(content="Bạn là một trợ lý AI nói tiếng Việt và luôn lịch sự.")
-
content
: Văn bản chỉ dẫn cho mô hình. -
Không hiển thị với người dùng cuối, nhưng cực kỳ quan trọng để định hình cá tính và hành vi của AI.
Mục đích sử dụng
-
Thiết lập vai trò cho AI (ví dụ: giáo viên, chuyên gia, chatbot vui vẻ...).
-
Quy định giọng điệu (ví dụ: lịch sự, vui vẻ, nghiêm túc).
-
Áp đặt giới hạn, như "không trả lời nếu không chắc chắn".
Ví dụ đơn giản
from langchain.chat_models import ChatOpenAI
from langchain.schema import HumanMessage, SystemMessage
llm = ChatOpenAI()
messages = [
SystemMessage(content="Bạn là một trợ lý AI lịch sự và vui tính."),
HumanMessage(content="Hôm nay bạn khỏe không?")
]
response = llm(messages)
print(response.content)
Kết quả có thể là
Cảm ơn bạn đã hỏi! Tôi là AI nên không có cảm giác, nhưng nếu có thì chắc chắn hôm nay tôi rất tuyệt vời. Còn bạn thì sao?
Thấy không? AI trở nên "vui tính" và "lịch sự" đúng như chỉ dẫn trong SystemMessage
.
Ví dụ hội thoại có nhiều loại message
from langchain.schema import HumanMessage, AIMessage, SystemMessage
from langchain.chat_models import ChatOpenAI
llm = ChatOpenAI()
messages = [
SystemMessage(content="Bạn là một chuyên gia lịch sử Việt Nam, nói ngắn gọn."),
HumanMessage(content="Ai là vua đầu tiên của triều Nguyễn?"),
]
response = llm(messages)
print(response.content)
Kết quả mẫu:
Vua đầu tiên của triều Nguyễn là Gia Long, lên ngôi năm 1802.
Mẹo chuyên sâu
-
SystemMessage
nên luôn được đặt đầu tiên trong danh sách messages. -
Nếu dùng
memory
, bạn có thể thêmSystemMessage
một lần duy nhất để mô hình nhớ bối cảnh trong suốt cuộc trò chuyện. -
Bạn có thể sử dụng
SystemMessage
để giới hạn độ dài, độ chính xác, hoặc hành vi không mong muốn của AI. -
Muốn ví dụ sử dụng
SystemMessage
để tạo các kiểu AI khác nhau như:-
Trợ lý thân thiện
-
Chuyên gia tài chính
-
Luật sư
-
Dịch giả tự động
Tác giả: Đỗ Ngọc Tú
Công Ty Phần Mềm VHTSoft -