Ngân hàng đề — Microsoft Azure AI Engineer

Tìm thấy 267 câu.

Câu 151
You need to upload speech samples to a Speech Studio project for use in training.
How should you upload the samples?
  1. A Combine the speech samples into a single audio file in the .wma format and upload the file.
  2. B Upload a .zip file that contains a collection of audio files in the .wav format and a corresponding text transcript file.
  3. C Upload individual audio files in the FLAC format and manually upload a corresponding transcript in Microsoft Word format.
  4. D Upload individual audio files in the .wma format.
Xem giải thích

🧩 Phân tích nội dung câu hỏi

Câu hỏi tập trung vào quy trình upload dữ liệu mẫu giọng nói (speech samples) vào một dự án Speech Studio (thuộc Azure AI Speech services của Microsoft) để sử dụng trong việc training mô hình nhận diện giọng nói tùy chỉnh (Custom Speech models).

  • Bối cảnh chính: Speech Studio là công cụ trực tuyến của Azure cho phép người dùng tạo, huấn luyện và kiểm tra các mô hình nhận diện giọng nói tùy chỉnh. Để training hiệu quả, dữ liệu đầu vào phải tuân thủ định dạng chuẩn, bao gồm file âm thanh chất lượng cao và file transcript (bản ghi văn bản tương ứng) để mô hình học cách map âm thanh với từ ngữ.
  • Yêu cầu cụ thể: "How should you upload the samples?" – Nghĩa là cần chọn phương pháp upload đúng chuẩn để đảm bảo dữ liệu được xử lý tự động và chính xác, tránh lỗi validation.
  • Kiến thức cập nhật (đến 2026): Theo tài liệu Azure AI Speech mới nhất (phiên bản 2024-2026), dataset training yêu cầu file âm thanh ở định dạng .wav (16 kHz, 16-bit, mono PCM), mỗi file ngắn (dưới 1 phút), kèm transcript trong file .txt hoặc .ssml. Upload dưới dạng .zip là bắt buộc cho batch lớn, hỗ trợ tối đa 1000 giờ dữ liệu. Không hỗ trợ các định dạng nén khác hoặc thiếu transcript. (Nguồn: Azure Speech Studio Documentation - Custom Speech Training, cập nhật 2025).

✅ Đáp án đúng và lý do lựa chọn

Đáp án đúng: Upload a .zip file that contains a collection of audio files in the .wav format and a corresponding text transcript file.

Lý do 🛠️:

  • Đây là phương pháp chuẩn theo hướng dẫn chính thức của Azure Speech Studio. File .zip chứa nhiều file .wav (âm thanh gốc, chất lượng cao) và file transcript .txt (danh sách tên file âm thanh + nội dung văn bản) giúp hệ thống tự động validate và training nhanh chóng.
  • Định dạng .wav đảm bảo tương thích 100% với engine training (hỗ trợ 16kHz mono). Transcript bắt buộc để mô hình học supervised learning.
  • Ưu điểm: Hỗ trợ batch upload lớn, giảm lỗi thủ công, và tích hợp trực tiếp vào Speech Studio mà không cần chuyển đổi.

📋 Giải thích tất cả các phương án (đúng/sai)

Dưới đây là phân tích chi tiết từng lựa chọn, giữ nguyên văn bản gốc bằng tiếng Anh. Mỗi phương án được đánh giá dựa trên quy định upload dataset của Azure Speech Studio (không hỗ trợ WMA/FLAC cho training, yêu cầu zip + transcript).

  • ❌ [SAI] Combine the speech samples into a single audio file in the .wma format and upload the file.
    Lý do sai 🚫: Định dạng .wma (Windows Media Audio) không được hỗ trợ cho training Custom Speech. Speech Studio chỉ chấp nhận .wav riêng lẻ trong zip. Ghép tất cả vào 1 file duy nhất làm mất metadata từng sample, không thể map transcript chính xác, dẫn đến validation failed ngay lập tức.

  • ✅ [ĐÚNG] Upload a .zip file that contains a collection of audio files in the .wav format and a corresponding text transcript file.
    Lý do đúng 🎯: Như đã giải thích ở phần đáp án đúng. Đây là best practice, được khuyến nghị trong docs Azure (template mẫu zip có sẵn để download).

  • ❌ [SAI] Upload individual audio files in the FLAC format and manually upload a corresponding transcript in Microsoft Word format.
    Lý do sai 🚫: FLAC (lossless nhưng nén) không được hỗ trợ cho training dataset – chỉ .wav thuần. Upload từng file riêng lẻ (không zip) chỉ phù hợp testing nhỏ, không scale cho training. Transcript phải là .txt/SSML, không chấp nhận Word (.docx) vì không parse được tự động.

  • ❌ [SAI] Upload individual audio files in the .wma format.
    Lý do sai 🚫: .wma không tương thích với training pipeline của Speech Studio (chỉ dùng cho playback, không training). Upload riêng lẻ thiếu transcript, hệ thống sẽ báo lỗi "missing transcripts" và không training được.

📘 Tài liệu tham khảo

Hy vọng phân tích này giúp bạn nắm vững quy trình Azure Speech Studio! 🚀 Nếu cần demo code hoặc lab thực hành, hãy cho tôi biết nhé! 😊

Câu 152
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution.
After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen.
You create a web app named app1 that runs on an Azure virtual machine named vm1. Vm1 is on an Azure virtual network named vnet1.
You plan to create a new Azure Cognitive Search service named service1.
You need to ensure that app1 can connect directly to service1 without routing traffic over the public internet.
Solution: You deploy service1 and a public endpoint to a new virtual network, and you configure Azure Private Link.
Does this meet the goal?
  1. A Yes
  2. B No
Xem giải thích

🧩 Phân tích chi tiết nội dung câu hỏi

