通过


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

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

重要

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

GitHub 操作 允许在 CI/CD 管道中脱机评估 Microsoft Foundry 代理。 它旨在简化脱机评估过程,以便在将更新发布到生产之前识别潜在问题并进行改进。

若要使用此操作,请提供包含测试查询和评估者列表的数据集。 此操作借助查询调用代理,运行评估并生成摘要报告。

Features

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

评估类别

先决条件

小窍门

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

如何设置 AI 代理评估

AI 代理评估输入

参数

姓名 Required? Description
azure-ai-project-endpoint 是的 Microsoft Foundry 项目的终结点。
deployment-name 是的 要用于评估的 Azure AI 模型部署的名称。
数据路径 是的 包含评估者和输入查询的数据文件路径。
代理标识符IDs 是的 要以格式 agent-name:version 评估的一个或多个代理的 ID(例如,my-agent:1my-agent:1,my-agent:2)。 多个代理以逗号分隔,与统计测试结果进行比较。
基线代理标识符 在评估多个代理时要进行比较的基线代理的 ID。 如果未提供,则使用第一个代理。

数据文件

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

字段 类型 Required? Description
姓名 字符串 是的 评估数据集的名称。
评估程序 字符串[] 是的 要使用的评估器名称列表。 在 Foundry 门户中查看项目评估器目录中的可用评估器列表: 生成 > 评估 > 评估器目录
数据 object[] 是的 具有query和可选评估器字段的输入对象数组,例如ground_truthcontext。 自动映射到评估器;使用 data_mapping 覆盖。
OpenAI评分器 对象 基于 OpenAI 的评估程序(label_model、score_model、string_check等)的配置。
评估器参数 对象 特定于评估器的初始化参数(例如阈值、自定义设置)。
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?"
    }
  ]
}

其他示例数据文件

Filename 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操作,请将 GitHub操作添加到 CI/CD 工作流。 指定触发器条件,例如提交时,以及触发自动化工作流的文件路径。

小窍门

若要最大程度地降低成本,请不要在每次提交时运行评估。

此示例演示如何在使用代理 ID 比较不同的代理时运行 Azure 代理 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 运行的摘要部分。

下面是用于比较两个代理的示例报告。

GitHub Action 中代理评估结果的屏幕截图。