Wzbogacanie przyrostowe i buforowanie w usłudze Azure AI Search

Ważne

Ta funkcja jest dostępna w publicznej wersji zapoznawczej w ramach dodatkowych warunków użytkowania. Interfejs API REST w wersji zapoznawczej obsługuje tę funkcję.

Wzbogacanie przyrostowe odnosi się do korzystania z buforowanych wzbogacań podczas wykonywania zestawu umiejętności, dzięki czemu tylko nowe i zmienione umiejętności i dokumenty generują opłaty za przetwarzanie zgodnie z rzeczywistym użyciem dla wywołań interfejsu API do usług azure AI. Pamięć podręczna zawiera dane wyjściowe z łamania dokumentów oraz dane wyjściowe każdej umiejętności dla każdego dokumentu. Chociaż buforowanie jest rozliczane (korzysta z usługi Azure Storage), całkowity koszt wzbogacania jest mniejszy, ponieważ koszty magazynowania są mniejsze niż wyodrębnianie obrazów i przetwarzanie sztucznej inteligencji.

Po włączeniu buforowania indeksator ocenia aktualizacje w celu określenia, czy istniejące wzbogacenia można ściągnąć z pamięci podręcznej. Zawartość obrazu i tekstu z fazy pękania dokumentu oraz dane wyjściowe umiejętności, które są nadrzędne lub ortogonalne do edycji, mogą być wielokrotnego użytku.

Po zakończeniu przetwarzania zestawu umiejętności odświeżone wyniki są zapisywane z powrotem w pamięci podręcznej, a także do indeksu wyszukiwania lub magazynu wiedzy.

Ograniczenia

Uwaga

Jeśli używasz indeksatora usługi SharePoint Online (wersja zapoznawcza), należy unikać przyrostowego wzbogacania. W pewnych okolicznościach pamięć podręczna staje się nieprawidłowa, wymagając zresetowania indeksatora i uruchomienia, jeśli zdecydujesz się go ponownie załadować.

Konfigurowanie pamięci podręcznej

Fizycznie pamięć podręczna jest przechowywana w kontenerze obiektów blob na koncie usługi Azure Storage— jeden na indeksator. Każdy indeksator ma przypisany unikatowy i niezmienny identyfikator pamięci podręcznej odpowiadający kontenerowi, którego używa.

Pamięć podręczna jest tworzona podczas określania właściwości "cache" i uruchamiania indeksatora. Można buforować tylko wzbogaconą zawartość. Jeśli indeksator nie ma dołączonego zestawu umiejętności, buforowanie nie ma zastosowania.

Poniższy przykład ilustruje indeksator z włączonym buforowaniem. Aby uzyskać pełne instrukcje, zobacz Włączanie buforowania wzbogacania . Zwróć uwagę, że podczas dodawania właściwości pamięci podręcznej użyj wersji zapoznawczej interfejsu API w wersji 2020-06-30-Preview lub nowszej w żądaniu.

POST https://[search service name].search.windows.net/indexers?api-version=2020-06-30-Preview
    {
        "name": "myIndexerName",
        "targetIndexName": "myIndex",
        "dataSourceName": "myDatasource",
        "skillsetName": "mySkillset",
        "cache" : {
            "storageConnectionString" : "<Your storage account connection string>",
            "enableReprocessing": true
        },
        "fieldMappings" : [],
        "outputFieldMappings": [],
        "parameters": []
    }

Zarządzanie pamięcią podręczną

Cykl życia pamięci podręcznej jest zarządzany przez indeksator. Jeśli indeksator zostanie usunięty, jego pamięć podręczna również zostanie usunięta. cache Jeśli właściwość indeksatora ma wartość null lub parametry połączenia zostanie zmieniona, istniejąca pamięć podręczna zostanie usunięta podczas następnego uruchomienia indeksatora.

Chociaż wzbogacanie przyrostowe jest przeznaczone do wykrywania i reagowania na zmiany bez interwencji, istnieją parametry, których można użyć do wywoływania określonych zachowań:

Określanie priorytetów nowych dokumentów

Właściwość pamięci podręcznej zawiera enableReprocessing parametr . Służy do kontrolowania przetwarzania dokumentów przychodzących, które są już reprezentowane w pamięci podręcznej. Jeśli wartość true (wartość domyślna), dokumenty już w pamięci podręcznej są ponownie przetwarzane podczas ponownego uruchamiania indeksatora, przy założeniu, że aktualizacja umiejętności ma wpływ na ten dokument.

