Select the Appropriate Microsoft Foundry Service
Before you write a single line of code, you need to know what each Azure AI service does and when to choose one over another. This topic also introduces the core vocabulary — endpoint, API key, resource, subscription — that every other topic in this course assumes you already know.
The words you must know before anything else
These terms appear in almost every exam question and every code example across all 6 parts. Learn them here once and you'll recognise them everywhere.
Imagine Azure as a large hospital network. Your subscription is your hospital membership — it covers all costs. A resource group is a specific ward (e.g. Cardiology). An Azure AI resource is a specific machine in that ward (e.g. the MRI scanner). The endpoint is the reception desk's phone number — the address you call to use that machine. The API key is your staff ID badge — it proves you're allowed to use it.
Your Azure account's billing container. Everything you create in Azure lives under a subscription, and all costs are charged to it. Think of it as your Azure account with a payment method attached.
A logical folder that holds related Azure resources together. For example, you might put your AI service, your storage account, and your web app all in one resource group called "MyAIProject". Deleting the group deletes everything inside it.
Any individual service you create in Azure — an AI Language service, a storage account, a virtual machine. Each resource has its own settings, costs, and access controls.
A URL address that your code sends requests to in order to use an
Azure AI service. It always looks like:
https://your-resource-name.cognitiveservices.azure.com/
You find it in the Azure portal under your resource → "Keys and Endpoint".
A secret string (like a long password) that proves your code is authorised to call an Azure AI service. Azure gives you two keys (Key1 and Key2) so you can rotate them — swap to Key2, regenerate Key1, swap back — without downtime. Never share or hard-code your key.
Software Development Kit. A pre-built Python library that makes
calling Azure AI services much easier than writing raw HTTP requests.
For example, azure-ai-textanalytics is the SDK for the
Azure AI Language service. You install it with pip.
A way to call a service by sending standard HTTP requests (GET, POST, etc.) to its endpoint URL, with your API key in the request header. The SDK does this for you under the hood — but the exam sometimes shows you raw REST calls, so you need to recognise them.
The physical data centre location where your Azure resource runs — e.g. East US, Canada Central, UK South. Not all services and models are available in all regions. Choosing the right region affects latency, compliance (data residency), and feature availability.
The unified platform (portal and SDK) that brings together Azure's AI services — OpenAI, Vision, Language, Speech, Document Intelligence, and more — under one roof. The exam calls individual services "Microsoft Foundry Services". Previously called "Azure AI Studio".
The old name for Azure AI Services. The exam may use either name.
If you see "Cognitive Services" in a question, it means
"Azure AI Services". The endpoint domain
cognitiveservices.azure.com still exists and is used
in current resources.
What is Microsoft Foundry and why does it matter?
Before 2024, Azure had dozens of separate AI services each with their own portal, their own SDKs, and their own way of doing things. Microsoft Foundry is the answer to that complexity — a single platform that unifies all of them.
Think of Microsoft Foundry as the control centre for all Azure AI services. Instead of going to five different portals to manage your Vision service, your Language service, and your OpenAI deployment, you go to one place: ai.azure.com. From there you can create projects, deploy models, test them, and connect them to your data — all in one place.
How Foundry is organised
Foundry has a hierarchy you need to know for the exam:
The top-level container in Foundry. A Hub holds shared resources like storage accounts, compute, and connections to other Azure services. A company typically has one Hub per team or business unit. Think of it as the office building.
Lives inside a Hub. A Project is where you do your actual work — deploying models, building prompt flows, connecting to data. Think of it as your individual office inside the building. One Hub can have many Projects.
The actual AI capabilities you deploy and use within a Project — Azure OpenAI, Vision, Language, Speech, Document Intelligence, etc. These are the services the exam tests you on across all 6 domains.
The Microsoft Foundry portal lives at ai.azure.com. The Azure portal (where you manage all Azure resources) lives at portal.azure.com. Questions may ask which portal to use for a specific task — Foundry-level tasks (deploying models, prompt flows, evaluations) happen at ai.azure.com, while infrastructure tasks (creating resource groups, setting network rules, configuring RBAC) happen at portal.azure.com.
Every Azure AI service you need to know
The exam requires you to choose the right service for a given scenario. Here is every service, what it does in one sentence, and its old name (the exam may use either name — this trips up many candidates).
Analyses images and videos. Can detect objects, extract text from images (OCR), describe scenes, detect faces, identify brands. Used when your input is an image or video file.
Train your own image classifier or object detector using your own labelled photos. Use when the pre-built Vision service doesn't recognise your specific objects (e.g. company-specific products).
Extracts rich insights from videos — transcripts, speaker identification, scene detection, keywords, emotions, brands. Use when your input is a video file or live stream.
Detects, analyses, and identifies human faces in images. Returns attributes (age estimate, glasses, emotion, landmarks). Note: Face identification requires Microsoft approval (Limited Access policy).
Analyses written text. Extracts key phrases, detects sentiment, identifies named entities, detects PII, and classifies text. Also now includes Conversational Language Understanding (CLU) and Custom Question Answering.
Translates text and documents between 100+ languages. Can also detect the source language automatically and transliterate (convert between scripts, e.g. Arabic to Latin). Supports custom translation models.
Detects harmful content in text and images — hate speech, sexual content, violence, self-harm. Returns severity scores (0–6). Used to moderate user-generated content or AI model outputs.
Converts speech to text (transcription), text to speech (voice synthesis), and speech to speech (translation). Also supports speaker recognition, intent recognition, and custom voice models. Use when your input or output is audio.
If you need to translate text → use Azure AI Translator.
If you need to translate spoken audio → use Azure AI Speech (it has translation built in).
If you need to understand intent from speech (e.g. "Book me a flight") → use Azure AI Speech + CLU together.
Extracts structured data from documents — invoices, receipts, ID cards, tax forms, contracts. Has prebuilt models for common document types and lets you train custom models for your own forms. Use when your input is a document with a structured layout.
Ingests and analyses multimodal content — documents, images, videos, and audio — in one pipeline. More flexible than Document Intelligence. Use when you need to process mixed media types in a single workflow.
Provides access to OpenAI's large language models (GPT-4o, GPT-4, GPT-3.5-turbo) and image models (DALL-E) hosted on Azure infrastructure. Use when you need text generation, summarisation, code generation, or image creation at enterprise scale with Azure security.
Both use the same models (GPT-4o etc.), but Azure OpenAI is hosted inside Azure. This means: your data stays within your Azure tenant, you can apply RBAC and private endpoints, and you're covered by Microsoft's enterprise compliance guarantees. The exam always expects you to choose Azure OpenAI over public OpenAI for enterprise or compliance scenarios.
A fully managed search service that can index content from Blob Storage, SQL, Cosmos DB, and more. Supports full-text search, semantic ranking, vector search, and AI enrichment via skillsets. Use when you need enterprise-wide search across large document collections.
Microsoft renamed most services in 2023–2024. The exam may use either the old name or the new name in the same question. The most dangerous ones:
| Old Name (still appears in exam) | New Name (current) |
|---|---|
Form Recognizer | Azure AI Document Intelligence |
Cognitive Services | Azure AI Services |
Computer Vision | Azure AI Vision |
LUIS (Language Understanding) | Conversational Language Understanding (CLU) inside Azure AI Language |
QnA Maker | Custom Question Answering inside Azure AI Language |
Text Analytics | Azure AI Language (sentiment, NER, key phrases) |
Azure Cognitive Search | Azure AI Search |
Azure AI Studio | Microsoft Foundry / Azure AI Foundry |
The decision framework for exam questions
Most exam scenario questions follow a pattern: a company has a problem, you pick the service. Use this framework to work through any scenario systematically, starting with the type of input.
🎬 Video file / live stream → Azure AI Video Indexer or Vision Spatial Analysis
🔊 Audio / spoken words → Azure AI Speech
📝 Written text → Azure AI Language or Azure AI Translator
📄 Document with a form/layout (invoice, receipt, contract) → Azure AI Document Intelligence
📦 Mix of docs, images, video, audio → Azure AI Content Understanding
💬 Generate new text, code, or images → Azure OpenAI
🗂️ Search across many documents → Azure AI Search
✅ Yes — my own document templates → Custom Document Intelligence model
✅ Yes — my own intents and utterances → Conversational Language Understanding (CLU)
✅ Yes — my own FAQ pairs → Custom Question Answering
✅ Yes — my own translation style → Custom Translator
❌ No — use standard/prebuilt → Use the prebuilt version of the relevant service
Quick scenario practice
Read each scenario and think about which service you'd choose before revealing the answer.
Answer: Azure AI Document Intelligence
The input is a document with a known structure (an invoice). Document Intelligence has a prebuilt Invoice model that extracts fields like VendorName, InvoiceTotal, DueDate, etc. without any custom training needed.
Why not Azure AI Vision OCR? OCR just extracts raw text — it doesn't understand that a number is a "total" vs a "date". Document Intelligence understands document structure.
Answer: Azure AI Speech (for transcription) + Azure AI Language (for sentiment)
This is a two-service solution. First, Speech converts the audio to text. Then, Language's sentiment analysis feature analyses the text to determine if the customer's tone is negative/frustrated. The exam often has multi-service scenario questions.
Answer: Azure AI Language — Custom Question Answering
Custom Question Answering (formerly QnA Maker) lets you import a document or FAQ page and creates a knowledge base. When a user asks a question, it finds the best matching answer. It's purpose-built for FAQ-style bots.
Why not Azure OpenAI? OpenAI would also work, but the question says "answer questions from their catalogue" — that is the exact use case Custom QnA was designed for. OpenAI would be the answer if the scenario said "generate responses" or "have a natural conversation".
Answer: Azure AI Video Indexer
Video Indexer is specifically designed for this: extracting topics, keywords, speaker transcripts, named entities, and more from video files at scale, making them searchable. It is not just transcription — it provides rich structured metadata about the video content.
Answer: Azure AI Search (with Document Intelligence as a skillset)
Azure AI Search is built for searching large document collections. You'd configure it to read from Blob Storage, use a skillset that includes OCR (to read the PDFs) and entity extraction (to pull out dates, names, clause types), and then index all that into a searchable index.
This is one of the classic "trap" questions. Document Intelligence alone doesn't give you search — it just extracts. You need AI Search to make the extracted content searchable.
Free tier vs Standard tier — F0 and S0
When you create an Azure AI resource, you choose a pricing tier. The exam tests whether you know when to use each tier and what the limitations are.
| Tier | What it is | Limitations | Use when |
|---|---|---|---|
F0 |
Free tier. No cost. | Limited calls per minute/month. Cannot use private endpoints. Only one F0 per service per subscription. | Learning, development, and small demos. |
S0 |
Standard paid tier. | Pay per call. No artificial rate limits (subject to quota). | Production workloads, higher volume, or when you need private endpoints. |
If a scenario says "the company needs to ensure the service is not accessible from the public internet" — the answer involves S0 tier + private endpoint because F0 does not support private endpoints. This is a very common exam trap.
Two Python concepts before any code
You don't need to be a Python developer to pass the AI-102 exam. The exam tests whether you can read Python code and understand what it does. Every code block in this course will have every line explained. But first, two concepts that appear in every example:
Concept 1 — Importing a library
A library (also called a package or module) is a collection of pre-written Python code you can use in your program. Azure provides libraries for each AI service. Before you can use a library, you import it — like taking a tool out of a toolbox before using it.
# The "from" keyword means: "from this library..."
# The "import" keyword means: "...bring me this specific tool"
from azure.ai.textanalytics import TextAnalyticsClient
# Now we can use TextAnalyticsClient in our code
# Think of it like: "I've taken the TextAnalyticsClient tool out of the azure.ai.textanalytics toolbox"
Concept 2 — Calling a function
A function is a named block of code that does a specific task. You call it by writing its name followed by brackets. You can pass information into brackets (called arguments). The function does its work and often returns a result.
# This creates a "client" object — a connection to your Azure AI service
# TextAnalyticsClient is the function name
# endpoint= and credential= are named arguments (information you're passing in)
client = TextAnalyticsClient(endpoint=endpoint, credential=credential)
# This calls the "analyze_sentiment" function on our client
# We pass in a list of texts to analyse
# The result is stored in the variable "result"
result = client.analyze_sentiment(documents=["I love this product!"])
Every subsequent topic will introduce new concepts exactly when they're needed — functions, loops, conditionals — all with plain-English explanations before showing the code. You will never see a concept in code that hasn't been explained in words first.
How to install the SDK and make your first call
This walks through a complete, working Python example. Even if you don't run it now, reading through it will make every other code example in the course feel familiar.
Step 1 — Install the Azure AI Language SDK
An SDK must be installed before you can import it. You install Python packages using a tool called pip — run this in your terminal or command prompt:
# pip is Python's package installer — it downloads the library from the internet
# azure-ai-textanalytics is the SDK for Azure AI Language service
pip install azure-ai-textanalytics
Step 2 — The complete Python script
The example below calls the Azure AI Language service to detect the language of a piece of text. Read every comment carefully.
# ── Import the tools we need from the Azure SDK ──────────────
# TextAnalyticsClient is the main object we use to call the Language service
from azure.ai.textanalytics import TextAnalyticsClient
# AzureKeyCredential wraps our API key so the SDK knows how to send it securely
from azure.core.credentials import AzureKeyCredential
# ── Your service details ──────────────────────────────────────
# Your endpoint URL — copy this from Azure portal → your resource → Keys and Endpoint
# Replace the placeholder with your actual endpoint
endpoint = "https://YOUR-RESOURCE-NAME.cognitiveservices.azure.com/"
# Your API key — also from Keys and Endpoint in the portal
# In production code you would load this from an environment variable, NOT hard-code it
key = "YOUR-API-KEY-HERE"
# ── Create the credential object ─────────────────────────────
# AzureKeyCredential wraps your key into a format the SDK understands
# Think of it as putting your key card into a card holder before swiping
credential = AzureKeyCredential(key)
# ── Create the client ─────────────────────────────────────────
# TextAnalyticsClient is your connection to the Language service
# You pass your endpoint and credential so it knows where to connect and how to prove your identity
client = TextAnalyticsClient(endpoint=endpoint, credential=credential)
# ── Call the service ──────────────────────────────────────────
# detect_language() takes a list of text documents
# Even if you only have one text, you still wrap it in a list: ["your text here"]
result = client.detect_language(documents=["Bonjour, comment ça va?"])
# ── Read the response ─────────────────────────────────────────
# result is a list — one item per document we sent
# result[0] is the response for our first (and only) document
doc = result[0]
# .primary_language is a property on the response object
# .name is the full language name (e.g. "French")
# .confidence_score is how sure the service is, between 0.0 and 1.0
print(f"Detected language: {doc.primary_language.name}")
print(f"Confidence: {doc.primary_language.confidence_score}")
# Expected output:
# Detected language: French
# Confidence: 1.0
Every Azure AI SDK call follows this same 4-step pattern, regardless of which service you're calling:
1. Import the right SDK class
2. Set your endpoint and key
3. Create a client object
4. Call a method on the client and read the result
In Topic 2 onwards you'll see this same skeleton with different services and different method names.
What the exam specifically tests in this topic
1. Document Intelligence vs AI Vision OCR — If the scenario
says "extract text from an image" → AI Vision OCR.
If it says "extract structured fields from a document/form" → Document Intelligence.
2. CLU vs Custom Question Answering — CLU is for
understanding commands and intent ("Book me a flight to Paris").
QnA is for answering factual questions ("What is your return policy?").
3. F0 can't use private endpoints — Any scenario
involving network isolation requires S0 tier.
4. Azure OpenAI vs Azure AI Language for text tasks —
If the scenario wants specific, structured outputs (sentiment score,
named entities, language code), use Azure AI Language. If it wants
free-form generated text, use Azure OpenAI.
5. Video Indexer vs Spatial Analysis — Video Indexer
analyses recorded video files. Spatial Analysis analyses live video
streams for people detection and movement. Know the difference.
Test your understanding
5 questions. Select an answer to see the explanation immediately.
A company wants to automatically extract the vendor name, due date, and total amount from uploaded PDF invoices. Which Azure AI service should they use?
B is correct. Azure AI Document Intelligence (formerly Form Recognizer) is purpose-built for extracting structured fields from documents. Its prebuilt Invoice model specifically recognises fields like VendorName, InvoiceTotal, and DueDate. AI Vision OCR only extracts raw text without understanding that a number is a "total". AI Language could extract entities but wouldn't understand invoice structure. AI Search enables searching, not extraction.