Dotazování znalostní báze na odpovědi

Je nutné publikovat znalostní báze. Po publikování se znalostní báze dotazuje na koncový bod předpovědi modulu runtime pomocí rozhraní GENERATEAnswer API. Dotaz obsahuje text otázky a další nastavení, aby služba QnA Maker vybrali nejlepší možnou shodu s odpovědí.

Poznámka:

Služba QnA Maker se vyřadí z provozu 31. března 2025. Novější verze funkce pro otázky a odpovědi je teď dostupná jako součást jazyka Azure AI. Možnosti odpovídání na otázky v rámci služby Language Service najdete v tématu odpovědi na otázky. Od 1. října 2022 nebudete moct vytvářet nové prostředky služby QnA Maker. Informace o migraci stávajících znalostní báze služby QnA Maker na zodpovězení otázek najdete v průvodci migrací.

Jak QnA Maker zpracovává uživatelský dotaz, aby vybral nejlepší odpověď

Vytrénované a publikované služby QnA Maker znalostní báze obdrží uživatelský dotaz z robota nebo jiné klientské aplikace v rozhraní GenerateAnswer API. Následující diagram znázorňuje proces při přijetí uživatelského dotazu.

The ranking model process for a user query

Proces rankeru

Tento proces je vysvětlen v následující tabulce.

Krok Účel
0 Klientská aplikace odešle dotaz uživatele do rozhraní GenerateAnswer API.
2 QnA Maker předzpracuje uživatelský dotaz s rozpoznáváním jazyka, kontrolami pravopisu a dělením slov.
3 Tímto předzpracováním se změní uživatelský dotaz na nejlepší výsledky hledání.
4 Tento upravený dotaz se odešle do indexu azure AI Search, který obdrží top počet výsledků. Pokud správná odpověď není v těchto výsledcích, zvyšte hodnotu top mírně. Obecně platí, že hodnota 10 pro top práci v 90 % dotazů. Azure Search v tomto kroku zastaví slova .
5 QnA Maker používá syntaktické a sémantické featurizace k určení podobnosti mezi uživatelským dotazem a načtenými výsledky QnA.
6 Strojově naučený model ranker používá různé funkce z kroku 5 k určení skóre spolehlivosti a nového pořadí řazení.
7 Nové výsledky se vrátí do klientské aplikace v seřazeném pořadí.

Mezi používané funkce patří sémantika na úrovni slov, důležitost termínů v korpusu a hluboké sémantické modely, které určují podobnost a relevanci mezi dvěma textovými řetězci.

Požadavek HTTP a odpověď s koncovým bodem

Když publikujete znalostní báze, služba vytvoří koncový bod HTTP založený na REST, který je možné integrovat do vaší aplikace, což je obvykle chatovací robot.

Žádost uživatele o vygenerování odpovědi

Dotaz uživatele je otázka, kterou koncový uživatel položí znalostní báze, například How do I add a collaborator to my app?. Dotaz je často ve formátu přirozeného jazyka nebo v několika klíčových slovech, která představují otázku, například help with collaborators. Dotaz se odešle do vašeho znalostní báze z požadavku HTTP v klientské aplikaci.

{
    "question": "How do I add a collaborator to my app?",
    "top": 6,
    "isTest": true,
    "scoreThreshold": 20,
    "strictFilters": [
    {
        "name": "QuestionType",
        "value": "Support"
    }],
    "userId": "sd53lsY="
}

Odpověď můžete řídit nastavením vlastností, jako jsou scoreThreshold, top a strictFilters.

Pomocí kontextu konverzace s více funkcemi můžete konverzaci upřesnit a zpřesnit otázky a odpovědi a najít správnou a konečnou odpověď.

Odpověď z volání pro vygenerování odpovědi

Odpověď HTTP je odpověď načtená z znalostní báze na základě nejlepší shody pro daný uživatelský dotaz. Odpověď obsahuje odpověď a skóre předpovědi. Pokud jste požádali o více než jednu nejlepší odpověď s top vlastností, získáte více než jednu nejlepší odpověď, z nichž každá má skóre.

{
    "answers": [
        {
            "questions": [
                "How do I add a collaborator to my app?",
                "What access control is provided for the app?",
                "How do I find user management and security?"
            ],
            "answer": "Use the Azure portal to add a collaborator using Access Control (IAM)",
            "score": 100,
            "id": 1,
            "source": "Editorial",
            "metadata": [
                {
                    "name": "QuestionType",
                    "value": "Support"
                },
                {
                    "name": "ToolDependency",
                    "value": "Azure Portal"
                }
            ]
        }
    ]
}

Další kroky