你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

如何在GitHub操作中运行评估(预览版)

重要

本文中标记为(预览)的项目目前以公共预览版提供。 此预览版在没有服务级别协议的情况下提供,不建议将其用于生产工作负荷。 某些功能可能不受支持,或者可能具有受限功能。 有关详细信息,请参阅 Microsoft Azure 预览版的使用条款

GitHub Action 允许在 CI/CD 管道中离线评估 Microsoft Foundry Agents。 它简化了脱机评估过程,因此你可以在将更新发布到生产之前识别潜在问题并做出改进。

若要使用此操作,请提供包含测试查询和计算器列表的数据集。 此操作启动您的代理,通过查询运行评估并生成摘要报告。

特征

  • Agent Evaluation:在 CI/CD 工作流中自动对 Microsoft Foundry 代理进行预生产评估。
  • 计算器:使用 Foundry 计算器目录中的任何计算器。
  • 统计分析:评估结果包括置信区间和统计重要性测试,以确定更改是否有意义,而不是由于随机变化。

评估者类别

先决条件

提示

建议的身份验证方法是使用 Microsoft Entra ID,可用于安全地连接到Azure资源。 可以使用 Azure Login GitHub 操作自动执行身份验证过程。 若要了解详细信息,请参阅 Azure OpenID Connect 登录操作

如何设置人工智能代理评估系统

AI 代理评估输入

参数

名字 必填? 描述
azure-ai-project-endpoint 是的 Microsoft Foundry 项目的终结点。 若要查找此值,请在 Foundry 门户中 打开项目,并从 “概述 ”页复制终结点。
部署名称 是的 要用于评估的Azure AI 模型部署的名称。 在 Foundry 门户中的“模型 + 终结点”下查找已有部署。
数据路径 是的 包含评估器和输入查询的数据文件路径。
代理标识符 (agent-ids) 是的 要评估的一个或多个智能体的 ID,格式为 agent-name:version(例如 my-agent:1my-agent:1,my-agent:2)。 多个代理以逗号分隔,与统计测试结果进行比较。
基线代理标识符 在评估多个代理时要进行比较的基线代理的 ID。 如果未提供,则使用第一个代理器。

注意

若要查找代理 ID 和版本,请在 Foundry 门户中打开项目,转到 代理,选择代理,然后从详细信息窗格中复制 代理 ID 。 版本是部署版本号(例如 my-agent:1)。

数据文件

输入数据文件应为具有以下结构的 JSON 文件:

领域 类型 必填? 描述
名字 字符串 是的 评估数据集的名称。
评估程序 string[] 是的 要使用的评估器名称列表。 在 Foundry 门户中查看项目评估器目录中的可用评估器列表: 生成 > 评估 > 评估器目录
数据 object[] 是的 具有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 代理的评估结果输出

评估结果输出到 GitHub 中“操作”下每个 AI 评估 GitHub Action 运行的摘要部分。 报告显示了每个指标的评估分数、置信区间,并在评估多个代理模型时提供成对的统计比较,以指示差异是显著的还是处于随机变动范围内。

以下屏幕截图显示了比较两个代理的示例报表。

&"c2><c1><c0><sb0>GitHub Actions 工作流摘要的屏幕截图,显示具有置信区间的代理评估分数,以及两个代理的成对统计比较。</sb0></c0></c1></c2"