Promptfoo 是一款開源的 CLI 工具,用於測試、評估與紅隊測試 LLM 提示、模型與應用。搭配 CometAPI——一個相容 OpenAI 的統一 API,匯聚 500+ 模型——讓開發者只用一把金鑰即可在 GPT、Claude、Gemini、Grok、DeepSeek 等之間進行測試,成本通常較直連供應商低 20–40%。本指南涵蓋安裝設定、組態、進階用法與基於真實資料的效益。
精選摘要最佳化總結
Promptfoo 是一款開源的 CLI 工具,用於測試、評估與紅隊測試 LLM 提示、模型與應用。搭配 CometAPI——一個相容 OpenAI 的統一 API,匯聚 500+ 模型——讓開發者只用一把金鑰即可在 GPT、Claude、Gemini、Grok、DeepSeek 等之間進行測試,成本通常較直連供應商低 20–40%。本指南涵蓋安裝設定、組態、進階用法與基於真實資料的效益。
What is Promptfoo?
Promptfoo 是一款經過實戰驗證的開源 CLI 與函式庫,用於測試驅動的 LLM 開發。相較於手動反覆試錯,它能自動化評估提示、模型、RAG 系統與代理。主要功能包括:
- 透過矩陣檢視進行並排模型比較。
- 自動化斷言(精確匹配、正則、LLM 作為評審、語義相似度等)。
- 針對提示注入、越獄、品牌風險等弱點進行紅隊測試(50+ 外掛類型)。
- CI/CD 整合、快取、併發與即時重新載入。
- 支援 60+ 提供商、自訂腳本與 HTTP 端點。
Adoption Stats (2026): 被 156 家 Fortune 500 企業採用,支援服務數百萬使用者的應用,並獲得 Shopify 等團隊信任。採用 MIT 授權,社群動能強勁。
隨著 LLM 應用走向生產環境,Promptfoo 以可重複、可量化的基準取代「只在我電腦上可用」的心態,至關重要。
Why Use CometAPI with Promptfoo?
CometAPI 是以開發者為先的統一 API,聚合 500+ 前沿模型(LLM、影像、影片、嵌入),來自 OpenAI、Anthropic、Google、xAI、DeepSeek 等。完全相容 OpenAI,因此僅需更改 base_url 即可讓既有程式碼運作。
Key Benefits of the Combo:
- 海量模型且免金鑰管理: 以一把金鑰測試 GPT-5 variants、Claude Opus 4.x、Gemini 3.x、Grok 4、DeepSeek V4、Flux、DALL-E、類似 Sora 的模型等。無需來回切換帳號。
- 顯著節省成本: CometAPI 價格通常較官方低 20–40%,按量計費(無訂閱)。真實用戶回報與基準測試顯示,對比直連或其他聚合商(如 OpenRouter)能持續節省。
- 原生 Promptfoo 支援: 提供專用
cometapi:提供者,涵蓋 chat、completion、embedding 與 image 類型。用於評測與紅隊測試順暢無縫。 - 可靠與高速: 99.9% 正常運行時間、平均延遲 <400ms,企業級隱私(不以提示訓練)、用量儀表板與故障切換路由。
- 評估流程彈性: 以低成本進行尖端模型 A/B 測試、建立 RAG 準確度基準,或跨提供商對代理進行紅隊測試而不致預算爆表。
在高容量測試中,透過 Promptfoo 切換至 CometAPI 可大幅降低評測成本,同時擴大覆蓋範圍。例如,將多個 Claude/GPT 等效模型並排測試變得輕鬆且經濟實惠。團隊通常從第一天起就能節省 20% 以上,且具完整可攜性(零綁定)。
Latest Context (2026): 隨著模型快速迭代(例如 Claude Opus 4–8、GPT-5 系列、Gemini 的進展),像 CometAPI 這樣的統一平台搭配 Promptfoo 等評估工具,對在不膨脹預算下保持敏捷至關重要。Promptfoo 的生態系持續擴展提供者支援,包括更深的 CometAPI 整合。
Prerequisites
- Node.js(建議 v18+):Promptfoo 主要基於 Node。
- CometAPI 帳號與金鑰: 在 CometAPI 免費註冊取得測試點數。於 console/token 取得金鑰。
- 已安裝 Promptfoo:
npm install -g promptfoo
# Or npx promptfoo@latest for one-off use
- 具備 YAML 與終端機的基礎認知。
- (選用)為自訂提供者使用 Python,或用 Docker 進行隔離。
驗證安裝:promptfoo --version。
How to Configure the Promptfoo Integration with CometAPI
1. Set Your CometAPI API Key
export COMETAPI_KEY=your_actual_key_here
# Persist with .env or shell profile
對於 cometapi 提供者,Promptfoo 會自動讀取該變數。
在執行評測前設定 COMETAPI_KEY:
read -rsp "CometAPI API key: " COMETAPI_KEY
printf '\n'
export COMETAPI_KEY
2. Choose CometAPI Provider Format
在 promptfooconfig.yaml 中:
providers:
- cometapi:chat:gpt-5-mini # Defaults to chat
- cometapi:chat:claude-3-5-sonnet-20241022
- cometapi:image:flux-schnell # Image gen
- cometapi:embedding:text-embedding-3-small
# Or shorthand
- cometapi:gpt-5.4-pro
完整語法:cometapi:<type>:<model>。type 預設為 chat。透過 config 支援所有 OpenAI 參數。
使用以下提供者類型:
| 類型 | 用途 |
|---|---|
| chat | 對話補全、視覺與多模態提示 |
| completion | 純文字補全模型 |
| embedding | 文字嵌入向量的評估 |
| image | 影像生成的評估 |
也可使用 cometapi:your-model-id 作為預設的 chat 模式。
3. Run a Quick CLI Evaluation
# Simple one-off
npx promptfoo@latest eval --prompts "Write a haiku about AI" -r cometapi:chat:your-model-id
# With full config
promptfoo eval
這會產生包含分數、輸出與差異的網頁檢視器。
4. Create a Comprehensive Promptfoo Config File
以下 promptfooconfig.yaml 會針對 CometAPI 模型評估相同提示:
prompts:
- "Classify this support request: {{message}}"
providers:
- id: cometapi:chat:your-model-id
config:
temperature: 0.2
max_tokens: 256
tests:
- vars:
message: "The API key works locally but fails in production."
assert:
- type: contains-any
value:
- authentication
- configuration
使用 Promptfoo 執行該設定檔:
npx promptfoo@latest eval -c promptfooconfig.yaml
執行 promptfoo redteam setup 以自動化掃描弱點。
Detailed Step-by-Step Workflow for Robust Evaluations
- 定義對業務關鍵的情境: 建立貼近真實使用的測試套件(例如客服、程式碼產生、創意任務)。
- 提示工程迭代: 使用變數(
{{var}})與檔案式提示。追蹤版本。 - 模型比較矩陣: 跨 5–10 個模型執行評測。分析成本、延遲、品質分數。
- 評分與斷言: 結合規則式、模型式(LLM 評審)與自訂 JS/Python 評分器。
- CI/CD 整合: 加入 GitHub Actions:
- name: Promptfoo Eval
run: promptfoo eval --ci
- 監控並持續迭代: 使用 Promptfoo 檢視器 + CometAPI 儀表板掌握花費/延遲洞見。
範例輸出分析: 可看到勝率表格,例如 Claude 在推理較佳、GPT 在速度較快、DeepSeek 在特定任務的成本更優。
CometAPI vs. Direct Providers vs. Alternatives in Promptfoo
| 面向 | CometAPI + Promptfoo | 直接(OpenAI/Anthropic) | 其他聚合商(如 OpenRouter) |
|---|---|---|---|
| Models Available | 500+ 統一匯集 | 受限於單一廠商 | 眾多,但差異較大 |
| Pricing | 較官方價低 20–40% | 官方價格 | 官方價外加費用 |
| Key Management | 單一金鑰 | 多個 | 多個 |
| Latency/Uptime | <400ms、99.9% | 視情況而定 | 視情況而定 |
| Promptfoo Native | 是,完整支援 | 是 | 部分 |
| Privacy | 不會用提示進行訓練 | 依提供商政策 | 視情況而定 |
| Best For | 廣泛測試與生產 | 單一供應商鎖定 | 簡單路由 |
Data Insight: 對於中階模型的 1M tokens 用量,與直連相比,CometAPI 通常每百萬可節省 $5–20+,在評測迭代(數百/數千次呼叫)中效益會持續累積。
Troubleshooting Common Issues
- API Key 錯誤: 驗證
COMETAPI_KEY環境變數(echo $COMETAPI_KEY)。於主控台確認點數。 - Model Not Found: 透過
curl -H "Authorization: Bearer $COMETAPI_KEY"https://api.cometapi.com/v1/models列出模型。請使用精確名稱。 - Rate Limits: CometAPI 會智能處理上游;可在設定中設
delay或降低併發。 - High Latency in Evals: 啟用快取(
cache: true)。初期測試可先用較小模型。 - Assertion Failures: 調整評分規則或增加樣本。LLM 評審可能不一致——對多次運行取平均(
repeat: 3)。 - Image/Vision Issues: 確認模型支援該模態;提供有效 URLs。
- YAML Parsing: 使用 Promptfoo 結構定義或線上工具驗證。
- Permissions/CORS: 使用自訂 HTTP 時,檢查標頭。
Pro Tip: 執行 promptfoo eval --verbose 以取得詳細日誌。於 CometAPI 狀態/儀表板檢查是否中斷。
Troubleshooting
Promptfoo cannot find the API key
確認在執行 promptfoo eval 的同一個 shell 會話中,已匯出 COMETAPI_KEY。
The provider type does not match the model
對話與多模態模型使用 chat,嵌入模型使用 embedding,影像生成模型使用 image。
The model ID fails
以 CometAPI Models page 上的精確模型 ID 替換 your-model-id。
Advanced Tips & Best Practices
- 成本最佳化: 先用便宜模型(例如透過 CometAPI 的 GPT-5-mini 或 DeepSeek)迭代提示,再用高階模型驗證。
- 自訂提供者: 若需超出 CometAPI 的能力,可擴充 JS/Python。
- RAG 與 Agent 測試: 整合檢索變數與工具呼叫。
- 安全性: 在上線前徹底進行紅隊測試。Promptfoo + CometAPI 的隱私策略有所助益。
- 擴充: 使用雲端執行器或自我託管 Promptfoo 以支援大型測試套件。
- 監控: 結合 CometAPI 分析以查看各模型的 token 花費。
CometAPI Recommendations for Your Stack (from Cometapi.com):
- 將其用於所有評測工作負載以最小化成本。
- 善用 playground 進行快速測試。
- 監控用量警示以維持在預算內。
- 探索影像/影片模型,於 Promptfoo 進行多模態評測。
Conclusion: Level Up Your LLM Development Today
整合 CometAPI 與 Promptfoo 能為現代 AI 開發帶來強大、經濟、可擴展的解決方案。你可獲得無與倫比的模型彈性、嚴謹測試、成本效益,以及透過自動化紅隊測試帶來的安心,同時保持完全掌控。
從小處開始:設定金鑰、執行範例設定,然後擴充你的測試套件。隨著 AI 應用成長,節省的時間與成本將持續複利。
Ready to implement? 前往 CometAPI 取得免費金鑰並深入閱讀 Promptfoo 文件。若需在 Cometapi.com 進行客製顧問或進階設置,歡迎探索我們的資源。