Câu hỏi thuộc dạng series questions trong kỳ thi chứng chỉ (có thể là AZ-104 hoặc tương tự), nơi mỗi câu đưa ra một scenario cố định và một solution cụ thể, yêu cầu đánh giá xem solution đó có đạt được goal hay không. Bạn không thể quay lại sau khi trả lời.

Scenario chính:

  • Bạn tạo một web app tên app1 chạy trên Azure Virtual Machine (VM) tên vm1.
  • VM1 nằm trong Azure Virtual Network (VNet) tên vnet1.
  • Bạn dự định tạo Azure Cognitive Search service (nay gọi là Azure AI Search) tên service1.
  • Goal: Đảm bảo app1 (chạy trên vm1) có thể kết nối trực tiếp đến service1 mà không routing traffic qua public internet (tức là kết nối private, an toàn nội bộ Azure).

Solution được đề xuất:

  • Deploy service1 và a public endpoint vào một VNet mới, sau đó configure Azure Private Link.

Câu hỏi: Solution này có đạt goal không? (Yes/No)

📘 Tài liệu tham khảo:

✅ Đáp án đúng: No

Lý do chọn đáp án đúng 🛠️:

  • Solution KHÔNG đạt goal vì Azure AI Search là dịch vụ PaaS managed (không thể "deploy" trực tiếp vào VNet như VM hoặc App Service).
  • Không tồn tại khái niệm "deploy service1 and a public endpoint to a new virtual network" – service này không hỗ trợ public endpoint trong VNet mới theo cách mô tả.
  • Azure Private Link đúng là công cụ để tạo kết nối private, nhưng cách triển khai sai: Phải tạo Private Endpoint trong VNet hiện có (vnet1) của vm1, liên kết trực tiếp đến service1 (service1 giữ nguyên ở public endpoint mặc định, nhưng traffic đi private qua backbone Azure). Không cần VNet mới, và không dùng "public endpoint" trong solution này.
  • Kết quả: Traffic vẫn có nguy cơ đi qua public internet nếu config sai, không đảm bảo "direct connect without public internet".

📋 Giải thích tất cả các phương án

  • Yes ❌
    Sai vì solution vi phạm nguyên tắc triển khai Azure AI Search. Service không deploy vào VNet (là global/multi-region service), và "public endpoint to a new virtual network" không hợp lệ – Private Link yêu cầu Private Endpoint (không phải public) trong subnet của VNet nguồn (vnet1). Nếu làm theo solution, app1 vẫn không connect private trực tiếp, có thể fail hoặc route public. (Không đạt goal ✅).

  • No ✅
    Đúng vì solution không chính xác với kiến trúc Azure Private Link cho AI Search. Cách đúng: (1) Tạo service1 bình thường, (2) Tạo Private Endpoint trong subnet của vnet1, approve connection trong service1, (3) DNS resolve private IP. Traffic app1 → service1 đi hoàn toàn private qua Azure backbone, zero public exposure. Solution đề xuất tạo VNet thừa và public endpoint sai, dẫn đến không meet goal. 🛠️

Câu 153 Chọn nhiều đáp án
You are developing a method for an application that uses the Translator API.
The method will receive the content of a webpage, and then translate the content into Greek (el). The result will also contain a transliteration that uses the Roman alphabet.
You need to create the URI for the call to the Translator API.
You have the following URI.
https://api.cognitive.microsofttranslator.com/translate?api-version=3.0
Which three additional query parameters should you include in the URI? Each correct answer presents part of the solution.
NOTE: Each correct selection is worth one point.
  1. A toScript=Cyrl
  2. B from=el
  3. C textType=html
  4. D to=el
  5. E textType=plain
  6. F toScript=Latn
Xem giải thích

🧩 Phân tích chi tiết nội dung câu hỏi

Câu hỏi thuộc về Microsoft Translator API (thuộc Azure Cognitive Services), yêu cầu xây dựng URI hoàn chỉnh để gọi API dịch ngôn ngữ. Cụ thể:

  • Ứng dụng nhận nội dung của một webpage (HTML), dịch sang tiếng Hy Lạp (mã ngôn ngữ: el).
  • Kết quả dịch phải bao gồm transliteration (chuyển tự âm) sử dụng bảng chữ cái Latin (Roman alphabet).
  • URI cơ bản đã cho: https://api.cognitive.microsofttranslator.com/translate?api-version=3.0.
  • Nhiệm vụ: Chọn 3 query parameters bổ sung để hoàn thiện URI. Đây là câu hỏi multiple correct answers (mỗi đáp án đúng chiếm 1 điểm).

Mục tiêu chính:

  • Xử lý nội dung HTML (không phải plain text).
  • Chỉ định ngôn ngữ đích là Greek (el).
  • Yêu cầu transliteration sang Latin script (Latn).
  • API sẽ tự động detect ngôn ngữ nguồn (không cần from), vì không chỉ định nguồn.

Phiên bản API sử dụng: v3.0 (vẫn là phiên bản ổn định mới nhất đến năm 2026 theo docs Azure, chưa có thay đổi lớn ở endpoint /translate).

✅ Đáp án đúng và lý do lựa chọn

Các query parameters đúng cần thêm vào URI là 3 cái sau (theo thứ tự logic):

  • textType=html 🛠️: Xử lý nội dung webpage (HTML), giữ nguyên tags HTML trong kết quả dịch.
  • to=el 📘: Chỉ định ngôn ngữ đích là tiếng Hy Lạp (el).
  • toScript=Latn 🌐: Yêu cầu transliteration của kết quả dịch sang bảng chữ cái Latin (Roman), vì Greek dùng bảng chữ cái riêng nhưng cần phiên âm Roman.

URI hoàn chỉnh mẫu: https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&textType=html&to=el&toScript=Latn.

Lý do chọn: Những parameters này trực tiếp đáp ứng yêu cầu (HTML input, dịch sang el, transliteration Latn). API v3.0 hỗ trợ đầy đủ tính năng này mà không cần thêm gì khác.

