AI Instructor Live Labs Included

AI-103: Developing AI Apps and Agents on Azure for Python Developers

Build production-ready generative AI solutions and agents on Azure using Microsoft Foundry, Azure OpenAI, Azure AI Agents Service, Azure AI Search, Content Understanding, Vision, and Speech — aligned to the AI-103 certification.

Intermediate
1d 19h 5m
27 Lessons

About This Course

Prepare for the AI-103 certification by designing, building, securing, and evaluating generative AI solutions on Azure. Across 14 hands-on lessons, you will provision Foundry hubs and projects, implement keyless managed-identity auth, design responsible AI safeguards, wire up tool-calling chats, build RAG pipelines with evaluation, orchestrate single and multi-agent systems with the Azure AI Agents Service, process images and speech, and extract structured data with Azure AI Content Understanding. The course culminates in the Northwind Horizon capstone a unified FastAPI service that combines chat, RAG, agents, vision, speech, and extraction behind a single API surface.

Course Curriculum

27 Lessons
01
AI Lesson
AI Lesson

Model Selection & Foundry Tools

45m

Learn how to choose the right model for a workload — LLM vs. SLM, reasoning models, multimodal models, code models — using task type, modality, cost budget, and latency target as inputs. You'll then see how Foundry Tools (Bing Grounding, Code Interpreter, File Search) augment base models and which models support function/tool calling. In the hands-on lab that follows, you'll deploy three models and benchmark them on the same prompt set.

02
Lab Exercise
Lab Exercise

Model Selection & Foundry Tools - Lab Exercises

2h 30m 2 Exercises

Deploy three Foundry models, then benchmark them on latency, token usage, and tool-calling support using the model-explorer starter project. You'll finish compare_models.py and toolcall_probe.py using the Responses API via AIProjectClient.get_openai_client().

Deploy three Foundry models and benchmark them with compare_models.py Create a Foundry project, deploy gpt-4.1-mini, gpt-4o, and Phi-4, then fill in compare_models.py to measure latency and token usage on a fixed prompt. ~60 min
Probe tool-calling support with toolcall_probe.py Fill in toolcall_probe.py so that it sends a weather-lookup prompt with a function tool schema to each deployed model and reports which ones emit a function_call. ~45 min
03
AI Lesson
AI Lesson

Foundry Infrastructure & Deployments

45m

Author Bicep to provision a Foundry hub and project, wire up connections to AI Search, Storage, and Application Insights, then deploy it with azd/az and set up a GitHub Actions pipeline using OIDC federated authentication. You'll also deploy a model into the project via ARM.

04
Lab Exercise
Lab Exercise

Foundry Infrastructure & Deployments - Lab Exercises

2h 45m 3 Exercises

Finish the Bicep template for a full Foundry stack (hub, project, AI Search, Storage, App Insights), deploy it with a shell script, then add a GitHub Actions workflow that redeploys on push using OIDC federated credentials.

Finish infra/main.bicep for the Foundry stack Fill in the six TODOs in infra/main.bicep to declare Log Analytics, App Insights, Storage, Azure AI Search, the Foundry hub, and a project — then emit the outputs the deploy script expects. ~45 min
Deploy the Bicep with deploy.sh and inspect the outputs Implement deploy.sh so it runs az deployment group create against infra/main.bicep and prints the foundryEndpoint / searchEndpoint / storageAccountName outputs. Run it end-to-end. ~30 min
Author a GitHub Actions workflow that redeploys on push using OIDC Create .github/workflows/deploy.yml using OIDC federated credentials, azure/login@v2, and az deployment group create. Verify it runs green. ~45 min
05
AI Lesson
AI Lesson

Manage, Monitor, Secure AI

45m

Replace keys with managed identity, apply quotas, add monitoring, and use private endpoints. You'll learn how to configure a user-assigned managed identity, use DefaultAzureCredential from code, assign the right RBAC roles, set TPM quotas, wire Azure Monitor + Log Analytics, and add private endpoints to the Foundry project and AI Search.

