SuperAPI AI 工具集

testing-course-samples

测试与质量

查看项目

更新于 10-16 00:30

技能介绍

用途:验证课程仓库中的课程笔记本与代码示例能否在真实的 Microsoft Foundry / Azure OpenAI 环境中运行。仓库提供 scripts/validate-notebooks.ps1,可无头执行每个 Python 笔记本并打印 PASS/FAIL 矩阵。适用于“针对我的 Azure 订阅验证全部笔记本/示例”“升级包或更换模型后对课程做冒烟测试”“哪些课程在真实环境下仍通过/失败”等场景。注意:它不用于 AI Smoke Test GitHub Action(后者验证已部署的托管智能体,见 tests/README.md),本技能在本地运行笔记本。

前置条件:Python 3.12+,安装课程依赖 python -m pip install -r requirements.txt,以及执行器 python -m pip install nbconvert ipykernel。仓库根目录需有 .env(从 .env.example 复制),至少包含 AZURE_AI_PROJECT_ENDPOINT、AZURE_AI_MODEL_DEPLOYMENT_NAME;直接调用 Azure OpenAI 的课程(Lesson 06、02-azure-openai、14 handoff/human-loop)还需 AZURE_OPENAI_ENDPOINT 与 AZURE_OPENAI_DEPLOYMENT。需完成 az login,示例使用 AzureCliCredential(Entra ID,无密钥)。可用 az cognitiveservices account deployment list -g <rg> -n <account> -o table 确认模型部署存在。

运行方式:pwsh scripts/validate-notebooks.ps1 执行全部 Python 笔记本(跳过 .NET、.venv、site-packages、翻译与技能资源);用 -Filter '08-*' 与 -Timeout 600 运行单个课程并延长每单元超时;-List 仅列出将运行的内容;-Python 指定解释器。脚本将执行副本、每个笔记本日志与 results.json 写入 $env:TEMP\aiab-nbval,并以失败数量作为退出码。瞬时失败(429 限流、AzureCliCredential 令牌问题、超时)会自动重试(-Retries 默认 2,-RetryDelaySeconds 默认 20)。若部署频繁 429,检查订阅的 GlobalStandard TPM 配额(az cognitiveservices usage list -l <region>)。

结果解读:PASS 表示笔记本端到端运行且无单元错误;FAIL 显示首个 *Error / Exception 行,完整回溯见输出目录中对应的 log_.txt。单笔记本失败受 -Timeout(按单元)限制,挂起的人机回环单元会以 StdinNotImplementedError 呈现而非一直挂起。

需要额外资源、缺少时会失败的课程:05 Agentic RAG 需 Azure AI Search(AZURE_SEARCH_SERVICE_ENDPOINT、key,有内存回退路径);11 MCP / GitHub 需 GitHub MCP 服务器与 PAT;13 memory(cognee)需配置模型提供方的 cognee;15 browser-use 需安装 Playwright 浏览器(playwright install)与 AZURE_OPENAI_CHAT_DEPLOYMENT_NAME;17 local agent 需 Foundry Local 运行时与已下载的 Qwen 模型(本地,无云);-dotnet- 笔记本需 .NET Interactive 内核(默认排除,可用 -IncludeDotnet)。

汇报时建议按课程分组给出 PASS/FAIL 表,区分真实回归(需修复的代码/配置缺陷)与环境缺失(缺少 Search/Foundry Local/PAT),并为每个真实失败引用对应的 log_*.txt。