📋 Giải thích tất cả các phương án (đúng và sai)

Dưới đây là phân tích từng lựa chọn một, giữ nguyên văn bản gốc bằng tiếng Anh. Tôi đánh dấu ✅ (đúng) hoặc ❌ (sai), kèm giải thích chi tiết bằng tiếng Việt dựa trên docs chính thức Azure Translator API v3.0 (cập nhật đến 2026).

  • toScript=Cyrl ❌
    Sai: Cyrl chỉ bảng chữ cái Cyrillic (dùng cho tiếng Nga, Bulgaria...). Yêu cầu là transliteration sang Roman alphabet (Latn), không phải Cyrillic. Tham số này sẽ gây lỗi hoặc kết quả không mong muốn.

  • from=el ❌
    Sai: from=el chỉ định ngôn ngữ nguồn là tiếng Hy Lạp, nhưng input là nội dung webpage (không xác định ngôn ngữ nguồn). API tự động detect ngôn ngữ nguồn (auto-detect), nên không cần và không nên dùng from ở đây – sẽ làm dịch sai nếu nguồn không phải el.

  • textType=html ✅
    Đúng: Input là nội dung webpage (HTML), nên dùng textType=html để API giữ nguyên cấu trúc HTML (tags như ,

    ) và chỉ dịch text. Nếu không có, API coi là plain text và có thể phá hủy format.

  • to=el ✅
    Đúng: to=el chỉ định ngôn ngữ đích là tiếng Hy Lạp (Greek). Đây là yêu cầu bắt buộc để dịch đúng mục tiêu.

  • textType=plain ❌
    Sai: textType=plain dùng cho văn bản thuần (không có tags), sẽ bỏ qua hoặc phá hủy cấu trúc HTML của webpage. Không phù hợp với input là webpage content.

  • toScript=Latn ✅
    Đúng: toScript=Latn yêu cầu transliteration (phiên âm) kết quả dịch sang bảng chữ cái Latin (Roman alphabet). Greek gốc dùng script Hy Lạp, nhưng yêu cầu cụ thể cần Roman – API hỗ trợ hoàn hảo cho el -> Latn.

📚 Tài liệu tham khảo

Nếu cần code mẫu hoặc demo URI đầy đủ, hãy cho tôi biết! 🚀

Câu 154
You plan create an index for an Azure Cognitive Search service by using the Azure portal. The Cognitive Search service will connect to an Azure SQL database.

The Azure SQL database contains a table named UserMessages. Each row in UserMessages has a field named MessageCopy that contains the text of social media messages sent by a user.

Users will perform full text searches against the MessageCopy field, and the values of the field will be shown to the users.

You need to configure the properties of the index for the MessageCopy field to support the solution.

Which attributes should you enable for the field?
  1. A Sortable and Retrievable
  2. B Filterable and Retrievable
  3. C Searchable and Facetable
  4. D Searchable and Retrievable
Xem giải thích

🧩 Phân tích chi tiết câu hỏi trắc nghiệm

📖 Nội dung câu hỏi:
Câu hỏi tập trung vào việc cấu hình thuộc tính (attributes) cho trường MessageCopy trong index của dịch vụ Azure Cognitive Search (nay được gọi là Azure AI Search theo cập nhật mới nhất năm 2024-2026). Dịch vụ này kết nối với cơ sở dữ liệu Azure SQL Database, cụ thể là bảng UserMessages. Mỗi hàng trong bảng chứa trường MessageCopy lưu trữ văn bản tin nhắn mạng xã hội từ người dùng.
Người dùng cuối sẽ thực hiện tìm kiếm full-text (tìm kiếm văn bản đầy đủ) trên trường MessageCopy, và kết quả tìm kiếm sẽ hiển thị giá trị của trường này cho họ.
Nhiệm vụ: Chọn các thuộc tính phù hợp nhất để kích hoạt cho trường MessageCopy nhằm hỗ trợ giải pháp này, sử dụng Azure portal.
🛠️ Yêu cầu chính từ câu hỏi:

  • Hỗ trợ full-text search → Cần thuộc tính cho phép tìm kiếm văn bản.
  • Hiển thị giá trị trường trong kết quả → Cần thuộc tính cho phép trả về dữ liệu trường đó.
    Không đề cập đến sắp xếp (sort), lọc (filter) chính xác, hoặc phân loại (facet) – những tính năng này không bắt buộc.

✅ Đáp án đúng: Searchable and Retrievable
Lý do chọn đáp án này (theo tài liệu Azure AI Search mới nhất 2026):
Thuộc tính Searchable cho phép thực hiện full-text search trên trường văn bản (text), sử dụng analyzer để phân tích token, stemming, và tìm kiếm từ khóa linh hoạt – hoàn hảo cho nội dung tin nhắn xã hội.
Thuộc tính Retrievable đảm bảo trường được trả về trong kết quả tìm kiếm, để hiển thị trực tiếp cho người dùng.
Kết hợp hai thuộc tính này là tối ưu, tiết kiệm tài nguyên index (không kích hoạt thừa), và phù hợp 100% với yêu cầu "full text searches" + "values of the field will be shown".

🛠️ Giải thích chi tiết từng phương án trả lời