06
Lab Exercise
Lab Exercise

Manage, Monitor, Secure AI - Lab Exercises

2h 30m 3 Exercises

Migrate a FastAPI chat endpoint from AZURE_OPENAI_API_KEY to keyless authentication using DefaultAzureCredential and AIProjectClient.get_openai_client(), then deploy bicep/identity.bicep to provision a user-assigned managed identity with the Azure AI User role assignment on the Foundry scope.

Migrate app/main.py from API key to DefaultAzureCredential Replace the AzureOpenAI(api_key=...) client in app/main.py with AIProjectClient + DefaultAzureCredential + get_openai_client() and switch the chat call to responses.create(...). ~40 min
Author and deploy bicep/identity.bicep for a user-assigned managed identity + Azure AI User role Fill in the three TODOs in bicep/identity.bicep to create a user-assigned managed identity and grant it Azure AI User on the Foundry AI Services account, then deploy it and capture the client/principal IDs. ~35 min
Verify the role assignment and call the Foundry endpoint keyless Confirm the role assignment landed on the Foundry hub scope, then sign in as the managed identity (via az login --identity or by setting AZURE_CLIENT_ID) and hit the /chat endpoint without any API key. ~30 min
07
AI Lesson
AI Lesson

Responsible AI in Foundry

45m

Learn how to apply responsible AI controls end-to-end on Microsoft Foundry: content filter policies on model deployments, Azure AI Content Safety for runtime moderation, Foundry Evaluations for quality and safety scoring, OpenTelemetry tracing, and human-in-the-loop approval gates. This lesson maps to AI-103 objective 1d and prepares you to build responsible generative apps that meet enterprise governance requirements.

08
Lab Exercise
Lab Exercise

Responsible AI in Foundry - Lab Exercises

2h 25m 3 Exercises

Hands-on lab for AI-103 Lesson 5. You will build a responsible-AI orchestrator using Azure AI Content Safety as a pre/post filter, run Foundry Evaluations (groundedness, relevance, violence, hate) against an eval dataset, and add a human approval gate. Starter repo: ai-103-responsible-ai.

Content Safety pre/post filters Wire Azure AI Content Safety into app/filters.py and integrate it as pre and post filter in app/main.py's /generate endpoint. ~35 min
Foundry Evaluations — groundedness, relevance, safety Implement app/evals.py with GroundednessEvaluator, RelevanceEvaluator, ViolenceEvaluator, and HateUnfairnessEvaluator and run evaluate() against eval_data.jsonl. ~35 min
Human-in-the-loop approval gate Implement the approval queue in app/approval.py and add the requires_approval branch to /generate so risky prompts get queued for human review. ~30 min
09
AI Lesson
AI Lesson

Build Generative Apps Part 1 — Chat & Tool Calling

45m

Learn how to build chat endpoints that leverage the OpenAI Responses API through Microsoft Foundry. Understand how to author function tool schemas, handle tool_call items, chain tool results with previous_response_id, and stream tokens. This lesson maps to AI-103 objective 2a (part 1) and prepares you to build production chat apps with tool calling on Azure.

10
Lab Exercise
Lab Exercise

Chat & Tool Calling - Lab Exercises

2h 20m 3 Exercises

Hands-on lab for AI-103 Lesson 6. You will implement a FastAPI /chat endpoint that calls the OpenAI Responses API via AIProjectClient.get_openai_client(), wire three function tools (get_weather, calculate, lookup_inventory), chain tool outputs with previous_response_id, and add streaming. Starter repo: ai-103-chat-tools.

