Repository navigation
[Teams Chatbot] Unify performance evaluation cases - #17559
Jiaqi Zhang (JiaqiZhang-Dev) wants to merge 6 commits into
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
Azure Pipelines: Successfully started running 1 pipeline(s). 71 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
|
| Skill | Coverage | Associated Eval |
|---|---|---|
sdk-ai-bot-eval-dataset |
Missing | — |
sdk-ai-bot-run-evaluation |
Missing | — |
sdk-ai-bot-eval-dataset: No associated Eval with a named, nonempty stimulus was found in the skill folder.
sdk-ai-bot-run-evaluation: No associated Eval with a named, nonempty stimulus was found in the skill folder.
Eval-authoring guide · View Eval dashboard
Dashboard access requires corporate access/sign-in. It shows published historical results, not validation of this PR.
This checks associated Eval presence only. Semantic coverage of the skill's capabilities is not assessed.
Coverage warnings are nonblocking. This check does not run Evals or prove behavioral correctness. Existing lint failures remain blocking.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
🟡 Changes recommended
Valid staging rows can fail assertion checks, and full-only cases lose required empty tags during serialization, causing valid benchmark rows to be rejected.
2 open issues
What changed in this PR
Unifies the Teams QA bot’s evaluation datasets into a single performance corpus, using structured case identifiers and core/full selection.
Changes:
- Consolidates basic and performance cases under
perf/, withcoretags identifying representative coverage. - Adds scope selection to the evaluation runner and manual performance pipeline; removes separate offline and online pipelines.
- Updates dataset tooling, validation tests, documentation, and skills for the unified workflow.
| File | Description |
|---|---|
tools/sdk-ai-bots/perf-evaluation.yml |
Adds manual core/full selection and SDK agent coverage. |
tools/sdk-ai-bots/online-evaluation.yml |
Removes the weekly online pipeline. |
tools/sdk-ai-bots/offline-evaluation.yml |
Removes the separate offline pipeline. |
tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation/unit_tests/test_pure_logic.py |
Updates schema, selection, promotion, and pipeline tests. |
tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation/README.md |
Documents unified datasets and evaluation commands. |
tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation/evaluation_datasets/perf/sdkagent.jsonl |
Adds migrated SDK agent cases with IDs and tags. |
tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation/evaluation_datasets/perf/releasesupport.jsonl |
Assigns release-support case IDs and core tags. |
tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation/evaluation_datasets/perf/onboarding.jsonl |
Combines onboarding cases with IDs and tags. |
tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation/evaluation_datasets/perf/javascript.jsonl |
Combines JavaScript cases with IDs and tags. |
tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation/evaluation_datasets/perf/dotnet.jsonl |
Consolidates .NET cases and marks core coverage. |
tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation/evaluation_datasets/basic/sdkagent.jsonl |
Removes the separate SDK agent basic dataset. |
tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation/evaluation_datasets/basic/python.jsonl |
Removes the separate Python basic dataset. |
tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation/evaluation_datasets/basic/onboarding.jsonl |
Removes the separate onboarding basic dataset. |
tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation/evaluation_datasets/basic/mcpserver.jsonl |
Removes the separate MCP server basic dataset. |
tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation/evaluation_datasets/basic/javascript.jsonl |
Removes the separate JavaScript basic dataset. |
tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation/evaluation_datasets/basic/go.jsonl |
Removes the separate Go basic dataset. |
tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation/evaluation_datasets/basic/dotnet.jsonl |
Removes the separate .NET basic dataset. |
tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation/evals_run.py |
Validates and selects scope before evaluation. |
tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation/dataset/upload.py |
Targets the unified performance corpus. |
tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation/dataset/schema.py |
Adds structured IDs, tags, and scope validation. |
tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation/dataset/review.py |
Validates and sorts promoted performance cases. |
tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation/dataset/online_snapshot.py |
Removes online snapshot preparation. |
tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation/dataset/curate.py |
Removes basic datasets from curation lookups. |
tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation/dataset/backfill_dedup_key.py |
Limits backfill to performance and staging sets. |
tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation/dataset/_storage.py |
Updates the module description after snapshot removal. |
tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation/dataset/__init__.py |
Updates the documented module inventory. |
tools/sdk-ai-bots/azure-sdk-qa-bot-agent/DEVELOP.md |
Documents pipeline scope and recommended coverage. |
.github/skills/sdk-ai-bot-run-evaluation/SKILL.md |
Updates evaluation guidance for core/full runs. |
.github/skills/sdk-ai-bot-run-evaluation/references/running-evaluations.md |
Updates scope flags and single-case recipes. |
.github/skills/sdk-ai-bot-eval-dataset/SKILL.md |
Updates dataset identity and preparation guidance. |
.github/skills/sdk-ai-bot-eval-dataset/references/dataset-schema-and-workflows.md |
Documents IDs, tags, and unified dataset workflows. |
Review effort: Balanced
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
These are developer-only helper skills for the chatbot evaluation workflow. This PR only updates their guidance for the unified dataset and core/full options; it does not change routing or user-facing behavior. I don’t think dedicated skill evals are necessary, so we can accept this warning. |

Summary
perf-evaluation.ymlas the only one evaluation pipeline with core/full options and remove the offline and online evaluation pipeline.perf/<scenario>.jsonl, corpus with structuredtestcasevalue (for example,001003-version-required-to-optional) andcoretags.Current evaluation cases
Category counts use
core/full; full includes the core cases.Recommended practice
Validation
python -m pytest unit_tests -q— 42 passedpython -m dataset.validate evaluation_datasets\perf --require-reviewed— 361 cases across 12 filesgit diff --checkRelates to Azure/azure-sdk-pr#3273