Dưới đây là phân tích tất cả các lựa chọn, giữ nguyên văn bản gốc tiếng Anh. Mỗi phương án được đánh giá dựa trên field type: Edm.String (text dài) trong Azure AI Search, theo quy tắc mặc định và best practices mới nhất (hỗ trợ semantic search, vector search từ 2023+).

  • ❌ Sortable and Retrievable
    Phân tích sai: Sortable chỉ hỗ trợ sắp xếp kết quả theo giá trị trường (thường dùng cho số hoặc ngày tháng, không hiệu quả với text dài vì sort lexicographic chậm và không ý nghĩa cho tin nhắn). Retrievable đúng nhưng thiếu Searchable → Không hỗ trợ full-text search. Không đáp ứng yêu cầu tìm kiếm chính.

  • ❌ Filterable and Retrievable
    Phân tích sai: Filterable dùng cho lọc chính xác (exact match) hoặc OData queries, nhưng với text dài như MessageCopy, nó kém hiệu quả (không phân tích token, chỉ match toàn bộ chuỗi). Retrievable đúng, nhưng thiếu Searchable → Không thực hiện được full-text search. Phù hợp hơn cho trường keyword ngắn.

  • ❌ Searchable and Facetable
    Phân tích sai: Searchable đúng cho full-text search. Nhưng Facetable dùng để tạo facet (nhóm/lọc theo giá trị phổ biến, như category), không cần thiết ở đây vì câu hỏi không đề cập aggregation hoặc facet UI. Thiếu Retrievable → Kết quả search không hiển thị giá trị MessageCopy cho người dùng.

  • ✅ Searchable and Retrievable
    Phân tích đúng: Như đã giải thích ở trên, đây là bộ đôi hoàn hảo cho text search + hiển thị kết quả. Theo docs, đây là cấu hình mặc định khuyến nghị cho trường searchable text trong index Azure AI Search.

📘 Tài liệu tham khảo (cập nhật mới nhất đến 2026)

Hy vọng phân tích này giúp bạn nắm vững! 🚀 Nếu cần demo code hoặc cấu hình index, hãy hỏi thêm nhé!

Câu 155
You are building a chatbot by using the Microsoft Bot Framework Composer as shown in the exhibit. (Click the Exhibit tab.)

The chatbot contains a dialog named GetUserDetails. GetUserDetails contains a TextInput control that prompts users for their name.
The user input will be stored in a property named name.
You need to ensure that you can dispose of the property when the last active dialog ends.
Which scope should you assign to name?
  1. A dialog
  2. B user
  3. C turn
  4. D conversation
Xem giải thích

🧩 Phân tích nội dung câu hỏi

Câu hỏi tập trung vào việc xây dựng chatbot sử dụng Microsoft Bot Framework Composer (một công cụ thiết kế dialog trực quan cho Bot Framework SDK). Chatbot có một dialog tên là GetUserDetails, bên trong chứa TextInput control để prompt người dùng nhập tên (ví dụ: "What is your name?"). Kết quả nhập sẽ được lưu vào property tên là name.

Mục tiêu chính: Đảm bảo property name được dispose (xóa, giải phóng bộ nhớ) ngay khi last active dialog (dialog đang hoạt động cuối cùng) kết thúc. Điều này giúp tránh lưu trữ dữ liệu không cần thiết, tối ưu hóa hiệu suất và bảo mật.

Câu hỏi yêu cầu chọn scope (phạm vi tồn tại) phù hợp cho property name trong TextInput control. Scope quyết định thời điểm property bị xóa tự động.

📸 Phân tích chi tiết hình ảnh exhibit

Hình ảnh hiển thị giao diện Bot Framework Composer với dialog GetUserDetails > BeginDialog > Text:

  • Luồng dialog: Bắt đầu bằng BeginDialog event → Bot Asks (Text) ("What is your name?") → User input (Text).
  • Trong User input (Text):
    • Property: (SCOPE)name (SCOPE là dropdown cần chọn: dialog/user/turn/conversation).
    • Giá trị: Input(Text) (lưu input người dùng vào name).
    • Output format: string.
    • Expected responses: #TextInput.Response-Fallback (intent xử lý fallback).
      Hình nhấn mạnh phần SCOPE cho property name, xác nhận đây là TextInput trong dialog cụ thể.

✅ Đáp án đúng: dialog

Lý do chọn:
Scope dialog giới hạn property chỉ tồn tại trong lifespan của dialog hiện tại. Khi dialog GetUserDetails (last active dialog) kết thúc (end), property name sẽ tự động được dispose ngay lập tức. Điều này khớp chính xác yêu cầu "dispose of the property when the last active dialog ends".
🛠️ Theo tài liệu Bot Framework Composer (phiên bản mới nhất 2.1.x đến 2026, tích hợp Bot Framework SDK v4.19+), scope dialog là lựa chọn tối ưu cho dữ liệu tạm thời chỉ dùng trong một dialog duy nhất, tránh rò rỉ bộ nhớ.

🔍 Giải thích tất cả các phương án

Dưới đây là phân tích từng lựa chọn, giữ nguyên text gốc bằng tiếng Anh. Mỗi scope có lifecycle khác nhau (dựa trên docs Microsoft Learn cập nhật 2026):

✅ dialog
Đúng vì: Scope này gắn liền với dialog cụ thể (GetUserDetails). Property name chỉ sống từ lúc dialog bắt đầu đến khi kết thúc → tự động dispose khi last active dialog ends. Hoàn hảo cho dữ liệu tạm (như tên nhập một lần).

❌ user
Sai vì: Scope user lưu property xuyên suốt toàn bộ lifespan của user (tất cả conversation/session của user đó). Property name sẽ không dispose khi dialog end, mà chỉ xóa khi user hoàn toàn logout hoặc bot reset → vi phạm yêu cầu.

❌ turn
Sai vì: Scope turn chỉ tồn tại trong một turn duy nhất (một lượt trao đổi bot-user). Property name sẽ dispose ngay sau turn hiện tại, quá sớm (ngay cả khi dialog chưa end) → không giữ được dữ liệu qua các bước trong dialog.

❌ conversation
Sai vì: Scope conversation lưu property suốt toàn bộ conversation (thread trò chuyện). Property name chỉ dispose khi conversation kết thúc hoàn toàn (user rời khỏi chat), không phải khi dialog end → lưu trữ thừa, không tối ưu.

📘 Tài liệu tham khảo

🛠️ Lời khuyên từ Azure AI Engineer: Sử dụng scope dialog trong hầu hết trường hợp tạm thời để tránh memory leak. Test bằng Bot Framework Emulator để verify dispose!

