Wykonywanie zapytań względem bazy wiedzy w celu uzyskania odpowiedzi

Należy opublikować bazę wiedzy. Po opublikowaniu baza wiedzy jest odpytywane w punkcie końcowym przewidywania środowiska uruchomieniowego przy użyciu interfejsu API generateAnswer. Zapytanie zawiera tekst pytania i inne ustawienia, aby ułatwić usłudze QnA Maker wybranie najlepszego możliwego dopasowania do odpowiedzi.

Uwaga

Usługa QnA Maker jest wycofywana 31 marca 2025 r. Nowsza wersja funkcji pytań i odpowiedzi jest teraz dostępna w ramach usługi Azure Cognitive Service for Language. Aby uzyskać informacje na temat możliwości odpowiadania na pytania w usłudze językowej, zobacz odpowiadanie na pytania. Od 1 października 2022 r. nie będzie można tworzyć nowych zasobów usługi QnA Maker. Aby uzyskać informacje na temat migrowania istniejących baz wiedzy usługi QnA Maker do odpowiadania na pytania, zapoznaj się z przewodnikiem migracji.

Jak usługa QnA Maker przetwarza zapytanie użytkownika, aby wybrać najlepszą odpowiedź

Wytrenowana i opublikowana baza wiedzy usługi QnA Maker otrzymuje zapytanie użytkownika z bota lub innej aplikacji klienckiej w interfejsie API GenerateAnswer. Na poniższym diagramie przedstawiono proces odbierania zapytania użytkownika.

The ranking model process for a user query

Proces klasyfikatora

Proces został wyjaśniony w poniższej tabeli.

Krok Przeznaczenie
1 Aplikacja kliencka wysyła zapytanie użytkownika do interfejsu API GenerateAnswer.
2 Usługa QnA Maker wstępnie przetwarza zapytanie użytkownika za pomocą funkcji wykrywania języka, sprawdzania pisowni i dzielenia wyrazów.
3 To wstępne przetwarzanie jest wykonywane w celu zmiany zapytania użytkownika w celu uzyskania najlepszych wyników wyszukiwania.
4 To zmienione zapytanie jest wysyłane do indeksu usługi Azure Cognitive Search, który otrzymuje top liczbę wyników. Jeśli prawidłowa odpowiedź nie znajduje się w tych wynikach, zwiększ wartość nieznacznie top . Ogólnie rzecz biorąc, wartość 10 dla top działa w 90% zapytań. Filtry usługi Azure Search zatrzymują wyrazy w tym kroku.
5 Usługa QnA Maker używa cech opartych na składni i semantyce w celu określenia podobieństwa między zapytaniem użytkownika a pobranymi wynikami pytań i odpowiedzi.
6 Model klasyfikatora nauczonego maszynowo używa różnych funkcji od kroku 5, aby określić wyniki ufności i nową kolejność klasyfikacji.
7 Nowe wyniki są zwracane do aplikacji klienckiej w kolejności uporządkowanej.

Używane funkcje obejmują, ale nie są ograniczone do semantyki na poziomie wyrazów, znaczenia na poziomie terminów w korpusie i głębokich modeli semantycznych w celu określenia podobieństwa i istotności między dwoma ciągami tekstowymi.

Żądanie HTTP i odpowiedź z punktem końcowym

Podczas publikowania bazy wiedzy usługa tworzy punkt końcowy HTTP oparty na protokole REST, który można zintegrować z aplikacją, zazwyczaj czatbota.

Żądanie zapytania użytkownika w celu wygenerowania odpowiedzi

Zapytanie użytkownika to pytanie, które użytkownik końcowy zadaje bazie wiedzy, na przykład How do I add a collaborator to my app?. Zapytanie jest często w formacie języka naturalnego lub kilka słów kluczowych, które reprezentują pytanie, takie jak help with collaborators. Zapytanie jest wysyłane do bazy wiedzy z żądania HTTP w aplikacji klienckiej.

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

Odpowiedź można kontrolować, ustawiając właściwości, takie jak scoreThreshold, top i strictFilters.

Kontekst konwersacji z funkcją wieloetapową umożliwia uściślinie konwersacji w celu uściślinia pytań i odpowiedzi, aby znaleźć poprawną i ostateczną odpowiedź.

Odpowiedź z wywołania w celu wygenerowania odpowiedzi

Odpowiedź HTTP to odpowiedź pobrana z bazy wiedzy na podstawie najlepszego dopasowania dla danego zapytania użytkownika. Odpowiedź zawiera odpowiedź i wynik przewidywania. Jeśli poprosisz o więcej niż jedną jedną odpowiedź z właściwością top , otrzymasz więcej niż jedną odpowiedź, z których każda ma wynik.

{
    "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"
                }
            ]
        }
    ]
}

Następne kroki