Grounded Answers
Your support chatbot searches a company's help articles in Azure AI Search for passages related to a customer's question, then hands those passages to Azure OpenAI along with the question, and asks it to write an answer.
When Azure AI Search comes back empty, or every passage is only loosely related, Azure OpenAI doesn't refuse to answer. It still writes something specific and confident, because that's what it was asked to do. The result reads exactly like a correct answer, with no signal to anyone that it was invented rather than found.
Azure AI Search found nothing that actually covers the question, but nothing in the process stops Azure OpenAI from answering anyway. That's exactly what grounded answers prevent.
Grounding the answer closes that gap: add an instruction to the system prompt telling Azure OpenAI to answer only using the retrieved Azure AI Search passages, and to return a fixed line, like "I don't have that information," when none of them apply. After Azure OpenAI responds, have ASP.NET Core call Azure AI Content Safety's Groundedness Detection API, passing it the response and the same passages, and check whether the answer is actually supported by them. If it isn't, discard it in code and hand the conversation to a human agent instead, no matter what Azure OpenAI produced.
Use: Azure AI Content Safety (Groundedness Detection API)
Azure OpenAI is told to stick to what it was given. Groundedness Detection checks that it actually did, so an ungrounded answer gets caught in code, not just hoped against in a prompt.
Ask a librarian a question, and hand them three books that turn out to be about something else.
A good librarian tells you the books don't cover it. A librarian who feels obligated to answer anyway starts guessing, and sounds just as sure either way.
The librarian who says "that's not in here" instead of guessing.