Build the /chat endpoint with Responses API Implement the /chat endpoint in app/main.py using AIProjectClient.get_openai_client().responses.create, wire tool schemas from app/tools.py, and chain tool outputs with previous_response_id. ~45 min
Stream tokens over Server-Sent Events Add a /stream endpoint that uses responses.create(stream=True) and emits Server-Sent Events to the client. ~30 min
Exercise the app with test_client.py Start the FastAPI server, run test_client.py, and verify each of the three tools (get_weather, calculate, lookup_inventory) is invoked. ~20 min
11
AI Lesson
AI Lesson

Build Generative Apps Part 2 — RAG & Evaluation

45m

Learn to build Retrieval-Augmented Generation (RAG) applications on Microsoft Foundry: author an AI Search index with vector + keyword + semantic configuration, ingest and embed documents, query with VectorizedQuery + semantic ranking, ground responses with citations, and evaluate quality with azure-ai-evaluation. This lesson maps to AI-103 objective 2a (part 2) and is core for the exam.

12
Lab Exercise
Lab Exercise

RAG & Evaluation - Lab Exercises

2h 35m 3 Exercises

Hands-on lab for AI-103 Lesson 7. You will create an Azure AI Search index, ingest and embed documents from sample_docs/, implement a /chat endpoint grounded on hybrid + semantic search, and run azure-ai-evaluation groundedness + relevance evaluators against eval_data.jsonl. Starter repo: ai-103-rag-eval.

Create the AI Search index Implement create_index() in app/retrieval.py: vector + keyword + semantic index with an HNSW profile on the embedding field. ~35 min
Ingest, embed, and search sample_docs Implement ingest() and search() in app/retrieval.py: chunk documents, embed with text-embedding-3-small, upload, then run a hybrid+semantic VectorizedQuery. ~35 min
Build /chat endpoint and run evaluations Wire app/main.py to call retrieval.search, ground the Responses API call, and run GroundednessEvaluator + RelevanceEvaluator against eval_data.jsonl. ~40 min
13
AI Lesson
AI Lesson

Agent Service Fundamentals

45m

Learn the Azure AI Agents Service (azure-ai-agents 1.1.0) from the ground up: AgentsClient, ToolSet with FunctionTools, thread/message/run lifecycle, and auto tool execution. By the end you can explain how requires_action and submit_tool_outputs work and why this model replaces chat-completions tool_calls for long-lived agents.

14
Lab Exercise
Lab Exercise

Agent Service Fundamentals - Lab Exercises

2h 5m 3 Exercises

Build a "Summitline concierge" agent with three function tools (get_weather, calculate, lookup_inventory) using the Azure AI Agents Service. You will author the AgentsClient + ToolSet wiring, drive a multi-turn thread, handle automatic tool execution, and pull a transcript back out.

Build the Concierge Agent with FunctionTools Create an AgentsClient, register the three Python functions as a FunctionTool in a ToolSet, and create the agent. ~30 min
Drive a Multi-Turn Thread Create a thread, push user messages, run with create_and_process so tool calls are handled automatically, and pull the transcript. ~30 min
Test the Concierge End-to-End Run test_client.py against the 3-turn conversation and confirm each tool (weather, calculate, inventory) fires. ~20 min
15
AI Lesson
AI Lesson

Knowledge Tools & File Search

45m

Extend an agent with three knowledge surfaces: FileSearchTool (vector store over uploaded PDFs), AzureAISearchTool (indexed enterprise KB), and a custom Content Understanding FunctionTool. Learn how each surface is indexed, when the model chooses to call it, and how citations flow back into the final message.

16
Lab Exercise
Lab Exercise

Knowledge Tools & File Search - Lab Exercises

2h 25m 3 Exercises

Attach three knowledge tools to a Summitline Outfitters agent: FileSearchTool backed by a vector store of product PDFs, AzureAISearchTool bound to an AI Search connection, and a custom Content Understanding invoice extractor. Test routing by sending catalog, KB, and invoice questions at the same agent and inspecting citations.