Câu 156
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution.
After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen.
You create a web app named app1 that runs on an Azure virtual machine named vm1. Vm1 is on an Azure virtual network named vnet1.
You plan to create a new Azure Cognitive Search service named service1.
You need to ensure that app1 can connect directly to service1 without routing traffic over the public internet.
Solution: You deploy service1 and a public endpoint, and you configure an IP firewall rule.
Does this meet the goal?
  1. A Yes
  2. B No
Xem giải thích

📘 Giải thích nội dung câu hỏi:
Câu hỏi thuộc dạng "scenario-based" trong kỳ thi chứng chỉ Azure (như AZ-104 hoặc AZ-305), nơi bạn phải đánh giá một giải pháp cụ thể có đạt được mục tiêu hay không. Mục tiêu chính (goal): Đảm bảo web app app1 (chạy trên Azure VM vm1 trong VNet vnet1) có thể kết nối trực tiếp đến Azure Cognitive Search service mới tên service1 mà KHÔNG routing traffic qua public internet.

  • Tình huống: vm1 nằm trong VNet private (vnet1), nên cần kết nối private-to-private để tránh public internet (giảm latency, tăng bảo mật, tuân thủ compliance).
  • Giải pháp đề xuất (Solution): Deploy service1 với public endpoint và cấu hình IP firewall rule (quy tắc chặn IP không được phép truy cập public endpoint).
  • Câu hỏi: Giải pháp này có đạt goal không? (Yes/No).
    🛠️ Lưu ý quan trọng: Public endpoint của Azure AI Search (trước đây là Cognitive Search, cập nhật tên đến 2026 là Azure AI Search v2024-07-01) vẫn expose public IP, nên traffic từ app1 vẫn phải đi qua internet công cộng dù có firewall restrict IP. Để kết nối private thực sự, cần dùng Private Endpoint tích hợp với VNet (hỗ trợ từ 2021 và cập nhật full đến 2026 với Private Link).

✅ Đáp án đúng: No
Lý do lựa chọn: Giải pháp chỉ dùng public endpoint + IP firewall KHÔNG đạt goal vì:

  • Public endpoint yêu cầu traffic đi qua public internet (dù được bảo vệ bởi firewall chỉ cho phép IP cụ thể của vm1).
  • Không tạo kết nối private end-to-end trong VNet, dẫn đến rủi ro bảo mật (public exposure) và không "trực tiếp" như yêu cầu.
  • Giải pháp đúng phải deploy Private Endpoint cho service1 trong vnet1 (hoặc peered VNet), sử dụng Azure Private Link để traffic ở trong Azure backbone network. (Cập nhật 2026: Azure AI Search hỗ trợ multi-region private endpoints với global VNet peering).

🔍 Giải thích tất cả các phương án (giữ nguyên văn bản gốc):

  • Yes ❌ SAI vì: Phương án này cho rằng public endpoint + IP firewall đủ để tránh public internet, nhưng thực tế KHÔNG. IP firewall chỉ restrict nguồn IP truy cập public IP của service, traffic vẫn traverse public internet (có thể bị inspect bởi ISP hoặc tấn công MITM). Không đáp ứng "without routing traffic over the public internet" – vi phạm nguyên tắc Zero Trust của Azure.

  • No ✅ ĐÚNG vì: Như phân tích trên, giải pháp không tạo private connectivity. Phải dùng Private Endpoint (tạo NIC private trong VNet, DNS private resolution qua Azure Private DNS Zone). Điều này đảm bảo traffic internal-only, latency thấp (<10ms), và tích hợp NSG/VNet rules để bảo vệ.

📚 Tài liệu tham khảo (cập nhật mới nhất 2026):

🛠️ Khuyến nghị triển khai đúng:

  1. Tạo Private Endpoint cho service1 trong subnet của vnet1.
  2. Cấu hình Private DNS Zone (privatelink.search.windows.net) để resolve đúng private IP.
  3. Test connectivity từ vm1 bằng nslookup và telnet.
    Nếu cần code ARM/PowerShell, tôi có thể hỗ trợ thêm! 🚀
Câu 157 Chọn nhiều đáp án
You have a chatbot that was built by using the Microsoft Bot Framework.
You need to debug the chatbot endpoint remotely.
Which two tools should you install on a local computer? Each correct answer presents part of the solution.
NOTE: Each correct selection is worth one point.
  1. A Fiddler
  2. B Bot Framework Composer
  3. C Bot Framework Emulator
  4. D Bot Framework CLI
  5. E ngrok
  6. F nginx
Xem giải thích

🧩 Phân tích chi tiết nội dung câu hỏi

Câu hỏi tập trung vào việc debug (gỡ lỗi) endpoint của một chatbot được xây dựng bằng Microsoft Bot Framework từ xa (remotely).

  • Bối cảnh: Bạn có một chatbot sử dụng Microsoft Bot Framework (một framework của Microsoft để phát triển bot đa nền tảng, tích hợp với Azure Bot Service). Để debug endpoint (điểm cuối giao tiếp giữa bot và dịch vụ bên ngoài như Azure Bot Service), bạn cần cài đặt hai công cụ trên máy tính local.
  • Yêu cầu đặc biệt: Đây là câu hỏi trắc nghiệm chọn nhiều đáp án (multi-select), mỗi đáp án đúng chiếm 1 điểm. Mục tiêu là expose (mở) endpoint local ra internet để các dịch vụ remote (như Azure Bot Service) có thể truy cập và test bot như đang chạy production.
  • Kiến thức cập nhật (đến 2026): Theo tài liệu Microsoft Bot Framework phiên bản mới nhất (v4.14+ và tích hợp Azure AI Bot Service 2024-2026), quy trình debug remote chuẩn vẫn sử dụng Bot Framework Emulator kết hợp ngrok để tạo tunnel HTTP/HTTPS an toàn. Không có thay đổi lớn từ AWS vì chủ đề thuần Microsoft (không liên quan AWS).

