Filtrowanie odpowiedzi za pomocą metadanych

Usługa QnA Maker umożliwia dodawanie metadanych w postaci par klucz i wartość do par pytań i odpowiedzi. Następnie możesz użyć tych informacji, aby filtrować wyniki zapytań użytkowników i przechowywać dodatkowe informacje, które mogą być używane w kolejnych konwersacjach.

Uwaga

Usługa QnA Maker jest wycofana 31 marca 2025 r. Nowsza wersja funkcji pytań i odpowiedzi jest teraz dostępna w ramach języka sztucznej inteligencji platformy Azure. Aby uzyskać możliwości odpowiedzi 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.

Przechowywanie pytań i odpowiedzi za pomocą jednostki QnA

Ważne jest, aby zrozumieć, jak usługa QnA Maker przechowuje dane pytań i odpowiedzi. Na poniższej ilustracji przedstawiono jednostkę QnA:

Ilustracja przedstawiająca jednostkę QnA

Każda jednostka QnA ma unikatowy i trwały identyfikator. Identyfikator służy do aktualizowania określonej jednostki QnA.

Używanie metadanych do filtrowania odpowiedzi według niestandardowych tagów metadanych

Dodawanie metadanych umożliwia filtrowanie odpowiedzi według tych tagów metadanych. Dodaj kolumnę metadanych z menu Opcje widoku . Dodaj metadane do baza wiedzy, wybierając ikonę metadanych, aby dodać parę metadanych+. Ta para składa się z jednego klucza i jednej wartości.

Zrzut ekranu przedstawiający dodawanie metadanych

Filtrowanie wyników za pomocą filtrów strictFilters dla tagów metadanych

Rozważ pytanie użytkownika "Kiedy ten hotel jest blisko?", gdzie intencja jest dorozumiana dla restauracji "Paradise".

Ponieważ wyniki są wymagane tylko dla restauracji "Paradise", można ustawić filtr w wywołaniu GenerateAnswer metadanych "Nazwa restauracji". W poniższym przykładzie pokazano następujące kwestie:

{
    "question": "When does this hotel close?",
    "top": 1,
    "strictFilters": [ { "name": "restaurant", "value": "paradise"}]
}

Filtruj według źródła

Jeśli masz wiele źródeł zawartości w baza wiedzy i chcesz ograniczyć wyniki do określonego zestawu źródeł, możesz to zrobić przy użyciu zastrzeżonego słowa kluczowegosource_name_metadata, jak pokazano poniżej.

"strictFilters": [
    {
        "name": "category",
        "value": "api"
    },
   {
        "name": "source_name_metadata",
        "value": "boby_brown_docx"
    },
   {
        "name": "source_name_metadata",
        "value": "chitchat.tsv"
   }
]

Domyślnie logiczne I

Aby połączyć kilka filtrów metadanych w zapytaniu, dodaj dodatkowe filtry metadanych do tablicy strictFilters właściwości. Domyślnie wartości są logicznie łączone (AND). Kombinacja logiczna wymaga, aby wszystkie filtry odpowiadały parom QnA, aby para została zwrócona w odpowiedzi.

Jest to równoważne użyciu strictFiltersCompoundOperationType właściwości z wartością AND.

Logiczne OR przy użyciu właściwości strictFiltersCompoundOperationType

W przypadku łączenia kilku filtrów metadanych, jeśli interesuje Cię tylko jeden lub niektóre pasujące filtry, użyj strictFiltersCompoundOperationType właściwości z wartością OR.

Dzięki temu baza wiedzy zwraca odpowiedzi, gdy wszystkie dopasowania filtru nie będą zwracać odpowiedzi, ale nie będą zwracać odpowiedzi, które nie mają metadanych.

{
    "question": "When do facilities in this hotel close?",
    "top": 1,
    "strictFilters": [
      { "name": "type","value": "restaurant"},
      { "name": "type", "value": "bar"},
      { "name": "type", "value": "poolbar"}
    ],
    "strictFiltersCompoundOperationType": "OR"
}

Przykłady metadanych w przewodnikach Szybki start

Dowiedz się więcej o metadanych w przewodniku Szybki start dotyczącym metadanych w portalu usługi QnA Maker:

Używanie wyników pytań i odpowiedzi, aby zachować kontekst konwersacji

Odpowiedź na element GenerateAnswer zawiera odpowiednie informacje o metadanych dopasowanej pary pytań i odpowiedzi. Te informacje można użyć w aplikacji klienckiej do przechowywania kontekstu poprzedniej konwersacji do użycia w kolejnych konwersacjach.

{
    "answers": [
        {
            "questions": [
                "What is the closing time?"
            ],
            "answer": "10.30 PM",
            "score": 100,
            "id": 1,
            "source": "Editorial",
            "metadata": [
                {
                    "name": "restaurant",
                    "value": "paradise"
                },
                {
                    "name": "location",
                    "value": "secunderabad"
                }
            ]
        }
    ]
}

Następne kroki