Add a FileSearchTool with a Vector Store Upload sample_data/product-catalog.pdf, create a vector store, and attach a FileSearchTool to the agent. ~30 min
Add the AzureAISearchTool Connection Wire the agent to a Foundry project connection that targets your AI Search index using semantic query type. ~30 min
Ship a Custom Content Understanding Tool Implement extract_invoice() (define CU analyzer, POST analyze, poll until Succeeded) and expose it as a FunctionTool so the agent can route invoice questions to it. ~40 min
17
AI Lesson
AI Lesson

Multi-Agent & Approval Flows

45m

Build a supervisor/worker system with the ConnectedAgentTool, add a human-in-the-loop approval gate for high-risk actions (refunds over $100), and instrument the whole thing with OpenTelemetry shipped to Application Insights. Understand delegation boundaries, approval queues, and trace propagation across connected agents.

18
Lab Exercise
Lab Exercise

Multi-Agent & Approval Flows - Lab Exercises

2h 30m 3 Exercises

Stand up an orchestrator agent that delegates to refund + lookup worker agents via ConnectedAgentTool, add a FastAPI approval queue that pauses refunds over $100 until a human approves, and wire OpenTelemetry through azure-monitor-opentelemetry so every span lands in Application Insights.

Build Refund and Lookup Workers Implement make_refund_worker and make_lookup_worker so each worker is an agent with a single FunctionTool. ~30 min
Orchestrate with ConnectedAgentTool + HITL Approval Build the orchestrator agent that delegates via ConnectedAgentTool, then wire the FastAPI /request + /approvals endpoints so refunds over $100 wait for human approval. ~45 min
Instrument with OpenTelemetry + App Insights Configure azure-monitor-opentelemetry, wrap /request in a tracer span, and verify spans land in Application Insights end-to-end transaction search. ~30 min
19
AI Lesson
AI Lesson

Computer Vision — Generation, Understanding, Responsible AI

45m

Certification prep lesson covering Azure OpenAI vision (Responses API with input_image) and gpt-image-1 generation / inpainting, with a caption-and-detect pipeline and responsible AI guardrails. Uses keyless DefaultAzureCredential and the Microsoft Learn MCP as the API source of truth.

20
Lab Exercise
Lab Exercise

Computer Vision - Lab Exercises

2h 30m 4 Exercises

Hands-on companion for Lesson 11. Students complete four Vision exercises in the ai-103-vision FastAPI starter: generate, edit/inpaint, caption, and caption+detect with drawn bounding boxes. Keyless auth, Azure Validator checks each endpoint, and a capstone AI assessment closes the lab.

Generate and inpaint images with gpt-image-1 Call images.generate for text-to-image and images.edit for mask-based inpainting via the Foundry project. ~30 min
Multimodal chat — captions and visual Q&A Use the Responses API with input_image content to caption images and answer questions about them. ~25 min
Visual analysis with Content Understanding Author a visual analyzer with Content Understanding REST and extract structured JSON from an image. ~25 min
Detect indirect prompt injection in images Build a detector that reads text inside an image and classifies whether the text is a prompt-injection attempt. ~25 min
21
AI Lesson
AI Lesson

Video Understanding with Content Understanding

1h 30m

Learn how to process, analyze, and reason over video content using Azure Content Understanding in Foundry Tools. Covers single-task vs pro-mode analyzers, field schema design for video, multimodal reasoning over video output, agent integration with timestamped citations, and an honest briefing on the state of video generation in Foundry (Sora discontinuation) and how it affects the AI-103 exam.

22
AI Lesson
AI Lesson

Text Analysis & Speech

45m

Certification prep lesson on Azure AI Language (entities, sentiment, opinion mining), Azure Speech SDK 1.46 (STT, TTS, continuous recognition, translation), and Translator v3.0 REST. Keyless auth where supported; Microsoft Learn MCP is the canonical API reference.

23
Lab Exercise
Lab Exercise

Text Analysis & Speech - Lab Exercises

2h 10m 3 Exercises

