Bỏ qua đến nội dung chính

System prompts

📖 Nội dung bài học

Tóm tắt

System prompt là một cách hiệu quả để tùy chỉnh cách Claude phản hồi với input của người dùng. Thay vì nhận các câu trả lời chung chung, bạn có thể định hình giọng điệu, phong cách và cách tiếp cận của Claude để phù hợp với trường hợp sử dụng cụ thể của bạn.

Tại sao System Prompts lại quan trọng

Hãy xem xét việc xây dựng một chatbot gia sư toán. Khi một học sinh hỏi "Làm thế nào để giải 5x + 2 = 3 cho x?", bạn muốn Claude hành động như một gia sư thực sự, không chỉ đưa ra câu trả lời. Một gia sư toán giỏi nên:

  • Ban đầu đưa ra gợi ý thay vì giải pháp hoàn chỉnh
  • Kiên nhẫn hướng dẫn học sinh từng bước giải bài toán
  • Hiển thị các giải pháp cho các bài toán tương tự làm ví dụ

Bạn chắc chắn không muốn Claude:

  • Trả lời trực tiếp ngay lập tức
  • Bảo học sinh chỉ cần dùng máy tính

Cách hoạt động của System Prompts

System prompt cung cấp cho Claude hướng dẫn về cách phản hồi. Bạn định nghĩa chúng dưới dạng chuỗi văn bản đơn giản và truyền chúng vào lệnh gọi hàm create. Các lợi ích chính là:

  • System prompt cung cấp cho Claude hướng dẫn về cách phản hồi
  • Claude sẽ cố gắng phản hồi theo cách mà ai đó trong vai trò được chỉ định sẽ phản hồi
  • Giúp Claude tập trung vào nhiệm vụ

Đây là cấu trúc cơ bản:

system_prompt = """
Bạn là một gia sư toán kiên nhẫn.
Không trả lời trực tiếp các câu hỏi của học sinh.
Hướng dẫn họ đến một giải pháp từng bước.
"""

client.messages.create(
    model=model,
    messages=messages,
    max_tokens=1000,
    system=system_prompt
)

Xem sự khác biệt

Không có system prompt, Claude đưa ra một giải pháp từng bước hoàn chỉnh ngay lập tức. Điều này có thể hữu ích, nhưng nó không khuyến khích học sinh tự mình suy nghĩ về bài toán.

Với system prompt gia sư toán, phản hồi của Claude thay đổi đáng kể. Thay vì cung cấp giải pháp đầy đủ, Claude đặt các câu hỏi hướng dẫn như "Bạn nghĩ bước đầu tiên tốt để cô lập x là gì? Hãy xem xét phép toán nào chúng ta có thể cần thực hiện ở cả hai vế để bắt đầu di chuyển các số hạng."

Xây dựng một hàm chat linh hoạt

Thay vì hard-code system prompt, bạn có thể làm cho hàm chat của mình có thể tái sử dụng hơn bằng cách chấp nhận system prompt làm tham số:

def chat(messages, system=None):
    params = {
        "model": model,
        "max_tokens": 1000,
        "messages": messages,
    }
    
    if system:
        params["system"] = system
    
    message = client.messages.create(**params)
    return message.content[0].text

Cách tiếp cận này xử lý một chi tiết quan trọng: API của Claude không chấp nhận system=None, vì vậy bạn cần đưa tham số system có điều kiện chỉ khi nó được cung cấp.

Bây giờ bạn có thể gọi hàm chat của mình có hoặc không có system prompt:


answer = chat(messages)

system = """
Bạn là một gia sư toán kiên nhẫn.
Không trả lời trực tiếp các câu hỏi của học sinh.
Hướng dẫn họ đến một giải pháp từng bước.
"""
answer = chat(messages, system=system)

System prompt rất cần thiết để tạo ra các ứng dụng AI hoạt động nhất quán và phù hợp với mục đích sử dụng của chúng. Chúng biến các phản hồi AI chung chung thành các tương tác chuyên biệt, phù hợp với vai trò.

🔁 Bài học liên quan

📚 Nguồn & ghi nhận

Bài học có hữu ích không?

Góp ý / Báo lỗiPhát hiện sai sót hoặc có ý tưởng cải thiện?