Test dei Campioni del Corso
Verifica che i notebook delle lezioni e i campioni di codice funzionino con una configurazione live
Microsoft Foundry / Azure OpenAI. Il repo include un runner in
scripts/validate-notebooks.ps1 che
esegue ogni notebook Python senza interfaccia grafica e stampa una matrice PASS/FAIL.
Quando usare
- "Verificare tutti i notebook / campioni contro il mio abbonamento Azure."
- "Testare rapidamente il corso dopo l'aggiornamento dei pacchetti o la modifica dei modelli."
- "Quali lezioni passano/fallisco ancora live?"
Non usare questo per l'Azione GitHub AI Smoke Test (che verifica gli agenti distribuiti —
vedi tests/README.md). Questa skill
esegue i notebook localmente.
Prerequisiti (controllare prima)
- Python 3.12+ con dipendenze del corso:
python -m pip install -r requirements.txtpiù l'esecutore:python -m pip install nbconvert ipykernel. .envnella root del repo (copia da.env.example) con almeno:AZURE_AI_PROJECT_ENDPOINT— endpoint progetto Foundry (https://<account>.services.ai.azure.com/api/projects/<project>)AZURE_AI_MODEL_DEPLOYMENT_NAME— un deployment non deprecato (es.gpt-5-mini)AZURE_OPENAI_ENDPOINT(https://<account>.openai.azure.com) eAZURE_OPENAI_DEPLOYMENTper lezioni che chiamano direttamente Azure OpenAI (Lezione 06, 02-azure-openai, 14 handoff/human-loop).
az logincompletato — i campioni si autenticano conAzureCliCredential(Entra ID, senza chiavi).- Verificare che il deployment del modello esista:
az cognitiveservices account deployment list -g <rg> -n <account> -o table.
Come eseguire la validazione
# Tutti i notebook Python (esclude .NET, .venv, site-packages, traduzioni, risorse delle skill)
pwsh scripts/validate-notebooks.ps1
# Una singola lezione, con un timeout per cella più lungo
pwsh scripts/validate-notebooks.ps1 -Filter '08-*' -Timeout 600
# Elenca solamente ciò che verrebbe eseguito (nessuna esecuzione)
pwsh scripts/validate-notebooks.ps1 -List
# Interprete esplicito (se `python` non è nel PATH, es. alias del Windows Store)
pwsh scripts/validate-notebooks.ps1 -Python "C:/path/to/python.exe"
Lo script scrive copie eseguite, log per notebook e results.json in
$env:TEMP\aiab-nbval e termina con il numero di fallimenti.
Fallimenti transitori (limiti di velocità HTTP 429 su abbonamenti condivisi, un’occasionale
problema di token AzureCliCredential o timeout) vengono riprovati automaticamente
(-Retries, default 2, con backoff -RetryDelaySeconds, default 20). Se un
deployment del modello riceve regolarmente 429, controllare la quota TPM GlobalStandard
dell’abbonamento (az cognitiveservices usage list -l <regione>) — aumentare la capacità di un singolo
deployment non aiuta quando la quota dell’abbonamento è esaurita.
Interpretazione dei risultati
PASS— il notebook è stato eseguito dall’inizio alla fine senza errori nelle celle.FAIL— viene mostrata la prima riga*Error/*Exception; aprire il corrispondentelog_*.txtnella cartella output per il traceback completo.- Il fallimento di un singolo notebook è limitato da
-Timeout(per cella), così una cella human-in-the-loop bloccata appare comeStdinNotImplementedErrorinvece di bloccarsi.
Lezioni che necessitano di risorse aggiuntive (ci si aspetta un fallimento senza di esse)
| Lezione | Requisito extra |
|---|---|
| 05 Agentic RAG | Azure AI Search (AZURE_SEARCH_SERVICE_ENDPOINT, chiave) — ha una modalità fallback in memoria |
| 11 MCP / GitHub | Server GitHub MCP + PAT |
| 13 memory (cognee) | cognee configurato con un provider di modelli |
| 15 browser-use | Browser Playwright installati (playwright install) + AZURE_OPENAI_CHAT_DEPLOYMENT_NAME |
| 17 local agent | Runtime Foundry Local + un modello Qwen scaricato (on-device, senza cloud) |
notebook *-dotnet-* |
Kernel .NET Interactive (escluso di default; usare -IncludeDotnet) |
Segnalazione
Riassumere come tabella PASS/FAIL raggruppata per lezione. Separare regressioni reali
(bug di codice/configurazione da correggere) da lacune ambientali (mancanza di Search/Foundry Local/PAT),
e citare i log_*.txt che falliscono per ogni errore reale.
Disclaimer: Questo documento è stato tradotto utilizzando il servizio di traduzione AI Co-op Translator. Sebbene ci impegniamo per garantire la precisione, si prega di notare che le traduzioni automatizzate possono contenere errori o imprecisioni. Il documento originale nella sua lingua nativa deve essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda una traduzione professionale effettuata da un essere umano. Non siamo responsabili per eventuali malintesi o interpretazioni errate derivanti dall’uso di questa traduzione.
Source: microsoft/ai-agents-for-beginners → translations/it/.agents/skills/testing-course-samples/SKILL.md