Hands-on companion for Lesson 12. Students complete three exercises in ai-103-text-speech: Azure AI Language analyze (entities+sentiment+opinions), Speech STT/TTS round-trip, and Translator v3.0 text translation. Azure Validator confirms each FastAPI endpoint.

Structured JSON extraction and text analysis Use the Responses API for structured entity/summary extraction, plus the Language service for sentiment and key phrases. ~30 min
Translate text with the Azure Translator REST API Call the Translator endpoint to localize text into a target language. ~20 min
Speech SDK — STT, TTS, and voice-in / voice-out roundtrip Wire the Azure Speech SDK for speech-to-text, text-to-speech, and speech translation, then demonstrate a voice-in / voice-out roundtrip. ~35 min
24
AI Lesson
AI Lesson

Retrieval & Information Extraction

45m

Certification prep lesson on Azure AI Search 11.6 hybrid + semantic retrieval (HNSW vector, VectorizedQuery, QueryCaptionType), and Azure Content Understanding 2024-12-01-preview analyzer lifecycle (PUT, analyze, poll, read fields). End-to-end: CU extract then index.

25
Lab Exercise
Lab Exercise

Retrieval & Information Extraction - Lab Exercises

2h 30m 4 Exercises

Hands-on companion for Lesson 13. Four exercises in ai-103-ingest-extract pipeline: Content Understanding extract with analyzer lifecycle and polling, chunk+embed+ingest, create HNSW+semantic index, hybrid semantic query with captions and answers.

Author a Content Understanding analyzer with a field schema Define a CU analyzer that outputs markdown + structured fields for mixed documents (invoices, contracts, statements). ~25 min
Build the ingest pipeline — download, extract, chunk, embed Pull documents from blob storage, call the analyzer, chunk the markdown, embed the chunks. ~35 min
Create an AI Search index with vector + semantic ranker Define the index schema (HNSW vector + semantic config), then upload ingested documents. ~25 min
Query with hybrid retrieval and citations Run a hybrid (vector + keyword + semantic) query and show results with source citations. ~20 min
26
AI Lesson
AI Lesson

Capstone — Summitline Outfitters AI Platform

45m

Capstone lesson unifying chat, RAG, tool-using agents (Azure AI Agents 1.1.0 with AgentsClient + ToolSet + FunctionTool), vision, Content Understanding, and speech behind a single FastAPI app. Azure Monitor OpenTelemetry tracing with DefaultAzureCredential throughout. Business framing: Summitline Outfitters — a specialty outdoor-gear retailer rolling out an AI concierge + internal knowledge platform.

27
Lab Exercise
Lab Exercise

Capstone — Summitline Outfitters - Lab Exercises

2h 35m 4 Exercises

Hands-on Summitline Outfitters capstone. Four exercises in ai-103-capstone: chat+tracing with AIProjectClient and Azure Monitor OTel, grounded RAG with citations, tool-using agent via AgentsClient 1.1.0 with FunctionTool for get_order_status, Content Understanding invoice extract, and the full test_client.py smoke test. All six endpoints (/chat, /rag, /agent, /vision-ask, /extract-doc, /voice) observable in App Insights.

Wire OTel tracing, /chat, and /rag Configure Azure Monitor OpenTelemetry and implement the /chat and /rag endpoints under the capstone FastAPI. ~30 min
Implement /agent and /vision-ask Wire an Azure AI Agents Service agent with AI Search + custom tool, and a multimodal Q&A endpoint. ~30 min
Implement /extract-doc and /voice Finish the Content Understanding wrapper and the Speech SDK TTS/STT to enable the voice-in/voice-out endpoint. ~30 min
Pass the test_client.py smoke test Run test_client.py and confirm all six endpoints return valid responses and App Insights shows traces. ~20 min

This course includes:

  • 24/7 AI Instructor Support
  • Live Lab Environments
  • 13 Hands-on Lessons
Skill Level Intermediate
Total Duration 1d 19h 5m