Fundamentals walkthrough: automate model deploy, wire hosted-agent azd deploy, refresh labs - #2
Merged
Merged
Conversation
- Add azure.yaml (infra + hosted-agent service) so azd recognizes the project - Auto-deploy gpt-5.4-mini + gpt-5.4-judge via AI_PROJECT_DEPLOYMENTS default in main.bicep; add deployment-name outputs - Rename hosted agent contoso-concierge -> contoso-travel-concierge (src, src.original, labs) - Fix hosted-agent deps: use agent-framework-foundry (+foundry-hosting), python_3_13 runtime, responses 2.0.0 - Provide data/json/ (upload-ready) since the vector index rejects CSV - Update Fundamentals labs 00-06 to match new Foundry nav + real azd flow; add screenshots - Devcontainer installs/updates azure.ai.agents extension - Add WIP banner to README; add missing artifacts/evaluators/reference dir
Nitya Narasimhan (nitya)
added a commit
that referenced
this pull request
Aug 19, 2026
* walkthrough(v2): mixed-path fix + per-lab progress banners - NEW scripts/link-portal-rg.sh: idempotent linker that binds an azd env to a portal-created rg-contoso-travel (discovers Foundry account + project, sets USE_EXISTING_AI_PROJECT, preempts the AI_PROJECT_DEPLOYMENTS JSON gotcha). Fixes the second-RG risk for UI->CLI learners (ref issue #2). - Lab 05: 'Path check' preface pointing portal-first learners at the linker. - Lab 02: forward-reference tip naming the linker. - Lab 00: mermaid warning box now names scripts/link-portal-rg.sh; new RG-context diagram in the Next section. - Lab 01: 'pre-flight your quota with Copilot' tip using the microsoft-foundry quota sub-skill (ref pre-flight 0.4). - specs/course.yaml: fix stale 'azd up' titles for 01-provision-azd (=> 'azd provision') and 05-deploy-hosted-agent (=> 'azd deploy') (ref 0.5a). - Fundamentals 00-06: add compact 'You are here' progress banner right after each 'This lab covers' callout, current lab highlighted in workshop teal (matches DevOps-loop active-node style). - AGENTS.md: new Known-gotcha bullet for the mixed UI->CLI second-RG risk. pytest -q: 14 passed. Tracked under nitya#4. * Added Troubleshooting.md - New labs/TROUBLESHOOTING.md as the single source of truth for cross-cutting gotchas (9 sections, Symptom/Cause/Fix/Prevent template). - Codified two-variant Gotcha convention in labs/_template/lab-template.md, specs/lab-template.schema.json, and AGENTS.md. - Shortened cross-cutting callouts in Lab 01/03/05 to one-liner + link. - Compressed AGENTS.md 'Known gotchas' from prose to terse pointers. - Added tests/test_lab_content.py::test_gotcha_callouts_follow_convention drift-check (15 passed). * data: shift booking dates +730d to keep workshop future-relative Every date in flights.csv, hotels.csv, car_rentals.csv (and JSON mirrors + src/ + src.original/ copies) was in 2025, i.e. in the past relative to today (2026-08-18). Concierge answers were reduced to 'no availability' for every current-date-aware query, tanking Lab 04 grounding demos and every downstream Core lab (Observe/Evaluate/Optimize/Monitor). Shift: exactly +730 days (2 non-leap years) applied to every date column across all four copies. Relative gaps preserved (hotel stays, car rentals remain the same length). No schema changes (regex was date-only). No test changes (no date content assertions). Parity across the three CSV copies confirmed byte-identical. pytest -q -> 15 passed. Range after shift: min 2027-08-15, max 2028-01-05. * data: evaluation-data-v2 (dates +2y to match CSV shift); labs point at v2 The earlier CSV date shift (+730d) moved every booking date into 2027-2028. The reference evaluation dataset still referenced 2025/2026 in queries, contexts, responses, and ground truths, which would fail evaluators against the new data. - New: artifacts/datasets/reference/evaluation-data-v2.jsonl — same 10 rows as v1, sed s/2025/2027/g s/2026/2028/g - v1 preserved unchanged per AGENTS.md reference-artifact versioning rule (never overwrite) - Bumped 5 references across labs/core/02-evaluate-portal.md, labs/core/05-capstone-hosted.md, and labs/more/continuous-eval.md from -v1 to -v2 - sample-prompts-v1.jsonl needed no update (uses only month names, year-agnostic) - pytest -q -> 15 passed * chore: ignore .foundry, .do-not-commit, and evaluation-data-v3 from tracking
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
End-to-end pass over the Fundamentals path while walking it live.
Highlights
azure.yaml(infra + hosted-agent service) so the repo is a validazdproject.AI_PROJECT_DEPLOYMENTSdefault ininfra/main.bicepnow deploysgpt-5.4-mini(concierge) +gpt-5.4-judge; addsAZURE_AI_MODEL_DEPLOYMENT_NAME/AZURE_AI_JUDGE_DEPLOYMENT_NAMEoutputs.azure.yamlservice block (host: azure.ai.agent,codeConfiguration,python_3_13, responses2.0.0); deps switched toagent-framework-foundry(+agent-framework-foundry-hosting) to resolve theagent-framework-coreconflict.contoso-concierge->contoso-travel-concierge(src, src.original, labs) for naming parity with the prompt agent.data/json/(the vector index rejects CSV).azdflow; embedded screenshots.azure.ai.agentsextension.artifacts/evaluators/reference/.