Přírůstkové rozšiřování a ukládání do mezipaměti ve službě Azure AI Search

Důležité

Tato funkce je ve verzi Public Preview v rámci doplňkových podmínek použití. Rozhraní REST API ve verzi Preview tuto funkci podporuje.

Přírůstkové rozšiřování odkazuje na použití rozšiřování v mezipaměti během provádění sady dovedností, takže pouze nové a změněné dovednosti a dokumenty účtují poplatky za zpracování průběžných plateb za volání rozhraní API do služeb Azure AI. Mezipaměť obsahuje výstup z prolomení dokumentu a výstupy každé dovednosti pro každý dokument. I když je ukládání do mezipaměti fakturovatelné (používá Azure Storage), celkové náklady na rozšiřování se snižují, protože náklady na úložiště jsou menší než extrakce obrázků a zpracování AI.

Když povolíte ukládání do mezipaměti, indexer vyhodnotí aktualizace a určí, jestli se z mezipaměti dají načíst existující rozšíření. Obrazový a textový obsah z fáze prolomení dokumentu a výstupy dovedností, které jsou upstreamové nebo orthogonální pro vaše úpravy, budou pravděpodobně opakovaně použitelné.

Po dokončení zpracování sady dovedností se aktualizované výsledky zapíšou zpět do mezipaměti a také do indexu vyhledávání nebo úložiště znalostí.

Omezení

Upozornění

Pokud používáte indexer SharePointu Online (Preview), měli byste se vyhnout přírůstkovým rozšiřováním. Za určitých okolností se mezipaměť stane neplatnou a vyžaduje resetování a spuštění indexeru, pokud se rozhodnete ji znovu načíst.

Konfigurace mezipaměti

Mezipaměť je fyzicky uložená v kontejneru objektů blob ve vašem účtu Azure Storage, jednou za indexer. Každému indexeru je přiřazen jedinečný a neměnný identifikátor mezipaměti, který odpovídá kontejneru, který používá.

Mezipaměť se vytvoří, když zadáte vlastnost "cache" a spustíte indexer. Do mezipaměti lze ukládat pouze obohacený obsah. Pokud váš indexer nemá připojenou sadu dovedností, ukládání do mezipaměti se nepoužije.

Následující příklad ukazuje indexer s povolenou ukládáním do mezipaměti. Úplné pokyny najdete v tématu Povolení ukládání do mezipaměti pro rozšiřování. Všimněte si, že při přidávání vlastnosti mezipaměti použijte na požadavku verzi preview rozhraní API 2020-06-30-Preview nebo novější.

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": []
    }

Správa mezipaměti

Životní cyklus mezipaměti spravuje indexer. Pokud se indexer odstraní, odstraní se také jeho mezipaměť. cache Pokud je vlastnost indexeru nastavena na hodnotu null nebo se změní připojovací řetězec, stávající mezipaměť se odstraní při dalším spuštění indexeru.

Zatímco přírůstkové rozšiřování je navržené tak, aby detekoval změny bez zásahu a reagoval na ně, existují parametry, které můžete použít k vyvolání konkrétních chování:

Stanovení priority nových dokumentů

Vlastnost mezipaměti obsahuje enableReprocessing parametr. Používá se k řízení zpracování příchozích dokumentů, které jsou už v mezipaměti reprezentované. Pokud je hodnota true (výchozí), dokumenty, které už jsou v mezipaměti znovu zpracovány při opětovném spuštění indexeru, za předpokladu, že aktualizace dovedností ovlivní tento dokument.

Pokud je nepravda, existující dokumenty se znovu nezpracovává a efektivně upřednostňují nový příchozí obsah před existujícím obsahem. Funkci enableReprocessing byste měli nastavit jenom na dočasném základě. Když je možnost enableReprocessing nastavená na true většinu času, zajistí, že všechny dokumenty, nové i existující, budou platné podle aktuální definice sady dovedností.

Vynechat vyhodnocení sady dovedností

Úprava dovednosti a opětovné zpracování této dovednosti obvykle jdou ruku v ruce. Některé změny dovednosti by ale neměly vést k opětovnému zpracování (například nasazení vlastní dovednosti do nového umístění nebo pomocí nového přístupového klíče). S největší pravděpodobností se jedná o periferní úpravy, které nemají skutečný dopad na podstatu samotného výstupu dovednosti.

Pokud víte, že změna dovednosti je skutečně povrchní, měli byste přepsat hodnocení dovedností nastavením parametru disableCacheReprocessingChangeDetection na true:

  1. Zavolejte aktualizovat sadu dovedností a upravte definici sady dovedností.
  2. Připojte k požadavku parametr disableCacheReprocessingChangeDetection=true.
  3. Odešlete změnu.

Nastavením tohoto parametru zajistíte, že se potvrdí pouze aktualizace definice sady dovedností a změna se nevyhodnotí jako účinky na existující mezipaměť. Použijte verzi rozhraní API verze Preview, 2020-06-30-Preview nebo novější.

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

Obejití kontrol ověření zdroje dat

Většina změn definice zdroje dat zneplatní mezipaměť. V případě scénářů, ve kterých víte, že změna by neměla zneplatnit mezipaměť , například změna připojovací řetězec nebo obměna klíče v účtu úložiště , připojte ignoreResetRequirement parametr k aktualizaci zdroje dat. Nastavení tohoto parametru na hodnotu true umožňuje, aby potvrzení prošlo, aniž by se aktivovala podmínka resetování, která by způsobovala, že se všechny objekty znovu sestavují a vyplňují od začátku.

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

Vynucení vyhodnocení sady dovedností

