這很重要
本文中標示為 (預覽) 的項目目前處於公開預覽狀態。 此預覽版本沒有服務等級協定,不建議將其用於生產工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款。
此 GitHub Action 允許 Microsoft Foundry Agents 在您的 CI/CD 管線中進行離線評估。 它旨在簡化離線評估流程,讓您能在發布更新前識別潛在問題並進行改進。
使用此動作時,提供包含測試查詢與評估器清單的資料集。 此動作會喚起你的代理人查詢,執行評估,並產生摘要報告。
Features
- 代理評估:在您的 CI/CD 工作流程中,自動化 Microsoft Foundry 代理的預生產評估。
- 評估員:使用Foundry評鑑者目錄中的任何評鑑者。
- 統計分析:評估結果包括信賴區間和統計重要性測試,以判斷變更是否有意義,而不是因隨機變化所致。
評估器類別
- 代理評估員:代理工作流程的流程與系統層級評估員。
- RAG 評估員:評估 RAG 系統中的端到端及檢索流程。
- 風險與安全評估員:在回應中評估風險與安全疑慮。
- 通用評估員:品質評估,如連貫性與流暢度。
- 基於 OpenAI 的評分器:使用 OpenAI 評分器,包括字串檢查、文字相似度、分數/標籤模型。
- 自訂評估器:使用Python程式碼或LLM作為評審的模式,自行定義自訂評估器。
先決條件
小提示
推薦的認證方式是使用 Microsoft Entra ID,這能讓你安全地連接 Azure 資源。 你可以透過 Azure 登入 GitHub 動作來自動化認證流程。 欲了解更多,請參閱 Azure 登入 OpenID Connect 的操作。
如何設定 AI Agent 評估
AI Agent 評估輸入
參數
| 名稱 | 是必要的嗎? | Description |
|---|---|---|
| azure-ai-project-endpoint | Yes | 您的 Microsoft Foundry 專案的端點。 |
| 部署名稱 | Yes | Azure AI 模型部署的名稱,用於評估。 |
| 資料路徑 | Yes | 路徑指向包含評估器與輸入查詢的資料檔案。 |
| 代理識別碼 | Yes | 一個或多個代理人的識別碼,其格式為 agent-name:version(例如,my-agent:1 或 my-agent:1,my-agent:2)。 多位代理人會以逗號分隔,並與統計測試結果進行比較。 |
| 基準代理識別碼 | 否 | 評估多個代理程式時用來比較的基準代理程式的識別碼。 若未提供,則使用第一代理人。 |
資料檔案
輸入資料檔應為 JSON 檔案,結構如下:
| 領域 | 類型 | 是必要的嗎? | Description |
|---|---|---|---|
| 名稱 | 字串 | Yes | 評估資料集名稱。 |
| 評估工具 | 字串[] | Yes | 要使用的評估員名稱清單。 請在 Foundry 入口網站的評估器目錄中查看可用評估器名單:建置> 評估> 評估器目錄。 |
| 資料 | 物件[] | Yes | 輸入物件的陣列,包含 query 和一些可選的評估器欄位,如 ground_truth、context。 自動映射到評估者;用 data_mapping 來覆寫。 |
| openai_graders | 物件 | 否 | 針對基於 OpenAI 的評估器(label_model、score_model、string_check 等)的配置。 |
| 評估器參數 (evaluator_parameters) | 物件 | 否 | 評估器專屬的初始化參數(例如閾值、自訂設定)。 |
| data_mapping | 物件 | 否 | 自訂資料欄位映射(若未提供資料,則由資料自動生成)。 |
基本範例資料檔
{
"name": "test-data",
"evaluators": [
"builtin.fluency",
"builtin.task_adherence",
"builtin.violence",
],
"data": [
{
"query": "Tell me about Tokyo disneyland"
},
{
"query": "How do I install Python?"
}
]
}
額外範例資料檔案
| 檔名 | Description |
|---|---|
| dataset-tiny.json | 測試查詢和評估者數量較少的資料集。 |
| dataset.json | 包含所有支援評估器類型的資料集,並具備足夠查詢以計算信賴區間與統計檢定。 |
| dataset-builtin-evaluators.json | 內建 Foundry 評估器的範例(例如:連貫性、流暢度、相關性、紮實性、指標)。 |
| dataset-openai-graders.json | 基於 OpenAI 的評分器範例(標籤模型、分數模型、文字相似度、字串檢查)。 |
| dataset-custom-evaluators.json | 自訂評估器範例,帶有評估器參數。 |
| dataset-data-mapping.json | 資料映射範例說明如何用自訂資料欄位名稱覆蓋自動欄位映射。 |
AI 代理程式評估工作流程
要使用 GitHub Action,請將 GitHub Action 加入你的 CI/CD 工作流程。 指定觸發條件,例如提交時,以及觸發自動化工作流程的檔案路徑。
小提示
為了降低成本,不要對每個提交都執行評估。
這個範例展示了當你使用代理 ID 比較不同代理時,如何執行 Azure Agent AI 評估。
name: "AI Agent Evaluation"
on:
workflow_dispatch:
push:
branches:
- main
permissions:
id-token: write
contents: read
jobs:
run-action:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Azure login using Federated Credentials
uses: azure/login@v2
with:
client-id: ${{ vars.AZURE_CLIENT_ID }}
tenant-id: ${{ vars.AZURE_TENANT_ID }}
subscription-id: ${{ vars.AZURE_SUBSCRIPTION_ID }}
- name: Run Evaluation
uses: microsoft/ai-agent-evals@v3-beta
with:
# Replace placeholders with values for your Foundry Project
azure-ai-project-endpoint: "<your-ai-project-endpoint>"
deployment-name: "<your-deployment-name>"
agent-ids: "<your-ai-agent-ids>"
data-path: ${{ github.workspace }}/path/to/your/data-file
AI Agent 評估輸出
評估結果會輸出到每次執行的 AI 評估 GitHub Action 的摘要區段,這些執行是在 GitHub 的 Actions 模組下進行的。
以下是比較兩種藥物的範例報告。