Skip to Content

Components of Context

Khái niệm cơ bản

Hãy tưởng tượng context như một “hồ sơ bệnh nhân” cho AI…

Khi bạn đến gặp bác sĩ, họ cần biết:

  • Tiền sử bệnh → Conversation History
  • Kết quả xét nghiệm → RAG Documents
  • Dị ứng thuốc → User Profile/State
  • Công cụ chẩn đoán → Tools

AI cũng cần “hồ sơ” tương tự để đưa ra câu trả lời chính xác.

Context Components


6 Thành phần của Context

1. System Instructions (Bộ luật)

Định nghĩa AI là aiAI KHÔNG được làm gì.

<system> Bạn là trợ lý lập trình Python senior với 10 năm kinh nghiệm. - Luôn viết code có type hints - KHÔNG BAO GIỜ dùng "import *" - Giải thích ngắn gọn, ưu tiên code </system>

💡 Best Practice: Đặt system prompt ở ĐẦU TIÊN, giữ ngắn (dưới 500 tokens).


2. Conversation History (Bộ nhớ ngắn hạn)

Các tin nhắn trước đó trong cuộc hội thoại.

Vấn đề: Context window có hạn → Không thể lưu vô tận.

Giải pháp:

Kỹ thuậtCách hoạt động
Sliding WindowChỉ giữ N tin nhắn cuối (vd: 20 tin)
SummarizationTóm tắt 100 tin cũ thành 1 đoạn summary
Semantic SelectionChọn tin liên quan nhất bằng vector search

3. RAG Documents (Bộ nhớ dài hạn)

Kiến thức từ database, files, wiki được retrieve động.

# Pseudo-code RAG flow relevant_docs = vector_db.search(user_query, top_k=5) context += f"<knowledge_base>{relevant_docs}</knowledge_base>"

⚠️ Cảnh báo: Đừng inject docs không liên quan → Gây nhiễu, tốn token.


4. Tools & Functions (Siêu năng lực)

Định nghĩa các công cụ AI có thể gọi.

{ "name": "get_stock_price", "description": "Lấy giá cổ phiếu realtime", "parameters": { "symbol": {"type": "string", "description": "VD: AAPL, VNM"} } }

Quy tắc: Chỉ inject tools liên quan. Có 100 tools nhưng user hỏi về thời tiết → Chỉ inject get_weather.


5. State & Environment (Ngữ cảnh thực)

Thông tin về môi trường hiện tại:

  • Thời gian: 2025-01-01T06:00:00+07:00 (quan trọng cho query về “hôm nay”)
  • Vị trí: Hà Nội (cho local recommendations)
  • Thiết bị: Mobile (để format response phù hợp)
  • User tier: Premium (để biết features available)

6. Output Format (Khuôn mẫu)

Hướng dẫn AI trả lời theo format cụ thể.

<output_format> Trả lời bằng JSON với schema: { "answer": "...", "confidence": 0-100, "sources": ["..."] } </output_format>

Bài tập thực hành 🧪

Mục tiêu

Phân tích và cải thiện context của một chatbot hiện có.

Code mẫu (BAD)

prompt = f""" {user_message} Hãy trả lời câu hỏi trên. """

Code cải tiến (GOOD)

prompt = f""" <system> Bạn là AI hỗ trợ khách hàng của TechShop. Trả lời ngắn gọn, thân thiện. </system> <user_profile> Tên: {user.name} Hạng: {user.tier} </user_profile> <recent_orders> {format_orders(user.orders[-3:])} </recent_orders> <current_time> {datetime.now().isoformat()} </current_time> <user_query> {user_message} </user_query> """

Thử thách

Thêm component thứ 7: Assistant’s Previous Response (để AI biết mình vừa nói gì).

Last updated on