Udostępnij za pośrednictwem


Dodawanie semantycznego rankingu do zapytań w usłudze Azure AI Search

Klasyfikację semantyczną można zastosować do zapytań tekstowych, zapytań hybrydowych i zapytań wektorowych, jeśli dokumenty wyszukiwania zawierają pola ciągów, a zapytanie wektorowe zawiera reprezentację tekstową w dokumencie wyszukiwania.

W tym artykule wyjaśniono, jak wywołać semantyczny rangator zapytań.

Wymagania wstępne

Uwaga

Transkrypty i odpowiedzi są wyodrębniane z tekstu w dokumencie wyszukiwania. Podsystem semantyczny używa zrozumienia odczytu maszynowego do rozpoznawania zawartości o cechach podpisu lub odpowiedzi, ale nie komponuje nowych zdań ani fraz. Z tego powodu zawartość zawierająca wyjaśnienia lub definicje najlepiej sprawdza się w przypadku klasyfikacji semantycznej. Jeśli chcesz użyć interakcji w stylu czatu z wygenerowanymi odpowiedziami, zobacz Pobieranie rozszerzonej generacji (RAG).

Wybieranie klienta

Aby utworzyć zapytanie korzystające z klasyfikacji semantycznej, można użyć dowolnego z następujących narzędzi i zestawów SDK:

Unikaj funkcji pomijających ocenianie istotności

Kilka możliwości zapytań pomija ocenianie istotności, co sprawia, że są one niezgodne z klasyfikacją semantyczną. Jeśli logika zapytań zawiera następujące funkcje, nie można semantycznie sklasyfikować wyników:

  • Zapytanie z search=* pustym ciągiem wyszukiwania, takim jak czyste zapytanie tylko do filtrowania, nie będzie działać, ponieważ nie ma nic do mierzenia istotności semantycznej względem i dlatego wyniki wyszukiwania są zerowe. Zapytanie musi podać terminy lub frazy, które można ocenić podczas przetwarzania.

  • Sortowanie (klauzule orderBy) dla określonych pól zastępuje wyniki wyszukiwania i wynik semantyczny. Biorąc pod uwagę, że semantyczny wynik ma dostarczyć klasyfikację, dodanie klauzuli orderby powoduje błąd HTTP 400, jeśli zastosujesz semantyczny ranking dla uporządkowanych wyników.

Konfigurowanie zapytania

W tym kroku dodaj parametry do żądania zapytania. Aby to się powiodło, zapytanie powinno być wyszukiwaniem pełnotekstowym (przy użyciu parametru search do przekazania ciągu) lub zapytania wektorowego, a indeks powinien zawierać pola tekstowe z zawartością semantyczną sformatowaną i konfiguracją semantyczną.

Eksplorator wyszukiwania zawiera opcje klasyfikacji semantycznej.

  1. Zaloguj się w witrynie Azure Portal.

  2. Otwórz indeks wyszukiwania i wybierz pozycję Eksplorator wyszukiwania.

  3. Wybierz pozycję Opcje zapytania. Jeśli konfiguracja semantyczna została już zdefiniowana, jest ona domyślnie wybrana. Jeśli go nie masz, utwórz konfigurację semantyczną dla indeksu.

    Zrzut ekranu przedstawiający opcje zapytania w Eksploratorze wyszukiwania.

  4. Wprowadź zapytanie, takie jak "zabytkowy hotel z dobrym jedzeniem", a następnie wybierz pozycję Wyszukaj.

  5. Alternatywnie wybierz widok JSON i wklej definicje do edytora zapytań:

    Zrzut ekranu przedstawiający składnię zapytania JSON w witrynie Azure Portal.

    Oto tekst JSON, który można wkleić do widoku:

     {
         "queryType": "semantic",
         "search": "historic hotel with good food",
         "semanticConfiguration": "my-semantic-config",
         "answers": "extractive|count-3",
         "captions": "extractive|highlight-true",
         "highlightPreTag": "<strong>",
         "highlightPostTag": "</strong>",
         "select": "HotelId,HotelName,Description,Category",
         "count": true
     }
    

Ocenianie odpowiedzi

Tylko 50 pierwszych dopasowań z początkowych wyników może być semantycznie sklasyfikowanych. Podobnie jak w przypadku wszystkich zapytań odpowiedź składa się ze wszystkich pól oznaczonych jako możliwe do pobrania lub tylko tych pól wymienionych w parametrze select . Odpowiedź zawiera oryginalny wynik istotności i może również zawierać liczbę lub wyniki wsadowe, w zależności od sposobu sformułowania żądania.

W klasyfikacji semantycznej odpowiedź ma więcej elementów: nowy semantycznie sklasyfikowany wynik istotności, opcjonalny podpis w postaci zwykłego tekstu i z wyróżnieniami oraz opcjonalna odpowiedź. Jeśli wyniki nie zawierają tych dodatkowych elementów, zapytanie może zostać nieprawidłowo skonfigurowane. W pierwszym kroku rozwiązywania problemu sprawdź konfigurację semantyczną, aby upewnić się, że jest ona określona zarówno w definicji indeksu, jak i zapytaniu.

W aplikacji klienckiej można utworzyć strukturę strony wyszukiwania, aby dołączyć podpis jako opis dopasowania, a nie całą zawartość określonego pola. Takie podejście jest przydatne, gdy poszczególne pola są zbyt gęste dla strony wyników wyszukiwania.

Odpowiedź dla powyższego przykładowego zapytania zwraca następujące dopasowanie jako najlepsze. Zwracane są podpisy, ponieważ właściwość "captions" jest ustawiona z tekstem zwykłym i wyróżnionymi wersjami. Odpowiedzi zostały pominięte w przykładzie, ponieważ nie można określić ich dla tego konkretnego zapytania i korpusu.

"@odata.count": 35,
"@search.answers": [],
"value": [
    {
        "@search.score": 1.8810667,
        "@search.rerankerScore": 1.1446577133610845,
        "@search.captions": [
            {
                "text": "Oceanside Resort. Luxury. New Luxury Hotel. Be the first to stay. Bay views from every room, location near the pier, rooftop pool, waterfront dining & more.",
                "highlights": "<strong>Oceanside Resort.</strong> Luxury. New Luxury Hotel. Be the first to stay.<strong> Bay</strong> views from every room, location near the pier, rooftop pool, waterfront dining & more."
            }
        ],
        "HotelName": "Oceanside Resort",
        "Description": "New Luxury Hotel. Be the first to stay. Bay views from every room, location near the pier, rooftop pool, waterfront dining & more.",
        "Category": "Luxury"
    },
  ...
]

Oczekiwane obciążenia

W przypadku klasyfikacji semantycznej należy oczekiwać, że usługa wyszukiwania będzie obsługiwać maksymalnie 10 współbieżnych zapytań na replikę.

Usługa ogranicza semantyczne żądania klasyfikacji, jeśli woluminy są zbyt wysokie. Komunikat o błędzie zawierający te frazy wskazuje, że usługa znajduje się w pojemności na potrzeby klasyfikacji semantycznej:

Error in search query: Operation returned an invalid status 'Partial Content'`
@search.semanticPartialResponseReason`
CapacityOverloaded

Jeśli przewidujesz spójne wymagania dotyczące przepływności w pobliżu, na poziomie lub wyższym niż na tym poziomie, utwórz bilet pomocy technicznej, abyśmy mogli aprowizować obciążenie.

Następne kroki

Klasyfikacja semantyczna może być używana w zapytaniach hybrydowych, które łączą wyszukiwanie słów kluczowych i wyszukiwanie wektorów w jednym żądaniu i ujednoliconą odpowiedź.