✅ Đáp án đúng và lý do lựa chọn

Hai công cụ cần cài đặt là:

  • Bot Framework Emulator
  • ngrok

Lý do:
🛠️ Bot Framework Emulator là công cụ chính thức của Microsoft để chạy, test và debug bot local một cách trực quan, hỗ trợ simulate các cuộc trò chuyện và kiểm tra logs realtime.
🛠️ ngrok tạo tunnel từ localhost (ví dụ: http://localhost:3978) ra một public URL tạm thời (https://abc.ngrok.io), cho phép Azure Bot Service hoặc các dịch vụ remote kết nối debug mà không cần deploy lên cloud.
Kết hợp hai tool này là best practice chuẩn theo hướng dẫn Microsoft (không cần VPN hay server proxy phức tạp).

📋 Giải thích tất cả các phương án (đúng và sai)

Dưới đây là phân tích từng lựa chọn, giữ nguyên văn bản gốc tiếng Anh:

  • ❌ Fiddler
    Sai: Fiddler là công cụ debug HTTP/HTTPS traffic tổng quát (web proxy debugger), có thể capture request/response nhưng không chuyên biệt cho Bot Framework. Nó không hỗ trợ simulate conversation flow hay tích hợp trực tiếp với bot endpoint như Emulator, dẫn đến debug kém hiệu quả và phức tạp hơn.

  • ❌ Bot Framework Composer
    Sai: Đây là công cụ low-code/no-code để xây dựng và thiết kế bot (visual editor dựa trên Adaptive Dialogs), không dùng để debug remote endpoint. Nó tập trung vào development, không thay thế Emulator cho testing realtime.

  • ✅ Bot Framework Emulator
    Đúng: Công cụ desktop chính thức (Windows/macOS/Linux) để debug bot local và remote. Hỗ trợ inspect messages, logs, attachments, và kết nối qua ngrok URL. Phiên bản mới nhất (2.2+ đến 2026) tích hợp AI debugging với Azure OpenAI.

  • ❌ Bot Framework CLI
    Sai: Đây là command-line tool (bot-cli) để deploy, manage channels và provisioning (như connect-to-channel), không hỗ trợ debug interactive hay expose endpoint. Nó dùng cho automation, không phải testing realtime.

  • ✅ ngrok
    Đúng: Công cụ tunnel phổ biến (miễn phí tier đủ dùng) để expose localhost ra public HTTPS endpoint an toàn. Bot Framework yêu cầu endpoint public cho remote services (Azure Bot Service), ngrok giải quyết vấn đề firewall/NAT mà không cần server riêng.

  • ❌ nginx
    Sai: Nginx là web server/reverse proxy cao cấp, có thể config tunnel nhưng quá phức tạp, không portable cho local debug. Không có integration sẵn với Bot Framework, và Microsoft không recommend cho trường hợp này (ngrok đơn giản hơn nhiều).

📘 Tài liệu tham khảo

Hy vọng phân tích này giúp bạn nắm vững! 🚀 Nếu cần demo code, hỏi thêm nhé!

Câu 158
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution.
After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen.
You create a web app named app1 that runs on an Azure virtual machine named vm1. Vm1 is on an Azure virtual network named vnet1.
You plan to create a new Azure Cognitive Search service named service1.
You need to ensure that app1 can connect directly to service1 without routing traffic over the public internet.
Solution: You deploy service1 and a public endpoint, and you configure a network security group (NSG) for vnet1.
Does this meet the goal?
  1. A Yes
  2. B No
Xem giải thích

🧩 Phân tích chi tiết nội dung câu hỏi

Câu hỏi này thuộc dạng case study (bộ câu hỏi liên quan đến một tình huống cụ thể), thường xuất hiện trong kỳ thi chứng chỉ Microsoft Azure như AZ-104 hoặc AZ-305. Tình huống mô tả:

  • Bạn tạo một web app tên app1 chạy trên Azure Virtual Machine (VM) tên vm1.
  • vm1 nằm trong Azure Virtual Network (VNet) tên vnet1.
  • Bạn dự định tạo dịch vụ Azure Cognitive Search (nay gọi là Azure AI Search từ năm 2023, phiên bản mới nhất 2026 vẫn hỗ trợ tên cũ) tên service1.
  • Mục tiêu (goal): Đảm bảo app1 có thể kết nối trực tiếp với service1 mà không đi qua public internet (private connection, tránh lộ traffic ra internet công cộng).

Giải pháp đề xuất (Solution): Triển khai service1 với public endpoint, và cấu hình Network Security Group (NSG) cho vnet1.
Câu hỏi: Giải pháp này có đạt mục tiêu không? (Does this meet the goal?)

🛠️ Phân tích kỹ thuật:

  • Public endpoint của Azure AI Search mặc định expose dịch vụ ra internet công cộng, nghĩa là mọi kết nối (kể cả từ VM trong VNet) đều phải đi qua public IP của service1.
  • NSG chỉ là firewall layer 3/4, dùng để kiểm soát inbound/outbound traffic dựa trên rules (IP, port, protocol). Nó không thay đổi đường đi traffic từ public sang private; traffic từ vm1 vẫn phải route qua internet đến public endpoint của service1.
  • Để đạt private connection thực sự (theo best practice Azure 2026), cần sử dụng Private Endpoint (tích hợp với VNet qua Private Link), kết hợp Private DNS Zone để resolve DNS private. Điều này tạo private IP trong VNet, traffic chỉ đi nội bộ Azure backbone network.

📘 Tài liệu tham khảo:

✅ Đáp án đúng và lý do lựa chọn

Đáp án đúng: No
✅ Lý do: Giải pháp chỉ deploy public endpoint và NSG không đảm bảo traffic private. Public endpoint buộc traffic từ app1/vm1 đi qua internet công cộng (dù NSG có thể block một phần public access). Không đạt mục tiêu "without routing traffic over the public internet". Giải pháp đúng phải dùng Private Endpoint để map service1 vào VNet qua private IP.

📝 Giải thích tất cả các phương án

  • Yes
    ❌ Phương án này SAI vì: Deploy service1 với public endpoint nghĩa là dịch vụ expose public IP, traffic từ vm1 trong vnet1 vẫn phải traverse public internet để đến service1. NSG chỉ filter traffic (ví dụ: allow port 443 từ VNet subnet), nhưng không chuyển traffic thành private route. Theo tài liệu Azure 2026, NSG không hỗ trợ Private Link; traffic public vẫn public, dễ bị tấn công DDoS hoặc lộ dữ liệu.

  • No
    ✅ Phương án này ĐÚNG vì: Giải pháp đề xuất không giải quyết vấn đề cốt lõi. Để connect private: (1) Tạo Private Endpoint cho service1 trong vnet1 (hoặc peered VNet), (2) Link với Private DNS Zone (privatelink.search.windows.net), (3) VM resolve tên miền service1 thành private IP. Traffic chỉ đi nội bộ Azure network, zero public exposure. Đây là yêu cầu security cao trong Azure Well-Architected Framework 2026.

Câu 159
Your company uses an Azure Cognitive Services solution to detect faces in uploaded images. The method to detect the faces uses the following code.
static async Task DetectFaces(string imageFilePath)
{
    HttpClient client = new HttpClient();
    DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey);
    string requestParameter = "detectionModel=detection_01&returnFaceId=true&returnFaceLandmarks=false";
    string uri = endpoint + "/face/v1.0/detect?" + requestParameter;
    HttpResponseMessage response;
    byte[] byteData = GetImagesAsByteArray(imageFilePath);
    using (ByteArrayContent content = new ByteArrayContent(byteData))
    {
        Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
        response = await PostAsync(uri, content);
        string contentString = await Content.ReadAsStringAsync();
        ProcessDetection(contentString);
    }
}

