AI-901
Deep Dive
Conversational AI allows machines to hold useful dialogues with humans. Azure offers three complementary pieces: CLU understands intents, Question Answering answers questions from a knowledge base, and Bot Service connects both with users.
Contents
Conversational AI lets systems understand natural language and respond coherently in a multi-turn dialogue. It's not just answering questions — it's maintaining context, understanding intents, and executing actions based on what the user says.
🎯
Task bots
Help the user complete a specific action: booking a flight, checking a balance, placing an order.
📚
FAQ bots
Answer frequently asked questions from a knowledge base: policies, procedures, product documentation.
🤝
Hybrid assistants
Combine task + FAQ: they understand intents AND answer arbitrary questions, escalating to humans when needed.
The three Azure pieces for Conversational AI
Understands WHAT the user wants to do (intent) and extracts the necessary data (entities).
Answers open-ended questions by searching a predefined knowledge base.
Infrastructure that connects everything with the user through channels (Teams, web, WhatsApp).
CLU (successor of LUIS) is the Azure AI Language service that trains models capable of identifying intent (what the user wants to do) and extracting entities (the specific data within the message).
Intents
Classification of what the user wants to do. Each user message is mapped to a predefined intent.
"Book a flight to Madrid"
→ BookFlight
"Cancel my order number 123"
→ CancelOrder
"How much does express shipping cost?"
→ CheckPrice
"I want to talk to an agent"
→ EscalateToHuman
Entities
Specific data extracted from the message that the system needs to act. Types: learned, list, prebuilt.
"Book a flight to Madrid on Friday"
→ Destination: Madrid Date: Friday
"Cancel my order number 123"
→ OrderNumber: 123
"Two coffees and one tea with milk"
→ Product: coffee (x2), tea Modifier: with milk
Utterances
Example phrases that express each intent. More utterances = a more robust model against variations.
// Intent: BookFlight
"I want to go to Barcelona"
"I need a ticket to Rome"
"Flight to Paris please"
"How can I get to Lisbon by plane"
"Book a flight to Berlin tomorrow"
Recommended minimum: 15 utterances per intent.
The "None" intent — critical for the exam
Every CLU project must have a None intent that captures messages that don't correspond to any defined intent. Without it, the model tries to force every message into an intent — producing incorrect predictions with high confidence. The None intent is the bot's "I don't understand."
Create a CLU project
In Azure AI Language Studio or via API. Choose the project's language(s) — CLU supports multiple languages in a single model.
Define intents
Create the intents the model should recognize. Always include the "None" intent. Clear, mutually exclusive names.
Define entity types
Learned (extracted from context), List (fixed values like "Madrid", "Barcelona"), Prebuilt (dates, numbers, emails — already pretrained).
Add and label utterances
Write 15+ examples per intent. For each utterance: assign an intent and mark the entities within the text (span labeling).
Train the model
Click "Train." The service uses transfer learning on pretrained language models. Process takes minutes/hours depending on volume.
Evaluate and debug
Review the confusion matrix per intent. Check misclassified utterances. Add more examples for intents with low precision/recall.
Deploy and call the API
Publish the model to a deployment name. The Prediction API returns: top intent, confidence score, extracted entities, all intents with scores.
Entity types in CLU
The model learns to extract them from context. "Book at [Hotel Ritz]" → HotelName. Flexible but needs labeled examples.
List of exact values and synonyms. "Red" = ["red", "crimson", "scarlet"]. Deterministic, no ML needed.
Already-trained models: DateTime, Number, Email, URL, PersonName, etc. No labeling of your own.
Regular expression pattern. "Order number [A-Z]{2}\d{6}" → exact match for fixed-format codes.
Prediction API response
// POST /analyze
{
"topIntent": "BookFlight"
"confidence": 0.94
"intents": {
"BookFlight": {"score": 0.94}
"CheckPrice": {"score": 0.04}
"None": {"score": 0.02}
}
"entities": [
{"category": "Destination", "text": "Madrid"}
{"category": "Date", "text": "Friday"}
]
}
Question Answering (successor of QnA Maker) creates a knowledge base of question-answer pairs. When the user asks a question, the service searches for the most suitable answer by semantic similarity — not by exact keywords.
FAQ URLs
The service automatically extracts Q&A pairs from frequently asked questions web pages.
Files (PDF, Word, Excel)
Extracts content from documents. Section titles become questions, content becomes answers.
Manual (Chitchat)
Manually written Q&A pairs. Also includes prebuilt responses to casual conversation (hi, thanks, bye).
Editorial
Azure can suggest alternative questions for each pair based on linguistic variations.
Alternative questions
Each pair can have multiple phrasings of the same question. "How do I return a product?" = "How do I make a return?" = "I want to return something."
Rich answers
Answers can include markdown, images, suggested action buttons (Adaptive Cards).
Confidence score
Each answer comes with a score (0-1). If it's very low, the bot can say "I don't have information about that."
Active learning
The service analyzes questions without a good answer and suggests improvements to the knowledge base.
Multi-turn
Support for multi-turn conversations: a question can lead to follow-up questions.
Example Question Answering response
// Query: "How long does standard shipping take?"
{
"answers": [
{
"answer": "Standard shipping takes between 3 and 5 business days."
"confidenceScore": 0.92
"source": "shipping-FAQ.pdf"
"questions": ['
"How long does standard shipping take?"
"Normal delivery time"
]
}
]
}
Build a knowledge base with question/answer pairs and test it with a question phrased differently.
+1 more...
This is the most frequent exam question in Conversational AI. The fundamental difference: CLU understands what the user wants to do so the bot can act; Question Answering looks up information the user wants to know.
| Dimension | CLU | Question Answering |
|---|---|---|
| Question it answers | What does the user want to DO? | What does the user want to KNOW? |
| Output | Intent + Entities (for the bot to act) | Answer text (to show the user) |
| Training | Utterances labeled with intents/entities | Question-answer pairs |
| Typical example | "Book a flight to Madrid on Friday" | "How much luggage can I bring?" |
| The bot afterward | Executes an action (calls an API, books) | Shows the answer text to the user |
| Result if no match | Intent: None | Low score → "I couldn't find any information" |
Use CLU when...
Use Question Answering when...
No guided steps: read a scenario with several stacked requirements and pick, out of 4 AI services, the only one that meets them all.
+1 more...
Azure Bot Service is the infrastructure platform that hosts, connects, and manages the bot. It doesn't provide conversational intelligence — that comes from CLU or Question Answering. Bot Service manages channels, authentication, conversation state, and messaging.
A single bot → multiple channels simultaneously without changing the code.
A real bot generally needs both services: CLU to handle user tasks and Question Answering to answer questions. Azure AI Language includes an Orchestration Workflow that automatically decides which of the two to route each message to.
User sends a message
"How long does shipping take?" or "I want to cancel my order"
Orchestration Workflow analyzes
Decides whether the message is a question (→ Question Answering) or a task (→ CLU). Based on the most probable intent.
Route: Question Answering
If it's an informational question → searches the knowledge base → returns the answer to the user.
Route: CLU
If it's a task → extracts intent + entities → the bot code executes the corresponding action.
Response to the user
The bot responds with the QnA information or with the result of the executed action.
Real example: airline bot
Goes to CLU (tasks)
"Book a flight to Madrid for January 15th"
"Cancel my reservation number RES-123"
"Change my seat to 14A"
"I need a wheelchair at the airport"
Goes to Question Answering (info)
"How much carry-on luggage can I bring?"
"What documents do I need to fly?"
"What is the cancellation policy?"
"Can I bring pets in the cabin?"
| Scenario | Service | Reason |
|---|---|---|
| A bot that takes orders in a restaurant | CLU | Needs to extract dishes, quantity, customization — these are entities of an intent |
| HR department FAQ bot | Question Answering | Only answers questions about policies, doesn't execute actions |
| An assistant that books meeting rooms | CLU | Extracts date, time, room, attendees — a task with multiple entities |
| Support bot using the product manual as its source | Question Answering | The knowledge base is the manual — no actions involved |
| Bank bot: inquiries AND transfers | CLU + QnA (orchestrated) | Transfers require CLU; questions about rates require QnA |
| Deploying the same bot on Teams and WhatsApp | Azure Bot Service | Multi-channel management — not a CLU or QnA capability |
| A bot that authenticates the user with their Microsoft account | Azure Bot Service (OAuth) | OAuth authentication is Bot Service's responsibility |
❓ Are CLU and Question Answering the same thing?
No. CLU classifies the user's intent and extracts entities so the bot can execute an action. Question Answering looks up a predefined text answer in a knowledge base. CLU → "the user wants to DO something"; QnA → "the user wants to KNOW something".
❓ Does Azure Bot Service include built-in NLP?
No. Bot Service is infrastructure (channels, hosting, authentication, conversation state). NLP comes from CLU, Question Answering, or other services connected to the bot. Without CLU or QnA, the bot doesn't understand natural language.
❓ Does LUIS still exist as a separate service?
LUIS was replaced by CLU (Conversational Language Understanding) within Azure AI Language Service. QnA Maker was replaced by Question Answering, also within Azure AI Language. The exam may use the old or new names — they are the same concept.
❓ Can the bot execute actions like making reservations with Question Answering?
No. Question Answering only returns text answers. For the bot to execute an action (book, cancel, modify), you need CLU to extract the intent and entities, plus custom code that calls the corresponding back-end systems.
Did you get this topic?
Test what you just learned
A pizza chain wants a chatbot on their website that: (1) lets customers place orders by saying 'I want a large margherita pizza and two colas', (2) answers questions like 'do you have gluten free?' or 'what's your delivery schedule?', and (3) also works on WhatsApp. Which combination of Azure services do they need?
Put what you learned to the test with original AI-901 exam questions.
Start AI-901 mock examUnlimited mock exams with the Pro plan
Log in to track your progress.