Účelem mezipaměti je vyhnout se zbytečnému zpracování, ale předpokládejme, že uděláte změnu dovednosti, kterou indexer nerozpozná (například změna něčeho v externím kódu, například vlastní dovednost).

V tomto případě můžete použít resetování dovedností k vynucení opětovného zpracování konkrétní dovednosti, včetně všech podřízených dovedností, které mají závislost na výstupu této dovednosti. Toto rozhraní API přijímá požadavek POST se seznamem dovedností, které by se měly zneplatnit a označit k opětovnému zpracování. Po resetování dovedností postupujte podle požadavku Spustit indexer a vyvolejte zpracování kanálu.

Opakované ukládání dokumentů do mezipaměti

Resetováním indexeru se přezpracují všechny dokumenty ve vyhledávacím korpusu. Ve scénářích, kdy je potřeba znovu zpracovat jenom několik dokumentů, použijte resetování dokumentů (Preview) k vynucení opětovného zpracování konkrétních dokumentů. Při resetování dokumentu indexer zneplatní mezipaměť daného dokumentu, která se pak znovu zpracuje čtením ze zdroje dat. Další informace najdete v tématu Spuštění nebo resetování indexerů, dovedností a dokumentů.

Pokud chcete resetovat konkrétní dokumenty, požadavek poskytuje seznam klíčů dokumentů, které se čtou z indexu vyhledávání. Pokud je klíč namapován na pole v externím zdroji dat, hodnota, kterou zadáte, by měla být hodnota použitá v indexu vyhledávání.

V závislosti na způsobu volání rozhraní API se požadavek připojí, přepíše nebo zařadí do fronty seznam klíčů:

  • Volání rozhraní API několikrát s různými klíči připojí nové klíče k seznamu klíčů dokumentů resetování.

  • Volání rozhraní API s parametrem řetězce dotazu overwrite nastaveným na true přepíše aktuální seznam klíčů dokumentů, které se mají resetovat datovou částí požadavku.

  • Volání rozhraní API vede pouze k přidání klíčů dokumentu do fronty práce, kterou indexer provádí. Při dalším vyvolání indexeru, buď podle plánu, nebo na vyžádání, bude určovat prioritu zpracování klíčů dokumentu pro resetování před všemi dalšími změnami ze zdroje dat.

Následující příklad znázorňuje žádost o resetování dokumentu:

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

Změny, které zneplatní mezipaměť

Jakmile povolíte mezipaměť, indexer vyhodnocuje změny ve složení kanálu, aby určil, který obsah je možné znovu použít a který vyžaduje opětovné zpracování. Tato část vypíše změny, které zneplatní mezipaměť přímo, následované změnami, které aktivují přírůstkové zpracování.

Neplatná změna je ta, ve které už není platná celá mezipaměť. Příkladem zneplatnění změny je aktualizace zdroje dat. Tady je úplný seznam změn v libovolné části kanálu indexeru, který zneplatní vaši mezipaměť:

  • Změna typu zdroje dat
  • Změna kontejneru zdroje dat
  • Změna přihlašovacích údajů ke zdroji dat
  • Změna zásad detekce změn zdroje dat
  • Změna zásad detekce odstranění zdroje dat
  • Změna mapování polí indexeru
  • Změna parametrů indexeru:
    • Režim analýzy
    • Vyloučené přípony názvů souborů
    • Indexované přípony názvů souborů
    • Indexovat metadata úložiště pouze pro nadlimitované dokumenty
    • Záhlaví textu s oddělovači
    • Oddělovač textu s oddělovači
    • Kořen dokumentu
    • Akce obrázku (změny způsobu extrahování obrázků)

Změny, které aktivují přírůstkové zpracování

Při přírůstkovém zpracování se vyhodnocuje definice sady dovedností, aby se zjistilo, jaké dovednosti se mají spustit znovu, a selektivně se tak aktualizovaly ovlivněné části stromu dokumentů. Tady je úplný seznam změn, které mají za následek přírůstkové rozšiřování:

  • Změna typu dovednosti (aktualizuje se typ OData dovednosti)
  • Parametry specifické pro dovednosti se aktualizují, například adresa URL, výchozí hodnoty nebo jiné parametry.
  • Změny výstupu dovedností, dovednost vrací další nebo jiné výstupy.
  • Změny vstupu dovedností, které vedou k různým ancestrym, se zřetězování dovedností změnilo.
  • Jakékoli upstreamové zneplatnění dovednosti, pokud se aktualizuje dovednost, která poskytuje vstup této dovednosti.
  • Aktualizace do umístění projekce úložiště znalostí, výsledkem je opětovné promítání dokumentů.
  • Změny projekcí úložiště znalostí, výsledkem je opětovné promítání dokumentů.
  • Změna mapování výstupních polí u indexeru vede k opětovnému promítání dokumentů do indexu.

Rozhraní API používaná k ukládání do mezipaměti

Verze 2020-06-30-Preview rozhraní REST API nebo novější poskytuje přírůstkové rozšiřování prostřednictvím dalších vlastností indexerů. Sady dovedností a zdroje dat můžou používat obecně dostupnou verzi. Kromě referenční dokumentace naleznete v tématu Konfigurace ukládání do mezipaměti pro přírůstkové rozšiřování , kde najdete podrobnosti o pořadí operací.

Další kroky

Přírůstkové rozšiřování je výkonná funkce, která rozšiřuje sledování změn na sady dovedností a rozšiřování AI. Přírůstkové rozšiřování umožňuje opakovaně používat existující zpracovaný obsah při iteraci návrhu sady dovedností. V dalším kroku povolte ukládání do mezipaměti u indexerů.