建立自訂提示評估工作流程,首先要建立一個穩健的提示,然後生成測試數據以查看其表現如何。讓我們一起來設定一個評估系統,用於協助使用者撰寫 AWS 專用程式碼的提示。
設定目標
我們的提示需要協助使用者撰寫三種特定類型的輸出,用於 AWS 使用案例:
- Python 程式碼
- JSON 配置檔案
- 正規表達式
關鍵要求是,當使用者請求協助完成任務時,我們要以這些格式之一回傳乾淨的輸出,不含任何額外的說明、標頭或頁尾。

以下是我們的初始提示範本:
python
prompt = f"""
Please provide a solution to the following task:
{task}
"""建立評估數據集
評估數據集包含我們將輸入到提示中以測試其效能的輸入內容。在我們的案例中,我們需要一個 JSON 物件陣列,其中每個物件都有一個「task」屬性,描述我們希望 Claude 完成的任務。

您可以用兩種方式建立數據集:
- 手動組裝
- 使用 Claude 自動生成
對於自動生成,使用像 Haiku 這樣較快的模型是合理的,因為我們是在生成測試數據而非生產輸出。
使用程式碼生成測試數據
讓我們建立一個函式,要求 Claude 為我們生成測試案例。該函式將建立一個全面的提示,要求生成特定類型的 AWS 相關任務。

以下是核心函式結構:
python
def generate_dataset():
prompt = """
Generate an evaluation dataset for a prompt evaluation. The dataset will be used to evaluate prompts
that generate Python, JSON, or Regex specifically for AWS-related tasks. Generate an array of objects,
each representing task that requires Python, JSON, or a Regex to complete.
Example output:
```json
[
\{
"task": "Description of task",
\},
...additional
]
```
* Focus on tasks that can be solved by writing a single Python function, a single JSON object, or a single regex
* Focus on tasks that do not require writing much code
Please generate 3 objects.
"""實作生成邏輯
為了從 Claude 取得乾淨的 JSON 輸出,我們將使用預填技術搭配停止序列:
python
messages = []
add_user_message(messages, prompt)
add_assistant_message(messages, "```json")
text = chat(messages, stop_sequences=["```"])
return json.loads(text)這種方法確保 Claude 以正確格式化的 JSON 開始其回應,並在結尾的 markdown 圍欄處停止。
測試並儲存數據集
執行生成函式後,您應該會得到類似以下的真實測試案例:
- 建立一個 Python 函式,從 ARN 中提取 AWS 區域
- 撰寫一個 AWS Lambda 函式的 JSON 配置
- 開發一個正規表達式來驗證 AWS S3 儲存桶名稱

將您生成的數據集儲存到檔案中以便輕鬆重複使用:
python
dataset = generate_dataset()
with open('dataset.json', 'w') as f:
json.dump(dataset, f, indent=2)這會在您的筆記本目錄中建立一個 dataset.json 檔案,其中包含您所有的測試案例,可在工作流程的後續步驟中用於提示評估。