You discover that the solution frequently fails to detect faces in blurred images and in images that contain sideways faces.
You need to increase the likelihood that the solution can detect faces in blurred images and images that contain sideways faces.
What should you do?
  1. A Use a different version of the Face API.
  2. B Use the Computer Vision service instead of the Face service.
  3. C Use the Identify method instead of the Detect method.
  4. D Change the detection model.
Xem giải thích

🧩 Phân tích chi tiết nội dung câu hỏi

Câu hỏi này xoay quanh Azure Cognitive Services - Face API, một dịch vụ của Microsoft Azure dùng để phát hiện khuôn mặt trong hình ảnh. Mã code được cung cấp sử dụng phương thức DetectFaces với endpoint /face/v1.0/detect và tham số detectionModel=detection_01. Model này là phiên bản cũ (legacy), được thiết kế cho tốc độ cao nhưng hạn chế trong việc xử lý hình ảnh bị mờ (blurred images) và khuôn mặt nghiêng (sideways faces - quay đến 90 độ).

Vấn đề: Giải pháp thường thất bại khi detect những loại hình ảnh này.
Mục tiêu: Tăng khả năng detect bằng cách thay đổi cấu hình phù hợp, dựa trên phiên bản mới nhất của Azure Face API (cập nhật đến 2024-2026, theo tài liệu chính thức Microsoft, Face API v1.0 vẫn hỗ trợ các model cải tiến).

📘 Tài liệu tham khảo:

✅ Đáp án đúng: Change the detection model