W przypadku wartości false istniejące dokumenty nie są ponownie przetwarzane, skutecznie ustalając priorytety nowej zawartości przychodzącej nad istniejącą zawartością. Dla ustawienia enableReprocessing należy ustawić wartość false tylko tymczasowo. Po ustawieniu parametru enableReprocessing na wartość true przez większość czasu wszystkie dokumenty, zarówno nowe, jak i istniejące, są prawidłowe zgodnie z bieżącą definicją zestawu umiejętności.

Pomijanie oceny zestawu umiejętności

Modyfikowanie umiejętności i ponowne przetwarzanie tej umiejętności zwykle idzie w parze. Jednak niektóre zmiany umiejętności nie powinny powodować ponownego przetwarzania (na przykład wdrożenie niestandardowej umiejętności w nowej lokalizacji lub przy użyciu nowego klucza dostępu). Najprawdopodobniej są to modyfikacje peryferyjne, które nie mają rzeczywistego wpływu na istotę samej produkcji umiejętności.

Jeśli wiesz, że zmiana umiejętności jest rzeczywiście powierzchowna, należy zastąpić ocenę umiejętności, ustawiając disableCacheReprocessingChangeDetection parametr na true:

  1. Wywołaj zestaw umiejętności aktualizacji i zmodyfikuj definicję zestawu umiejętności.
  2. Dołącz parametr "disableCacheReprocessingChangeDetection=true" w żądaniu.
  3. Prześlij zmianę.

Ustawienie tego parametru gwarantuje, że zatwierdzane są tylko aktualizacje definicji zestawu umiejętności, a zmiana nie jest oceniana pod kątem wpływu na istniejącą pamięć podręczną. Użyj wersji zapoznawczej interfejsu API, 2020-06-30-Preview lub nowszej.

PUT https://[servicename].search.windows.net/skillsets/[skillset name]?api-version=2020-06-30-Preview&disableCacheReprocessingChangeDetection
  

Pomijanie kontroli poprawności źródła danych

Większość zmian definicji źródła danych spowoduje unieważnienie pamięci podręcznej. Jednak w przypadku scenariuszy, w których wiadomo, że zmiana nie powinna unieważniać pamięci podręcznej — na przykład zmiany parametry połączenia lub rotacji klucza na koncie magazynu — dołącz ignoreResetRequirement parametr w aktualizacji źródła danych. Ustawienie tego parametru na wartość true umożliwia przejście zatwierdzenia bez wyzwalania warunku resetowania, co spowoduje ponowne skompilowanie i wypełnienie wszystkich obiektów od podstaw.

PUT https://[search service].search.windows.net/datasources/[data source name]?api-version=2020-06-30-Preview&ignoreResetRequirement
 

Wymuszanie oceny zestawu umiejętności

Celem pamięci podręcznej jest uniknięcie niepotrzebnego przetwarzania, ale załóżmy, że wprowadzisz zmianę w umiejętności, której indeksator nie wykryje (na przykład zmiany czegoś w kodzie zewnętrznym, takiego jak niestandardowa umiejętność).

W takim przypadku możesz użyć resetowania umiejętności , aby wymusić ponowne przetwarzanie określonej umiejętności, w tym wszelkie umiejętności podrzędne, które mają zależność od danych wyjściowych tej umiejętności. Ten interfejs API akceptuje żądanie POST z listą umiejętności, które powinny zostać unieważnione i oznaczone do ponownego przetwarzania. Po zresetowaniu umiejętności wykonaj żądanie uruchom indeksatora , aby wywołać przetwarzanie potoku.

Ponowne buforowanie określonych dokumentów

Zresetowanie indeksatora spowoduje ponowne przetworzenie wszystkich dokumentów w korpusie wyszukiwania. W scenariuszach, w których należy ponownie przetworzyć tylko kilka dokumentów, użyj polecenia Resetuj dokumenty (wersja zapoznawcza), aby wymusić ponowne przetwarzanie określonych dokumentów. Gdy dokument zostanie zresetowany, indeksator unieważnia pamięć podręczną tego dokumentu, która następnie jest ponownie przetwarzana przez odczytanie go ze źródła danych. Aby uzyskać więcej informacji, zobacz Uruchamianie lub resetowanie indeksatorów, umiejętności i dokumentów.

Aby zresetować określone dokumenty, żądanie zawiera listę kluczy dokumentów odczytywanych z indeksu wyszukiwania. Jeśli klucz jest mapowany na pole w zewnętrznym źródle danych, wartość, którą podajesz, powinna być wartością używaną w indeksie wyszukiwania.

