Nhảy đến nội dung chính

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êm SystemMessage 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