Lý do lựa chọn:
Model detection_01 là phiên bản nhỏ, nhanh nhưng chỉ hỗ trợ khuôn mặt chính diện (frontal faces), kém hiệu quả với hình ảnh mờ hoặc quay nghiêng (±15° tối đa). Để khắc phục, cần thay đổi sang detectionModel=detection_02 (model lớn hơn, chính xác cao, hỗ trợ:
🛠️ Xử lý blur, low-light, occlusion (che khuất).
🛠️ Hỗ trợ rotation lên đến ±90° (sideways faces).
Chỉ cần sửa dòng string requestParameter = "detectionModel=detection_02&returnFaceId=true&returnFaceLandmarks=false"; là giải quyết ngay, không cần thay đổi code lớn. Đây là giải pháp đơn giản, hiệu quả nhất theo best practices Azure (cập nhật 2024+).

📋 Giải thích tất cả các phương án

  • Use a different version of the Face API. ❌
    Sai vì: Face API vẫn dùng v1.0 (endpoint /face/v1.0/detect ổn định và được hỗ trợ lâu dài đến 2026+). Vấn đề không phải version API mà là detection model bên trong. Thay version (như v3 preview) có thể phá vỡ code hiện tại và không cần thiết, vì v1.0 đã hỗ trợ model mới.

  • Use the Computer Vision service instead of the Face service. ❌
    Sai vì: Computer Vision API (như /vision/v3.2/analyze) chỉ detect khuôn mặt cơ bản (generic face detection), không chuyên sâu như Face API (không có faceId, landmarks chi tiết). Nó kém hơn trong xử lý blur/sideways, và sẽ yêu cầu viết lại toàn bộ code - không giải quyết gốc rễ.

  • Use the Identify method instead of the Detect method. ❌
    Sai vì: Detect dùng để phát hiện khuôn mặt (trả về bounding box, faceId). Identify dùng sau khi detect, để so sánh faceId với PersonGroup (xác định danh tính). Thay thế sẽ lỗi logic, vì chưa detect được face thì không identify được, không cải thiện khả năng detect blur/sideways.

  • Change the detection model. ✅
    Đúng vì: Như giải thích ở trên, chuyển sang detection_02 trực tiếp khắc phục hạn chế của detection_01, tăng accuracy lên gấp đôi với các trường hợp khó (blur, sideways). Đây là khuyến nghị chính thức từ Microsoft.

🛠️ Khuyến nghị thực tế: Test với sample images trên Azure portal để verify trước khi deploy!

Câu 160 Chọn nhiều đáp án
You need to enable speech capabilities for a chatbot.
Which three actions should you perform? Each correct answer presents part of the solution.
NOTE: Each correct selection is worth one point.
  1. A Enable WebSockets for the chatbot app.
  2. B Create a Speech service.
  3. C Register a Direct Line Speech channel.
  4. D Register a Cortana channel.
  5. E Enable CORS for the chatbot app.
  6. F Create a Language Understanding service.
Xem giải thích

🧩 Phân tích nội dung câu hỏi

Câu hỏi này thuộc chủ đề Azure Bot Framework và Azure Cognitive Services, tập trung vào việc kích hoạt khả năng xử lý giọng nói (speech capabilities) cho một chatbot. Cụ thể, bạn cần chọn ba hành động đúng để tích hợp speech vào chatbot, cho phép người dùng nói chuyện với bot qua giọng nói (speech-to-text và text-to-speech).

Đây là câu hỏi kiểu multiple correct answers (mỗi đáp án đúng đáng 1 điểm), thường xuất hiện trong các kỳ thi chứng chỉ Microsoft Azure như AZ-204: Developing Solutions for Microsoft Azure hoặc AI-102: Designing and Implementing a Microsoft Azure AI Solution. Quy trình chính bao gồm:

  • Tạo tài nguyên Speech service để xử lý âm thanh.
  • Kết nối bot với kênh chuyên biệt cho speech.
  • Cấu hình ứng dụng bot để hỗ trợ giao tiếp thời gian thực qua WebSocket (vì speech yêu cầu kết nối liên tục).

Lưu ý: Mặc dù người dùng đề cập "liên quan đến AWS", nhưng nội dung câu hỏi rõ ràng là về Azure (Speech service, Direct Line Speech channel là các tính năng độc quyền của Microsoft). Tôi sử dụng kiến thức cập nhật đến năm 2026 dựa trên tài liệu Azure Bot Service phiên bản mới nhất (v4.14+ và Cognitive Services Speech SDK 1.38+), nơi Direct Line Speech vẫn là kênh chính cho speech bot mà không có thay đổi lớn.

📘 Tài liệu tham khảo:

✅ Đáp án đúng (3 lựa chọn)

Các đáp án đúng là:

  • Enable WebSockets for the chatbot app.
  • Create a Speech service.
  • Register a Direct Line Speech channel.

Lý do lựa chọn: 🛠️ Enable WebSockets for the chatbot app: Speech yêu cầu kết nối thời gian thực hai chiều (streaming audio), WebSockets là giao thức bắt buộc để bot nhận/gửi dữ liệu âm thanh mà không bị ngắt quãng. Không enable sẽ gây lỗi kết nối.

🛠️ Create a Speech service: Đây là tài nguyên Azure Cognitive Services Speech (trước là Bing Speech API), cung cấp key và endpoint để chuyển đổi speech-to-text (STT) và text-to-speech (TTS). Bắt buộc phải tạo trước khi tích hợp.

🛠️ Register a Direct Line Speech channel: Kênh này kết nối bot với Speech SDK, hỗ trợ giao tiếp giọng nói trực tiếp qua WebSocket. Đây là bước chính thức hóa kết nối giữa bot và Speech service.

📋 Giải thích tất cả các phương án

Dưới đây là phân tích chi tiết từng lựa chọn, giữ nguyên văn bản gốc tiếng Anh. Tôi đánh dấu ✅ (đúng) hoặc ❌ (sai), kèm giải thích rõ ràng bằng tiếng Việt dựa trên quy trình chuẩn Azure Bot Framework.

  • Enable WebSockets for the chatbot app.
    ✅ Đúng. WebSockets cần thiết cho streaming audio thời gian thực trong speech bot. Theo docs Azure, khi deploy bot lên web app (như Azure App Service), phải enable WebSockets trong cấu hình để hỗ trợ Direct Line Speech channel.

  • Create a Speech service.
    ✅ Đúng. Speech service là nền tảng cốt lõi cung cấp API cho STT/TTS. Trong portal Azure, bạn tạo resource "Speech" (không phải Custom Speech nếu không tùy chỉnh), lấy key và region để config vào bot.

  • Register a Direct Line Speech channel.
    ✅ Đúng. Trong Azure Bot resource > Channels, đăng ký "Direct Line Speech" và liên kết với Speech service key. Kênh này tự động xử lý token và WebSocket cho speech integration.

  • Register a Cortana channel.
    ❌ Sai. Cortana channel chỉ dành cho tích hợp với trợ lý ảo Cortana (đã deprecated từ 2021 và loại bỏ hoàn toàn trong Azure Bot Service 2024+). Nó không hỗ trợ speech capabilities chung cho chatbot, chỉ dùng cho skill Cortana cũ.

  • Enable CORS for the chatbot app.
    ❌ Sai. CORS (Cross-Origin Resource Sharing) dùng để cho phép web client gọi API bot từ domain khác, nhưng không liên quan trực tiếp đến speech. Speech dùng WebSockets riêng, và Direct Line Speech tự xử lý CORS nếu cần.

  • Create a Language Understanding service.
    ❌ Sai. Language Understanding (LUIS, nay là CLU - Conversational Language Understanding từ 2024) dùng cho Natural Language Understanding (NLU), phân tích intent/entity từ text. Không cần cho speech capabilities cơ bản (chỉ chuyển text sang speech), trừ khi bot cần NLU nâng cao.

🧠 Tóm tắt quy trình thực hiện: 1️⃣ Tạo Speech service → 2️⃣ Tạo/Deploy bot → 3️⃣ Register Direct Line Speech channel → 4️⃣ Enable WebSockets trên hosting app → Test với Speech SDK sample. Nếu thiếu bất kỳ bước nào, speech sẽ fail!