Тестирование примеров курса
Проверьте, что тетради уроков и примеры кода запускаются с использованием живой
среды 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— конечная точка проекта Foundry (https://<account>.services.ai.azure.com/api/projects/<project>)AZURE_AI_MODEL_DEPLOYMENT_NAME— неустаревшее развертывание (например,gpt-5-mini)AZURE_OPENAI_ENDPOINT(https://<account>.openai.azure.com) иAZURE_OPENAI_DEPLOYMENTдля уроков, которые обращаются напрямую к Azure OpenAI (Урок 06, 02-azure-openai, 14 handoff/human-loop).
- Выполнен
az login— образцы аутентифицируются с помощьюAzureCliCredential(Entra ID, без ключа). - Проверьте, что развертывание модели существует:
az cognitiveservices account deployment list -g <rg> -n <account> -o table.
Запуск проверки
# Все блокноты Python (исключая .NET, .venv, site-packages, переводы, ресурсы навыков)
pwsh scripts/validate-notebooks.ps1
# Один урок с увеличенным временем ожидания на ячейку
pwsh scripts/validate-notebooks.ps1 -Filter '08-*' -Timeout 600
# Прекратить выполнение после вывода списка запускаемых элементов (без выполнения)
pwsh scripts/validate-notebooks.ps1 -List
# Явно указать интерпретатор (если `python` не в PATH, например, псевдоним из Windows Store)
pwsh scripts/validate-notebooks.ps1 -Python "C:/path/to/python.exe"
Скрипт записывает выполненные копии, логи для каждой тетради и results.json в
$env:TEMP\aiab-nbval и завершается с количеством ошибок.
Временные ошибки (ограничения по HTTP 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, ключ) — есть резервный путь в памяти |
| 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 runtime + загруженная модель Qwen (локально, без облака) |
тетради с *-dotnet-* |
.NET Interactive kernel (по умолчанию исключены; используйте -IncludeDotnet) |
Отчет о результатах
Подведите итог в виде таблицы PASS/FAIL по урокам. Разделите реальные регрессии
(ошибки кода/конфигурации, которые нужно исправить) и проблемы окружения (отсутствие Search/Foundry Local/PAT),
с указанием файла log_*.txt для каждой настоящей ошибки.
Отказ от ответственности: Этот документ был переведен с использованием сервиса машинного перевода Co-op Translator. Несмотря на наши усилия по обеспечению точности, имейте в виду, что автоматический перевод может содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется обратиться к профессиональному человеческому переводу. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования этого перевода.
Source: microsoft/ai-agents-for-beginners → translations/ru/.agents/skills/testing-course-samples/SKILL.md