📖 Nội dung bài học
Tóm tắt
Xây dựng quy trình đánh giá prompt tùy chỉnh bắt đầu bằng việc tạo một prompt vững chắc, sau đó là tạo dữ liệu kiểm thử để xem prompt đó hoạt động tốt như thế nào. Hãy cùng xem xét thiết lập hệ thống đánh giá cho một prompt giúp người dùng viết mã dành riêng cho AWS.
Thiết lập mục tiêu
Prompt của chúng ta cần hỗ trợ người dùng viết ba loại đầu ra cụ thể cho các trường hợp sử dụng AWS:
- Mã Python
- Tệp cấu hình JSON
- Biểu thức chính quy (Regular expressions)
Yêu cầu chính là khi người dùng yêu cầu trợ giúp về một tác vụ, chúng ta sẽ trả về đầu ra sạch sẽ theo một trong các định dạng này mà không có bất kỳ giải thích, tiêu đề hoặc chân trang bổ sung nào.

Đây là prompt ban đầu của chúng ta (phiên bản 1):
prompt = f"""
Vui lòng cung cấp một giải pháp cho tác vụ sau:
{task}
"""
Tạo bộ dữ liệu đánh giá
Bộ dữ liệu đánh giá chứa các đầu vào mà chúng ta sẽ cung cấp cho prompt của mình. Đối với mỗi sự kết hợp giữa prompt và đầu vào, chúng ta sẽ chạy prompt và phân tích kết quả.
Bộ dữ liệu của chúng ta sẽ là một mảng các đối tượng JSON, trong đó mỗi đối tượng chứa một thuộc tính "task" mô tả những gì chúng ta muốn Claude thực hiện. Chúng ta có thể tạo bộ dữ liệu này thủ công hoặc tạo tự động bằng Claude.

Vì chúng ta đang tạo dữ liệu kiểm thử, đây là cơ hội hoàn hảo để sử dụng một mô hình nhanh hơn như Haiku thay vì mô hình Claude đầy đủ.
Tạo dữ liệu kiểm thử bằng mã
Hãy tạo một hàm để tự động tạo bộ dữ liệu kiểm thử của chúng ta. Đầu tiên, chúng ta cần các hàm trợ giúp để làm việc với Claude:
def add_user_message(messages, text):
user_message = {"role": "user", "content": text}
messages.append(user_message)
def add_assistant_message(messages, text):
assistant_message = {"role": "assistant", "content": text}
messages.append(assistant_message)
def chat(messages, system=None, temperature=1.0, stop_sequences=[]):
params = {
"model": model,
"max_tokens": 1000,
"messages": messages,
"temperature": temperature
}
if system:
params["system"] = system
if stop_sequences:
params["stop_sequences"] = stop_sequences
response = client.messages.create(**params)
return response.content[0].text
Bây giờ chúng ta sẽ tạo hàm tạo bộ dữ liệu của mình:
def generate_dataset():
prompt = """
Tạo một bộ dữ liệu đánh giá cho việc đánh giá prompt. Bộ dữ liệu sẽ được sử dụng để đánh giá các prompt tạo ra Python, JSON hoặc Regex dành riêng cho các tác vụ liên quan đến AWS. Tạo một mảng các đối tượng JSON, mỗi đối tượng đại diện cho một tác vụ yêu cầu Python, JSON hoặc Regex để hoàn thành.
Ví dụ đầu ra:
```json
[
{
"task": "Mô tả tác vụ",
},
...thêm
]
```
* Tập trung vào các tác vụ có thể giải quyết bằng cách viết một hàm Python duy nhất, một đối tượng JSON duy nhất hoặc một regex duy nhất
* Tập trung vào các tác vụ không yêu cầu viết nhiều mã
Vui lòng tạo 3 đối tượng.
"""
Để phân tích phản hồi JSON đúng cách, chúng ta sẽ sử dụng prefilling và stop sequences:
messages = []
add_user_message(messages, prompt)
add_assistant_message(messages, "```json")
text = chat(messages, stop_sequences=["```"])
return json.loads(text)
Kiểm thử việc tạo bộ dữ liệu
Hãy chạy hàm của chúng ta và xem chúng ta nhận được loại trường hợp kiểm thử nào:
dataset = generate_dataset()
print(dataset)
Điều này sẽ trả về ba trường hợp kiểm thử khác nhau bao gồm các đầu ra mục tiêu của chúng ta - các hàm Python, cấu hình JSON và biểu thức chính quy cho các tác vụ dành riêng cho AWS.
Lưu bộ dữ liệu
Sau khi có bộ dữ liệu, chúng ta sẽ lưu nó vào một tệp để có thể dễ dàng tải lại trong quá trình đánh giá:
with open('dataset.json', 'w') as f:
json.dump(dataset, f, indent=2)
Thao tác này sẽ tạo một tệp dataset.json trong cùng thư mục với notebook của bạn, chứa danh sách các tác vụ đã sẵn sàng để đánh giá prompt.
Với nền tảng này, bạn giờ đây đã có một phương pháp có hệ thống để tạo dữ liệu kiểm thử nhằm đánh giá mức độ hiệu quả của các prompt của bạn trên các loại tác vụ mã hóa liên quan đến AWS khác nhau.
Tải xuống
🔁 Bài học liên quan
- Bài tiếp: Running the eval
- Bài trước: A typical eval workflow
- Cùng section: Making a request · Multi-Turn conversations · Chat exercise
- Thuộc lộ trình: Path C
- Docs tham khảo: Glossary · Skills atlas · By use-case
📚 Nguồn & ghi nhận
- Bài học gốc Anthropic Academy: https://anthropic.skilljar.com/claude-with-the-anthropic-api/287739
- © 2025 Anthropic. Chỉ dùng cho mục đích giáo dục, fair-use.
- Crawl: — · Chuẩn hoá: 2026-05-01