[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M699SZD3E6H4WXWRBG06ZFC3":3,"skill-same:01M699SZD3E6H4WXWRBG06ZFC3":73},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":31,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":54,"ownerHtmlUrl":55,"ownerBlogUrl":56,"ownerDescription":57,"updatedAt":58,"install":59,"resources":72},"01M699SZD3E6H4WXWRBG06ZFC3","testing-course-samples",null,"Use when asked to validate, test, smoke-test, or run the course's notebook and code samples against a live Microsoft Foundry \u002F Azure OpenAI configuration. Covers environment setup (.env, az login, packages), the scripts\u002Fvalidate-notebooks.ps1 runner, interpreting PASS\u002FFAIL results, and which lessons need extra resources (Azure AI Search, GitHub MCP, Foundry Local, Playwright).","microsoft\u002Fai-agents-for-beginners","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M6998ZK2275KMJE6Y5SEA2X2",79567,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fro\u002F.agents\u002Fskills\u002Ftesting-course-samples\u002FSKILL.md",[18,23,26],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":27,"categoryName":28,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000039","教师与教育","PROFESSION","适用职业",[32,33,34,35,36,37,9,38,39,40,41,42,43],"testing","testing course samples","MCP","github","playwright","test","foundry","foundry local","microsoft foundry","validate","azure ai","setup","2026-11-10 10:12:30",false,"---\nname: testing-course-samples\ndescription: \"Use when asked to validate, test, smoke-test, or run the course's notebook and code samples against a live Microsoft Foundry \u002F Azure OpenAI configuration. Covers environment setup (.env, az login, packages), the scripts\u002Fvalidate-notebooks.ps1 runner, interpreting PASS\u002FFAIL results, and which lessons need extra resources (Azure AI Search, GitHub MCP, Foundry Local, Playwright).\"\n---\n# Testarea Exemplelor din Curs\n\nVerificați dacă caietele de lecție și exemplele de cod funcționează cu o configurare live\nMicrosoft Foundry \u002F Azure OpenAI. Repozitoriul include un executabil la\n[`scripts\u002Fvalidate-notebooks.ps1`](..\u002F..\u002F..\u002F..\u002F..\u002Fscripts\u002Fvalidate-notebooks.ps1) care\nrulează fiecare caiet Python fără interfață și afișează o matrice PASS\u002FFAIL.\n\n## Când să utilizați\n- \"Validarea tuturor caietelor \u002F exemplelor în raport cu abonamentul meu Azure.\"\n- \"Testare rapidă a cursului după actualizarea pachetelor sau schimbarea modelelor.\"\n- \"Care lecții mai trec \u002F eșuează live?\"\n\nNu utilizați **pentru** GitHub Action AI Smoke Test (care validează agenții *deployed*\ngăzduiți — vezi [`tests\u002FREADME.md`](..\u002F..\u002F..\u002Ftests\u002FREADME.md)). Această abilitate\nrulează caietele local.\n\n## Condiții preliminare (verificați întâi)\n1. **Python 3.12+** cu dependențele cursului: `python -m pip install -r requirements.txt`\n   plus executorul: `python -m pip install nbconvert ipykernel`.\n2. **`.env` la rădăcina repo-ului** (copiat din [`.env.example`](..\u002F..\u002F..\u002F..\u002F..\u002F.env.example)) cu cel puțin:\n   - `AZURE_AI_PROJECT_ENDPOINT` — punctul final al proiectului Foundry\n     (`https:\u002F\u002F\u003Caccount>.services.ai.azure.com\u002Fapi\u002Fprojects\u002F\u003Cproject>`)\n   - `AZURE_AI_MODEL_DEPLOYMENT_NAME` — un deployment neînvechit (de exemplu `gpt-5-mini`)\n   - `AZURE_OPENAI_ENDPOINT` (`https:\u002F\u002F\u003Caccount>.openai.azure.com`) și `AZURE_OPENAI_DEPLOYMENT`\n     pentru lecțiile care apelează direct Azure OpenAI (Lecția 06, 02-azure-openai, 14 handoff\u002Fhuman-loop).\n3. **`az login`** finalizat — exemplele se autentifică cu `AzureCliCredential` (Entra ID, fără cheie).\n4. Verificați existența deployment-ului modelului:\n   `az cognitiveservices account deployment list -g \u003Crg> -n \u003Caccount> -o table`.\n\n## Rularea validării\n```powershell\n# All Python notebooks (skips .NET, .venv, site-packages, translations, skill assets)\npwsh scripts\u002Fvalidate-notebooks.ps1\n\n# A single lesson, with a longer per-cell timeout\npwsh scripts\u002Fvalidate-notebooks.ps1 -Filter '08-*' -Timeout 600\n\n# Just list what would run (no execution)\npwsh scripts\u002Fvalidate-notebooks.ps1 -List\n\n# Explicit interpreter (if `python` is not on PATH, e.g. Windows Store alias)\npwsh scripts\u002Fvalidate-notebooks.ps1 -Python \"C:\u002Fpath\u002Fto\u002Fpython.exe\"\n```\nScriptul scrie copii executate, jurnale pe caiet și `results.json` în\n`$env:TEMP\\aiab-nbval` și iese cu numărul erorilor.\n\nEșecurile tranzitorii (limitele de rată HTTP 429 pe abonamente partajate, o\nezitare ocazională a token-ului `AzureCliCredential`, sau un timeout) sunt reîncercate automat\n(`-Retries`, implicit 2, cu retragere `-RetryDelaySeconds`, implicit 20). Dacă un\ndeployment de model produce frecvent eroarea 429, verificați cota GlobalStandard\nTPM a abonamentului (`az cognitiveservices usage list -l \u003Cregion>`) — creșterea capacității unui\nsingur deployment nu ajută dacă *cota* abonamentului este epuizată.\n\n## Interpretarea rezultatelor\n- `PASS` — caietul a rulat complet fără eroare într-o celulă.\n- `FAIL` — este afișat primul rând `*Error` \u002F `*Exception`; deschideți fișierul\n  `log_*.txt` corespunzător din directorul de ieșire pentru urmărirea completă a erorii.\n- O singură eroare a unui caiet este limitată la `-Timeout` (pe celulă), astfel încât o celulă\n  uman-in-the-loop blocată apare ca `StdinNotImplementedError` și nu rămâne blocată.\n\n## Lecții care necesită resurse suplimentare (se așteaptă să eșueze fără ele)\n| Lecția | Cerință suplimentară |\n|--------|-------------------|\n| 05 Agentic RAG | Azure AI Search (`AZURE_SEARCH_SERVICE_ENDPOINT`, cheie) — are o rută fallback în memorie |\n| 11 MCP \u002F GitHub | Server GitHub MCP + PAT |\n| 13 memorare (cognee) | `cognee` configurat cu un furnizor de model |\n| 15 folosire browser | Browsere Playwright instalate (`playwright install`) + `AZURE_OPENAI_CHAT_DEPLOYMENT_NAME` |\n| 17 agent local | Runtime Foundry Local + model Qwen descărcat (pe dispozitiv, fără cloud) |\n| Caiete `*-dotnet-*` | Kernel .NET Interactive (exclus implicit; folosiți `-IncludeDotnet`) |\n\n## Raportare înapoi\nRezumați într-un tabel PASS\u002FFAIL grupat pe lecție. Separați regresiile reale\n(bug-uri de cod\u002Fconfigurație de reparat) de lipsurile din mediu (Search\u002FFoundry Local\u002FPAT lipsă),\nși citați `log_*.txt` care eșuează pentru fiecare eșec real.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Declinare a responsabilității**:\nAcest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). În timp ce ne străduim pentru acuratețe, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa nativă trebuie considerat sursa autorizată. Pentru informații critice, se recomandă traducerea profesională realizată de un om. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care decurg din utilizarea acestei traduceri.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->","# Testarea Exemplelor din Curs\n\nVerificați dacă caietele de lecție și exemplele de cod funcționează cu o configurare live\nMicrosoft Foundry \u002F Azure OpenAI. Repozitoriul include un executabil la\n[`scripts\u002Fvalidate-notebooks.ps1`](..\u002F..\u002F..\u002F..\u002F..\u002Fscripts\u002Fvalidate-notebooks.ps1) care\nrulează fiecare caiet Python fără interfață și afișează o matrice PASS\u002FFAIL.\n\n## Când să utilizați\n- \"Validarea tuturor caietelor \u002F exemplelor în raport cu abonamentul meu Azure.\"\n- \"Testare rapidă a cursului după actualizarea pachetelor sau schimbarea modelelor.\"\n- \"Care lecții mai trec \u002F eșuează live?\"\n\nNu utilizați **pentru** GitHub Action AI Smoke Test (care validează agenții *deployed*\ngăzduiți — vezi [`tests\u002FREADME.md`](..\u002F..\u002F..\u002Ftests\u002FREADME.md)). Această abilitate\nrulează caietele local.\n\n## Condiții preliminare (verificați întâi)\n1. **Python 3.12+** cu dependențele cursului: `python -m pip install -r requirements.txt`\n   plus executorul: `python -m pip install nbconvert ipykernel`.\n2. **`.env` la rădăcina repo-ului** (copiat din [`.env.example`](..\u002F..\u002F..\u002F..\u002F..\u002F.env.example)) cu cel puțin:\n   - `AZURE_AI_PROJECT_ENDPOINT` — punctul final al proiectului Foundry\n     (`https:\u002F\u002F\u003Caccount>.services.ai.azure.com\u002Fapi\u002Fprojects\u002F\u003Cproject>`)\n   - `AZURE_AI_MODEL_DEPLOYMENT_NAME` — un deployment neînvechit (de exemplu `gpt-5-mini`)\n   - `AZURE_OPENAI_ENDPOINT` (`https:\u002F\u002F\u003Caccount>.openai.azure.com`) și `AZURE_OPENAI_DEPLOYMENT`\n     pentru lecțiile care apelează direct Azure OpenAI (Lecția 06, 02-azure-openai, 14 handoff\u002Fhuman-loop).\n3. **`az login`** finalizat — exemplele se autentifică cu `AzureCliCredential` (Entra ID, fără cheie).\n4. Verificați existența deployment-ului modelului:\n   `az cognitiveservices account deployment list -g \u003Crg> -n \u003Caccount> -o table`.\n\n## Rularea validării\n```powershell\n# All Python notebooks (skips .NET, .venv, site-packages, translations, skill assets)\npwsh scripts\u002Fvalidate-notebooks.ps1\n\n# A single lesson, with a longer per-cell timeout\npwsh scripts\u002Fvalidate-notebooks.ps1 -Filter '08-*' -Timeout 600\n\n# Just list what would run (no execution)\npwsh scripts\u002Fvalidate-notebooks.ps1 -List\n\n# Explicit interpreter (if `python` is not on PATH, e.g. Windows Store alias)\npwsh scripts\u002Fvalidate-notebooks.ps1 -Python \"C:\u002Fpath\u002Fto\u002Fpython.exe\"\n```\nScriptul scrie copii executate, jurnale pe caiet și `results.json` în\n`$env:TEMP\\aiab-nbval` și iese cu numărul erorilor.\n\nEșecurile tranzitorii (limitele de rată HTTP 429 pe abonamente partajate, o\nezitare ocazională a token-ului `AzureCliCredential`, sau un timeout) sunt reîncercate automat\n(`-Retries`, implicit 2, cu retragere `-RetryDelaySeconds`, implicit 20). Dacă un\ndeployment de model produce frecvent eroarea 429, verificați cota GlobalStandard\nTPM a abonamentului (`az cognitiveservices usage list -l \u003Cregion>`) — creșterea capacității unui\nsingur deployment nu ajută dacă *cota* abonamentului este epuizată.\n\n## Interpretarea rezultatelor\n- `PASS` — caietul a rulat complet fără eroare într-o celulă.\n- `FAIL` — este afișat primul rând `*Error` \u002F `*Exception`; deschideți fișierul\n  `log_*.txt` corespunzător din directorul de ieșire pentru urmărirea completă a erorii.\n- O singură eroare a unui caiet este limitată la `-Timeout` (pe celulă), astfel încât o celulă\n  uman-in-the-loop blocată apare ca `StdinNotImplementedError` și nu rămâne blocată.\n\n## Lecții care necesită resurse suplimentare (se așteaptă să eșueze fără ele)\n| Lecția | Cerință suplimentară |\n|--------|-------------------|\n| 05 Agentic RAG | Azure AI Search (`AZURE_SEARCH_SERVICE_ENDPOINT`, cheie) — are o rută fallback în memorie |\n| 11 MCP \u002F GitHub | Server GitHub MCP + PAT |\n| 13 memorare (cognee) | `cognee` configurat cu un furnizor de model |\n| 15 folosire browser | Browsere Playwright instalate (`playwright install`) + `AZURE_OPENAI_CHAT_DEPLOYMENT_NAME` |\n| 17 agent local | Runtime Foundry Local + model Qwen descărcat (pe dispozitiv, fără cloud) |\n| Caiete `*-dotnet-*` | Kernel .NET Interactive (exclus implicit; folosiți `-IncludeDotnet`) |\n\n## Raportare înapoi\nRezumați într-un tabel PASS\u002FFAIL grupat pe lecție. Separați regresiile reale\n(bug-uri de cod\u002Fconfigurație de reparat) de lipsurile din mediu (Search\u002FFoundry Local\u002FPAT lipsă),\nși citați `log_*.txt` care eșuează pentru fiecare eșec real.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Declinare a responsabilității**:\nAcest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). În timp ce ne străduim pentru acuratețe, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa nativă trebuie considerat sursa autorizată. Pentru informații critice, se recomandă traducerea profesională realizată de un om. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care decurg din utilizarea acestei traduceri.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->",{"name":5,"description":7},"main","f09e94ffe170f8af6d3db7c42987bbe4db227723","translations\u002Fro\u002F.agents\u002Fskills\u002Ftesting-course-samples",26057,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners","https:\u002F\u002Faka.ms\u002Fai-agents-beginners","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-07 12:51:12",{"source":8,"skillName":5,"commands":60,"prompt":70,"zipAvailable":71},[61,64,67],{"tool":62,"command":63},"npx","npx skills add microsoft\u002Fai-agents-for-beginners --skill testing-course-samples",{"tool":65,"command":66},"bunx","bunx skills add microsoft\u002Fai-agents-for-beginners --skill testing-course-samples",{"tool":68,"command":69},"pnpm","pnpm dlx skills add microsoft\u002Fai-agents-for-beginners --skill testing-course-samples","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fro\u002F.agents\u002Fskills\u002Ftesting-course-samples\u002FSKILL.md",true,[],[74,81,90,98,106,113],{"skillNo":75,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":80,"publishedAt":44},"01M69A206TRZ8KK0CW0HYJF5V5","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Ftesting-course-samples\u002FSKILL.md",[78,79],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":27,"categoryName":28,"taxonomyType":29,"taxonomyTypeDesc":30},[32,33],{"skillNo":82,"name":83,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":87,"publishedAt":44},"01M69A1XRB2SFHYRMEH0K08EKZ","microsoft-docs","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Fmicrosoft-docs\u002FSKILL.md",[86],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[88,9,89],"docs","microsoft docs",{"skillNo":91,"name":92,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":95,"publishedAt":44},"01M69A1VPZFJQ1HNGTZQ5P3WSC","local-ai-agents","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Flocal-ai-agents\u002FSKILL.md",[],[96,97],"ai agents","local ai agents",{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":104,"publishedAt":44},"01M69A1S947N7MM6V9JF85S2E7","jupyter-notebook","當使用者要求建立、搭建或編輯 Jupyter 筆記本（`.ipynb`）用於實驗、探索或教學時使用；優先使用隨附範本並執行輔助腳本 `new_notebook.py` 來產生一個乾淨的起始筆記本。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Fjupyter-notebook\u002FSKILL.md",[],[105],"jupyter notebook",{"skillNo":107,"name":108,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":111,"publishedAt":44},"01M69A1Q8EXPWKZSQK69V6WF22","deploying-scalable-agents","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Fdeploying-scalable-agents\u002FSKILL.md",[],[112],"deploying scalable agents",{"skillNo":114,"name":115,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":118,"publishedAt":44},"01M69A1MHZTH3RH9N8VYSYG74X","azure-openai-to-responses","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Fazure-openai-to-responses\u002FSKILL.md",[],[119],"azure openai to responses"]