Testowanie przykładów kursu
Sprawdź, czy notatniki lekcji i przykładowy kod działają na żywo
w konfiguracji Microsoft Foundry / Azure OpenAI. Repozytorium zawiera runner w
scripts/validate-notebooks.ps1, który
uruchamia każdy notatnik Pythona bez interfejsu i wyświetla macierz PASS/FAIL.
Kiedy używać
- "Zweryfikować wszystkie notatniki / przykłady na moim subskrypcji Azure."
- "Szybki test kursu po aktualizacji pakietów lub zmianie modeli."
- "Które lekcje nadal przechodzą / nie przechodzą na żywo?"
Nie używaj tego do AI Smoke Test GitHub Action (który weryfikuje wdrożonych
hostowanych agentów — patrz tests/README.md). To narzędzie
uruchamia notatniki lokalnie.
Wymagania wstępne (sprawdź najpierw)
- Python 3.12+ z zależnościami kursu:
python -m pip install -r requirements.txtplus wykonawcą:python -m pip install nbconvert ipykernel. .envw katalogu głównym repozytorium (skopiuj z.env.example) zawierający co najmniej:AZURE_AI_PROJECT_ENDPOINT— punkt końcowy projektu Foundry (https://<account>.services.ai.azure.com/api/projects/<project>)AZURE_AI_MODEL_DEPLOYMENT_NAME— nieprzestarzałe wdrożenie (np.gpt-5-mini)AZURE_OPENAI_ENDPOINT(https://<account>.openai.azure.com) iAZURE_OPENAI_DEPLOYMENTdla lekcji które bezpośrednio wywołują Azure OpenAI (Lekcja 06, 02-azure-openai, 14 handoff/human-loop).
- Ukończone
az login— próbki uwierzytelniają się przezAzureCliCredential(Entra ID, bez klucza). - Zweryfikuj, że wdrożenie modelu istnieje:
az cognitiveservices account deployment list -g <rg> -n <account> -o table.
Uruchomienie walidacji
# Wszystkie notatniki Pythona (pomija .NET, .venv, site-packages, tłumaczenia, zasoby umiejętności)
pwsh scripts/validate-notebooks.ps1
# Pojedyncza lekcja, z dłuższym limitem czasu na pojedynczą komórkę
pwsh scripts/validate-notebooks.ps1 -Filter '08-*' -Timeout 600
# Tylko lista tego, co by się uruchomiło (bez wykonywania)
pwsh scripts/validate-notebooks.ps1 -List
# Jawny interpreter (jeśli `python` nie jest w PATH, np. alias Windows Store)
pwsh scripts/validate-notebooks.ps1 -Python "C:/path/to/python.exe"
Skrypt zapisuje wykonane kopie, logi per-notebook i results.json do
$env:TEMP\aiab-nbval i kończy się liczbą błędów.
Przemijające błędy (limity HTTP 429 współdzielonej subskrypcji, okazjonalne
problemy z tokenem AzureCliCredential, lub timeout) są automatycznie powtarzane
(-Retries, domyślnie 2, z opóźnieniem -RetryDelaySeconds, domyślnie 20). Jeśli
wdrożenie modelu często powoduje 429, sprawdź globalny limit TPM subskrypcji standardowej
(az cognitiveservices usage list -l <region>) — zwiększenie pojemności pojedynczego
wdrożenia nic nie da gdy limit subskrypcji jest wyczerpany.
Interpretacja wyników
PASS— notatnik uruchomił się od początku do końca bez błędów w komórkach.FAIL— pokazana jest pierwsza linia*Error/*Exception; otwórz pasującylog_*.txtw katalogu wyjściowym, aby zobaczyć pełny traceback.- Pojedyncza nieudana próba notatnika objęta jest limitem
-Timeout(na komórkę), więc zablokowana komórka interaktywna powodujeStdinNotImplementedErrorzamiast zawieszenia.
Lekcje wymagające dodatkowych zasobów (oczekiwane niepowodzenia bez nich)
| Lekcja | Dodatkowy wymóg |
|---|---|
| 05 Agentic RAG | Azure AI Search (AZURE_SEARCH_SERVICE_ENDPOINT, klucz) — posiada ścieżkę awaryjną w pamięci |
| 11 MCP / GitHub | Serwer GitHub MCP + PAT |
| 13 pamięć (cognee) | cognee skonfigurowany z dostawcą modelu |
| 15 użycie przeglądarki | Zainstalowane przeglądarki Playwright (playwright install) + AZURE_OPENAI_CHAT_DEPLOYMENT_NAME |
| 17 lokalny agent | Lokalne środowisko Foundry + pobrany model Qwen (na urządzeniu, bez chmury) |
notatniki *-dotnet-* |
Jądro .NET Interactive (domyślnie wykluczone; użyj -IncludeDotnet) |
Raportowanie wyników
Podsumuj w tabeli PASS/FAIL pogrupowanej według lekcji. Oddziel rzeczywiste regresje
(błędy kodu/konfiguracji do naprawienia) od braków środowiskowych (brak Search/Foundry Local/PAT),
i wskaż odpowiedni log_*.txt dla każdego rzeczywistego błędu.
Zastrzeżenie: Niniejszy dokument został przetłumaczony za pomocą usługi tłumaczenia AI Co-op Translator. Choć dążymy do dokładności, prosimy pamiętać, że automatyczne tłumaczenia mogą zawierać błędy lub niedokładności. Oryginalny dokument w jego języku źródłowym należy uznawać za autorytatywne źródło. W przypadku informacji krytycznych zalecane jest skorzystanie z profesjonalnego tłumaczenia wykonanego przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z użycia tego tłumaczenia.
Source: microsoft/ai-agents-for-beginners → translations/pl/.agents/skills/testing-course-samples/SKILL.md