从 Microsoft Foundry 门户运行评估
说明如何在 Microsoft Foundry 门户中选择评估目标、范围和数据源,映射字段,选用质量与安全评估器,并提交运行。

目录
重要
本文中标记为预览(preview)的项目目前处于预览阶段。此预览不提供服务级别协议,Microsoft 不建议将其用于生产工作负载。某些功能可能不受支持,或能力受限。更多信息请参阅《Microsoft Azure 预览版补充使用条款》(Supplemental Terms of Use for Microsoft Azure Previews)。
通过运行衡量性能、质量和安全的评估(evaluation),测试你的生成式 AI 模型与智能体(agent)。在部署前使用评估来验证行为,或在部署后用来监控生产质量。评估让你的模型或智能体对照测试数据运行,并用内置或自定义评估器为输出打分。
本文说明如何在 Foundry 门户中创建并运行评估。
先决条件
- 一个 Azure 订阅。可免费创建一个。
- 一个 Microsoft Foundry 项目。如果还没有,请创建一个项目。
- 根据评估目标,具备以下之一:智能体评估:项目中的一个智能体。模型评估:一个已部署的模型,或一个可即时访问的模型。数据集评估:一份 CSV 或 JSONL 格式的测试数据集,其中包含已有的模型或智能体输出。
- 一个带有已部署 GPT 模型的 Azure OpenAI 连接(例如 gpt-4.1-mini)。AI 辅助的质量评估需要它。
- 对 Foundry 项目拥有 Foundry User 角色。更多信息请参阅《Microsoft Foundry 的基于角色的访问控制》(Role-based access control for Microsoft Foundry)。重要 Foundry 的 RBAC 角色最近已更名。Foundry User、Foundry Owner、Foundry Account Owner 和 Foundry Project Manager 先前分别名为 Azure AI User、Azure AI Owner、Azure AI Account Owner 和 Azure AI Project Manager。在更名推广期间,你仍可能在某些地方看到先前的名称。角色 ID 和核心权限不因更名而改变。
- 有关全部评估角色要求,请参阅《为评估工作流设置权限》(Set up permissions for evaluation workflows)。
选择评估方法
根据你要测试的内容选择评估方法:
| 目标 | 范围 | 数据源 | 最适合 |
|---|---|---|---|
| 智能体 | 完整对话 | 模拟数据 | 在部署前用合成场景测试端到端智能体行为。 |
| 智能体 | 完整对话 | 现有对话 | 评估真实用户交互,以监控生产质量。 |
| 智能体 | 单个回合 | 现有数据集 | 调试特定智能体响应、测试工具使用、做细粒度分析。 |
| 智能体 | 单个回合 | 合成数据 | 用生成的查询测试单回合问答或 RAG 场景。 |
| 智能体 | 单个回合 | 现有追踪 | 评估项目中的历史智能体追踪。 |
| 模型 | 单个回合 | 合成数据 | 用生成的提示词测试模型补全。 |
| 模型 | 单个回合 | 现有数据集 | 对照整理好的测试集为模型性能做基准测试。 |
| 数据集 | 单个回合 | (数据集即目标) | 评估已有输出,而不重新运行模型或智能体。 |
提示
从智能体 > 完整对话 > 模拟数据开始,在受控场景中测试智能体行为。智能体进入生产后,使用现有对话来监控真实表现。
创建评估
你可以从 Foundry 门户的多个位置开始一次评估:
- 评估页:从左侧窗格选择 Evaluation > Create。
- 模型页:进入你的模型,选择 Evaluation 选项卡,然后选择 Create。
- 智能体页:进入你的智能体,选择 Evaluation 选项卡,然后选择 Create。
- 智能体操练场:进入你的智能体,选择 Playground 选项卡,然后选择 Metrics > Run full evaluation。
步骤 1:选择评估目标
创建评估时,首先选择评估目标。目标决定评估对照什么运行:
| 目标 | 说明 |
|---|---|
| 智能体 | 评估由你选定的智能体和用户定义的输入所生成的输出。适用于提示词智能体和托管智能体(hosted agent)。 |
| 模型 | 评估由你选定的模型和用户定义的提示词所生成的输出。 |
| 数据集 | 评估测试数据集中已有的模型或智能体输出。 |
| 追踪 | 评估已经在 Application Insights 中捕获的智能体交互。选择智能体和时间范围,门户会检索匹配的追踪用于评估。SDK 对应做法请参阅《追踪评估》(Trace evaluation)。 |
提示
即时访问(Instant access):即时访问是无需创建部署即可立即使用的无部署模型。创建评估时,你可以直接从模型选择器中选择一个即时模型,作为评估目标或评判模型。
步骤 2:选择评估范围
注意
此步骤仅对智能体和数据集目标出现。模型评估始终使用单个回合。
选择你希望如何评估智能体的表现:
| 范围 | 说明 | 最适合 |
|---|---|---|
| 完整对话(预览) | 从头到尾评估完整的多回合对话。度量整体对话质量、任务完成和用户满意度。 | 测试端到端智能体体验、客户满意度和对话流程。 |
| 单个回合 | 评估对话中的单条智能体响应。度量每回合指标,例如工具选择准确性和响应质量。 | 调试特定智能体行为、测试工具使用和细粒度分析。 |
步骤 3:选择数据源
数据源选项取决于你的评估目标和范围。
#### 用于对话评估(智能体 > 完整对话)(预览)
选择对话数据的来源:
##### 模拟数据
通过让智能体对照数据集中的场景描述运行,生成合成对话。使用此选项,在部署前于受控场景中测试智能体行为。
- 选择 Simulated data。
- 选择 Generate,打开模拟配置对话框。
- 选择你的文件:选择一份包含场景描述的数据集。数据集中的每一行描述一个用于生成模拟对话的场景。
- 选择模型:选择在对话中模拟用户的模型:gpt-4.1(推荐用于复杂场景)、gpt-4o、gpt-4o-mini、gpt-4.1-mini。
- 配置模拟设置:每个场景的模拟对话数:为数据集中的每一行生成多少段对话(1-5)。每个场景多段对话有助于识别智能体行为的差异。每段对话的回合数:每段对话允许的最大回合数(1-50)。任务完成或达到此限制时,对话结束。
- 选择 Confirm,保存你的模拟配置。
##### 现有对话
评估智能体已经与用户进行过的真实对话。
- 选择 Existing conversations。
- 配置筛选选项:对话数:从日期范围中抽样的最大对话数(1-100)。时间范围:按时间段筛选对话。使用快速筛选(Last Day、7D、1M、3M),或选择自定义日期范围。
- 浏览并选择要纳入评估的特定对话。
#### 用于单个回合评估
选择评估数据的来源:
##### 合成数据
使用 AI 生成测试查询。选择 Synthetic,并配置行数以及描述要生成数据的提示词。你也可以上传文件以提高相关性。
注意
合成数据生成需要具备 Responses API 能力的模型。可用性请参阅《Responses API 区域可用性》(Responses API region availability)。
##### 现有数据集
使用 CSV 或 JSONL 格式的已准备数据集。选择 Existing dataset,并从项目的数据资产中选择一个文件。仅支持 CSV 和 JSONL 文件格式。
##### 现有追踪(仅智能体)
评估项目中的历史智能体追踪。选择 Existing traces,并按日期范围筛选以选择追踪。
#### 多模态内容(预览)
所有评估目标都支持图像和音频内容。每种内容类型使用特定的 JSONL 模式:
图像内容:
- image_url:图像,可以是数据 URI(例如 data:image/png;base64,...),或可公开访问的 URL。
- caption:对图像内容的文字描述。
{"image_url": "data:image/png;base64,iVBOR...", "caption": "A red to blue color gradient"}音频内容:
- audio_data:音频,为带有 base64 编码 WAV 数据的数据 URI(例如 data:audio/wav;base64,...)。
- expected:对预期音频内容的文字描述。
注意
目前仅支持 WAV 音频格式。
{"audio_data": "data:audio/wav;base64,UklGR...", "expected": "A short beep tone at 440 Hz"}数据集也可以使用聊天消息对话格式,其中音频和图像数据作为数据 URI 或可公开访问的 URL,嵌入在单个聊天消息列中。
以下示例展示一个嵌入了图像和音频内容的对话数据集列:
[
{
"role": "system",
"content": "..."
},
{
"role": "user",
"content": [
{
"type": "text",
"text": "What are in these images?"
},
{
"type": "image_url",
"image_url": {
"url": "https://example.com/path/image.png"
}
},
{
"type": "image_url",
"image_url": {
"url": "data:image/png;base64,iVBORw0KGgo..."
}
}
]
},
{
"role": "assistant",
"content": "..."
},
{
"role": "user",
"content": [
{
"type": "text",
"text": "Tell me the tones for the voices?"
},
{
"type": "input_audio",
"input_audio": {
"data": "https://example.com/path/voice.wav",
"format": "wav"
}
},
{
"type": "input_audio",
"input_audio": {
"data": "data:audio/wav;base64,UklGRigAAA...",
"format": "wav"
}
}
]
}
]你可以在评估创建流程和评估结果视图中直接预览图像并播放音频片段。
步骤 4:配置智能体
注意
此步骤仅对智能体评估出现。
自定义智能体在评估期间的行为:
- 审阅参与评估的智能体列表。
- 对每个智能体,选择 Configure 以自定义其行为:系统提示词:为本次评估修改智能体指令。用户提示词:指定评估期间如何把每个数据集项发送给你的智能体。
- 评估运行会保留智能体配置。
#### 用户提示词配置
用户提示词定义测试输入如何传递给你的智能体。默认情况下,门户使用 {{item.query}} 把数据集查询直接传给智能体。
在大多数情况下,你可以使用默认值。仅当你的智能体期望不同的输入格式时才更改此值。例如,智能体使用托管智能体协议,或需要带有附加字段的结构化输入。
常见模式:
| 格式 | 何时使用 |
|---|---|
{{item.query}} | 默认。直接传递数据集中的 query 字段。 |
{{item.messages}} | 用于期望以对话历史作为输入的智能体。 |
| 自定义 JSON | 用于需要结构化请求体的托管智能体或 API。 |
提示
使用自定义提示词来测试数据集中可能不会自然出现的边界情况或特定场景。
步骤 5:配置字段映射
注意
当你使用现有数据(现有对话、现有数据集或现有追踪)时,此步骤会出现。
把你的数据字段映射到每个评估器期望的字段。所需字段取决于你的评估范围。
#### 用于对话评估(多回合)
| 字段 | 说明 | 是否必填 |
|---|---|---|
| messages | 聊天格式的对话消息。 | 是 |
| tool_definitions | 智能体可用的工具或函数定义。 | 是 |
#### 用于单个回合评估(单回合)
| 字段 | 说明 | 是否必填 |
|---|---|---|
| query | 用户查询或提示词。 | 是 |
| response | 模型或智能体响应。 | 是 |
| context | 为 RAG 场景检索到的上下文。 | 否 |
| ground_truth | 用于比较的预期正确答案。 | 否 |
| tool_calls | 智能体作出的工具调用。 | 否 |
| tool_definitions | 可用的工具定义。 | 否 |
门户会自动尝试映射你的数据集字段。如果某个字段显示为 Unassigned,选择下拉菜单,从数据集中手动指定一列。
注意
必填字段标有星号(*)。如果必填字段仍为未指定,评估器会失败。
步骤 6:选择测试标准
选择用于评估的评估器。Microsoft Foundry 提供三类内置评估器。可用评估器取决于你的评估范围。
#### 智能体评估器
评估智能体处理任务、工具和用户意图的有效程度。仅适用于单个回合范围。
| 评估器 | 说明 |
|---|---|
| Intent Resolution | 度量智能体是否正确识别并处理了用户意图。 |
| Task Adherence | 度量智能体遵循指令和约束的程度。 |
| Tool Call Success | 评估工具调用是否成功执行。 |
| Tool Selection | 度量智能体是否为任务选择了合适的工具。 |
| Tool Output Utilization | 评估智能体在响应中使用工具输出的有效程度。 |
| Tool Input Accuracy | 度量智能体是否向工具提供了正确输入。 |
| Tool Call Accuracy | 工具使用的总体准确性。 |
#### 质量评估器
度量生成响应的整体质量。大多数质量评估器适用于全部评估范围。标有 ★ 的评估器同时支持对话级和回合级分析。
| 评估器 | 说明 | 对话支持 |
|---|---|---|
| Customer Satisfaction | 预测用户对智能体交互的满意度。 | ★ |
| Task Completion | 评估智能体是否成功完成所请求的任务。 | ★ |
| Coherence | 度量响应的逻辑流程和一致性。 | ★ |
| Groundedness | 度量响应是否立足于所提供的上下文。 | ★ |
| Response Completeness | 评估响应是否充分回应了用户查询。 | — |
| Fluency | 评估自然语言质量。 | — |
| Relevance | 评估响应与查询的相关程度。 | — |
#### 安全评估器
识别潜在的内容和安全风险。仅适用于单个回合范围。
| 评估器 | 说明 |
|---|---|
| Violence | 检测响应中的暴力内容。 |
| Sexual | 检测性内容。 |
| Self-harm | 检测与自我伤害相关的内容。 |
| Hate/Unfairness | 检测仇恨或偏见内容。 |
门户会根据你的评估目标和范围预选推荐的评估器:
- 完整对话:Customer Satisfaction、Task Completion、Coherence、Groundedness
- 单个回合(现有数据):全部智能体评估器,加上质量和安全评估器
- 单个回合(合成/追踪):Relevance、Groundedness、Fluency、Coherence
提示
你可以按需添加或移除评估器。选择 Custom evaluators,以使用你在项目中定义的评估器。
步骤 7:审阅并提交
- 为你的评估输入名称。
- 审阅你的配置:评估目标与范围、数据源与数据集、所选评估器、字段映射(如适用)。
- 选择 Submit 开始评估。
提交之后,评估运行即开始。评估通常在几分钟内完成,具体取决于数据集大小和正在模拟的对话数量。
要验证评估已成功开始:
- 在左侧窗格中选择 Evaluation。
- 在列表中找到你的评估。Status 列显示当前状态:In Progress:评估正在运行。Completed:评估成功完成。Partial:部分评估器完成,但其他评估器失败。Failed:评估遇到错误。
要查看详细结果,选择评估名称,或参阅《查看评估结果》(View the evaluation results)。
提示
对于编程方式的评估工作流,使用 Azure AI Evaluation SDK。请参阅《如何使用 SDK 运行批量评估》(How to run batch evaluation with the SDK)。
故障排除
评估超时或运行缓慢
- 减少对话数量或数据集行数。
- 对于模拟,降低每段对话的最大回合数。
- 检查你的评判模型是否有足够配额。
字段映射错误
- 确认你的数据集包含评估范围所需的列。
- 对于对话评估,确保 messages 列包含格式正确的聊天消息。
- 检查数据集中的列名是否与预期字段名匹配。
模型配额超出
- 用于 AI 辅助评估的评判模型计入你的 Azure OpenAI 配额。
- 使用更小的数据集,或等待配额刷新。
- 考虑使用 gpt-4.1-mini 而不是 gpt-4.1,以进行成本更低的评估。
最佳实践
对于基于模拟的评估
- 从小处开始:先每个场景 1 段对话、5-10 个回合,在扩大规模前验证你的设置。
- 多样场景:包含多种场景描述,以测试不同的智能体能力。
- 迭代提示词:如果智能体行为不符合预期,使用配置智能体步骤调整提示词。
对于现有对话评估
- 代表性样本:选择代表典型用户交互的对话。
- 包含边界情况:不要只评估成功的对话——纳入有挑战的场景。
- 定期评估:安排重复评估,以跟踪智能体表现随时间的变化。
对于模型评估
- 基准数据集:使用标准化数据集,跨版本比较模型表现。
- 同时测试已部署模型和即时访问:把你的微调部署与基础模型进行比较。
对于数据集评估
- 预先计算输出:离线生成输出并批量评估,以提高成本效率。
- 为数据集建立版本:跟踪哪个数据集版本产生了哪些评估结果。
一般提示
- 比较评估器:让同一份数据通过多个评估器,以获得全面视图。
- 跟踪趋势:使用评估历史识别性能改进或回退。
- 根据结果采取行动:用评估洞察改进智能体提示词、工具定义和配置。
PRIMARY_SOURCE: https://learn.microsoft.com/en-us/azure/foundry/how-to/evaluate-generative-ai-app
- #门户评估
- #质量评估
- #安全评估
- #Foundry