W zależności od sposobu wywoływania interfejsu API żądanie będzie dołączać, zastępować lub kolejki w górę listy kluczy:

  • Wywołanie interfejsu API wiele razy za pomocą różnych kluczy dołącza nowe klucze do listy resetowania kluczy dokumentów.

  • Wywołanie interfejsu API za pomocą parametru ciągu zapytania "overwrite" ustawionego na wartość true spowoduje zastąpienie bieżącej listy kluczy dokumentów, które mają zostać zresetowane przy użyciu ładunku żądania.

  • Wywoływanie interfejsu API powoduje tylko dodanie kluczy dokumentów do kolejki wykonywanej przez indeksator. Po następnym wywołaniu indeksatora zgodnie z harmonogramem lub na żądanie priorytetem będzie przetwarzanie kluczy dokumentu resetowania przed wszelkimi innymi zmianami ze źródła danych.

Poniższy przykład ilustruje żądanie zresetowania dokumentu:

POST https://[search service name].search.windows.net/indexers/[indexer name]/resetdocs?api-version=2020-06-30-Preview
    {
        "documentKeys" : [
            "key1",
            "key2",
            "key3"
        ]
    }

Zmiany, które unieważniają pamięć podręczną

Po włączeniu pamięci podręcznej indeksator ocenia zmiany w kompozycji potoku w celu określenia, która zawartość może być ponownie użyta i która wymaga ponownego przetwarzania. Ta sekcja wylicza zmiany, które unieważniają pamięć podręczną wprost, a następnie zmiany wyzwalające przetwarzanie przyrostowe.

Zmiana unieważniająca to jedna, w której cała pamięć podręczna nie jest już prawidłowa. Przykładem zmiany unieważniającej jest zmiana, w której źródło danych jest aktualizowane. Oto pełna lista zmian w dowolnej części potoku indeksatora, która unieważniłaby pamięć podręczną:

  • Zmienianie typu źródła danych
  • Zmienianie kontenera źródła danych
  • Zmienianie poświadczeń źródła danych
  • Zmienianie zasad wykrywania zmian źródła danych
  • Zmienianie zasad wykrywania usuwania źródła danych
  • Zmienianie mapowań pól indeksatora
  • Zmienianie parametrów indeksatora:
    • Tryb analizowania
    • Wykluczone rozszerzenia nazw plików
    • Rozszerzenia nazwy pliku indeksowanego
    • Indeksowanie metadanych magazynu tylko w przypadku nadmiernie zapełnionych dokumentów
    • Rozdzielane nagłówki tekstu
    • Ogranicznik tekstu rozdzielanego
    • Katalog główny dokumentu
    • Akcja obrazu (zmiany sposobu wyodrębniania obrazów)

Zmiany wyzwalające przetwarzanie przyrostowe

Przetwarzanie przyrostowe ocenia definicję zestawu umiejętności i określa, które umiejętności należy przetworzyć ponownie, selektywnie aktualizując odpowiednie części drzewa dokumentów. Oto pełna lista zmian, które skutkują przyrostowym wzbogacaniem:

  • Zmiana typu umiejętności (typ OData umiejętności jest aktualizowany)
  • Parametry specyficzne dla umiejętności są aktualizowane, na przykład adres URL, wartości domyślne lub inne parametry
  • Zmiany danych wyjściowych umiejętności, umiejętność zwraca dodatkowe lub różne dane wyjściowe
  • Zmiany danych wejściowych umiejętności w wyniku różnych przodków, łańcuch umiejętności uległ zmianie
  • Wszelkie unieważnienie umiejętności nadrzędnych, jeśli umiejętności, które zapewniają dane wejściowe do tej umiejętności, zostaną zaktualizowane
  • Aktualizacje do lokalizacji projekcji magazynu wiedzy, powoduje ponowne projekcje dokumentów
  • Zmiany w projekcjach magazynu wiedzy, co powoduje ponowne projekcje dokumentów
  • Mapowania pól wyjściowych zmienione na indeksatorze powoduje ponowne projekcje dokumentów do indeksu

Interfejsy API używane do buforowania

Wersja 2020-06-30-Preview interfejsu API REST lub nowsza udostępnia wzbogacanie przyrostowe za pomocą dodatkowych właściwości indeksatorów. Zestawy umiejętności i źródła danych mogą używać ogólnie dostępnej wersji. Oprócz dokumentacji referencyjnej zobacz Konfigurowanie buforowania pod kątem wzbogacania przyrostowego, aby uzyskać szczegółowe informacje na temat kolejności operacji.

Następne kroki

Wzbogacanie przyrostowe to zaawansowana funkcja, która rozszerza śledzenie zmian na zestawy umiejętności i wzbogacanie sztucznej inteligencji. Wzbogacanie przyrostowe umożliwia ponowne użycie istniejącej przetworzonej zawartości podczas iterowania projektu zestawu umiejętności. W następnym kroku włącz buforowanie na indeksatorach.