如何在 GitHub Action(預覽版)中執行評估

重要

本文中標示為(預覽)的項目目前正處於公開預覽階段。 此預覽版未簽訂服務水準協議,且不建議用於生產工作負載。 某些功能可能不被支援或功能受限。 欲了解更多資訊,請參閱Microsoft Azure預覽補充使用條款

GitHub Action 能在您的 CI/CD 管線中離線評估 Microsoft Foundry Agents。 它旨在簡化離線評估流程,讓您能在發布更新前識別潛在問題並進行改進。

使用此動作時,提供包含測試查詢與評估器清單的資料集。 此動作會喚起你的代理人查詢,執行評估,並產生摘要報告。

特色

  • Agent Evaluation:在您的 CI/CD 工作流程中自動執行 Microsoft Foundry 代理的生產前評估。
  • 評估員:使用Foundry評鑑者目錄中的任何評鑑者。
  • 統計分析:評估結果包含信賴區間及統計顯著性檢定,以判斷變化是否有意義,且非隨機變異所致。

評估器類別

先決條件

提示

推薦的認證方式是使用 Microsoft Entra ID,這能讓你安全地連接到 Azure 資源。 你可以透過使用 Azure 登入GitHub動作來自動化認證流程。 欲了解更多,請參閱 Azure OpenID Connect 登入操作。

如何設定 AI 代理人評估

AI 智能代理評估資訊

參數

名稱 必須? 描述
azure-ai-project-endpoint 是的 您的 Microsoft Foundry Project 的終端點。 要找到這個值,請在 Foundry 入口 網站開啟你的專案,並從 概覽 頁面複製端點。
部署名稱 是的 一個用於評估的 Azure AI 模型部署名稱。 在 Foundry 入口網站的 Models + 端點 下找到現有部署。
資料路徑 是的 路徑指向包含評估器與輸入查詢的資料檔案。
代理識別碼 是的 代理人的一個或多個識別碼,以格式 agent-name:version (例如,my-agent:1my-agent:1,my-agent:2)呈現。 多位代理人會以逗號分隔,並與統計測試結果進行比較。
基準線代理ID 評估多個代理程式時,用於比較的基準代理程式識別碼。 若未提供,則使用第一代理人。

要找到你的代理 ID 和版本,請在 Foundry 入口開啟你的專案,進入 代理,選擇你的代理,然後從詳細面板複製 代理 ID 。 版本是部署版本號(例如 my-agent:1)。

資料檔案

輸入資料檔應為 JSON 檔案,結構如下:

場地 類型 必須? 描述
名稱 字串 是的 評估資料集名稱。
評估工具 string[] 是的 用於評估的評估員名稱清單。 請在 Foundry 入口網站的評估者目錄中查看可用評估員名單:建構> 評估 > 評估者目錄
資料 物件[] 是的 輸入物件陣列,包括 query 和可選的評估器欄位,如 ground_truthcontext。 自動映射到評估工具,用 data_mapping 來覆寫。
openai_graders 物件 針對基於 OpenAI 的評估器(label_model、score_model、string_check 等)的配置。
評估者參數 物件 評估器專屬的初始化參數(例如閾值、自訂設定)。
資料映射 物件 自訂資料欄位映射(若未提供資料,則由資料自動生成)。

基本範例資料檔

{
  "name": "test-data",
  "evaluators": [
    "builtin.fluency",
    "builtin.task_adherence",
    "builtin.violence"
  ],
  "data": [
    {
      "query": "Tell me about Tokyo disneyland"
    },
    {
      "query": "How do I install Python?"
    }
  ]
}

額外範例資料檔案

檔案名稱 描述
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 動作,請將 GitHub 動作加入你的 CI/CD 工作流程。 指定觸發條件,例如提交時,以及觸發自動化工作流程的檔案路徑。

提示

為了降低成本,不要對每個提交紀錄都進行評估作業。

這個範例展示了當你使用代理人 ID 比較不同代理人時,如何執行 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 代理人評估結果輸出

評估結果會輸出到每個 AI 評估GitHub行動的摘要區塊,該行動在GitHubActions<>下執行。 報告中會顯示每個指標的評估分數、信賴區間,以及——當你評估多位代理人時——一個兩兩統計比較,用以判斷差異是否具有意義或屬於隨機變異範圍。

以下截圖展示了一份比較兩位代理人的範例報告。

GitHub Actions工作流摘要截圖,顯示兩位代理人的評估分數、信賴區間及成對統計比較。