Sdílet prostřednictvím


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.

Proces modelu řazení pro uživatelský dotaz

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