Добавочное обогащение и кэширование в поиске ИИ Azure

Внимание

Эта функция предоставляется в общедоступной предварительной версии в соответствии с дополнительными условиями использования. Предварительная версия REST API поддерживает эту функцию.

Добавочное обогащение относится к использованию кэшированных обогащений во время выполнения набора навыков, чтобы только новые и измененные навыки и документы влечет за собой оплату по мере использования для вызовов API к службам ИИ Azure. Кэш содержит выходные данные из взлома документов, а также выходные данные каждого навыка для каждого документа. Несмотря на то, что кэширование является платным (используется служба хранилища Azure), общая стоимость обогащения уменьшается, так как затраты на хранение меньше, чем извлечение изображений и обработка ИИ.

При включении кэширования индексатор оценивает обновления, чтобы определить, можно ли извлекать существующие обогащения из кэша. Изображение и текстовое содержимое из этапа взлома документа, а также выходные данные навыка, которые вышестоящий или ортогональные для редактирования, скорее всего, будут повторно использоваться.

После завершения обработки набора навыков обновленные результаты записываются в кэш, а также в индекс поиска или хранилище знаний.

Ограничения

Внимание

Если вы используете индексатор SharePoint Online (предварительная версия), следует избежать добавочного обогащения. При определенных обстоятельствах кэш становится недействительным , требуя сброса и запуска индексатора, следует перезагрузить его.

Конфигурация кэша

Физически кэш хранится в контейнере BLOB-объектов в учетной записи служба хранилища Azure по одному на индексатор. Каждому индексатору присваивается уникальный и неизменяемый идентификатор кэша, соответствующий используемому контейнеру.

Кэш создается при указании свойства cache и запуска индексатора. Кэшировать можно только обогащенное содержимое. Если у индексатора нет подключенного набора навыков, кэширование не применяется.

В следующем примере показано использование индексатора с включенным кэшированием. Полные инструкции см. в разделе "Включение кэширования обогащения ". Обратите внимание, что при добавлении свойства кэша используйте предварительную версию API 2020-06-30-Preview или более поздней версии в запросе.

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

Управление кэшем

Жизненным циклом кэша управляет индексатор. Если индексатор удаляется, его кэш также удаляется. Если задать для свойства cache индексатора значение NULL или изменить строку подключения, существующий кэш будет удален.

Хотя добавочное обогащение предназначено для обнаружения и реагирования на изменения без вмешательства, существуют параметры, которые можно использовать для вызова конкретных действий:

приоритетная обработка новых документов;

Свойство кэша содержит enableReprocessing параметр. Он используется для управления обработкой входящих документов, уже представленных в кэше. Если значение true (по умолчанию) документы, уже имеющиеся в кэше, повторно обрабатываются при повторном запуске индексатора, при условии, что обновление навыка влияет на этот документ.

Если значение false, существующие документы не переобработаются, эффективно приоритетизируя новое, входящее содержимое по сравнению с существующим содержимым. Необходимо задать значение false только для включенияReprocessing на временной основе. Если параметр enableReprocessing имеет значение true в большинстве случаев, все документы , как новые, так и существующие, допустимы для текущего определения набора навыков.

Пропуск оценки набора навыков

Изменение навыка и повторной обработки этого навыка обычно идет рука. Однако некоторые изменения навыка не должны привести к повторной обработке (например, развертывание пользовательского навыка в новом расположении или с новым ключом доступа). Скорее всего, это периферийные изменения, которые не оказывают подлинного влияния на вещество самого вывода навыка.

Если вы знаете, что изменение навыка действительно поверхностно, необходимо переопределить оценку навыка, задав disableCacheReprocessingChangeDetection параметр true:

  1. Вызов набора навыков и изменение определения набора навыков.
  2. Добавьте параметр disableCacheReprocessingChangeDetection=true в запрос.
  3. Отправьте изменение.

Установка этого параметра гарантирует фиксацию только обновлений определения набора навыков, а изменение не вычисляется для влияния на существующий кэш. Используйте предварительную версию API 2020-06-30-Preview или более позднюю версию.

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

Пропуск проверок источника данных

При большинстве изменений в определении источника данных кэш становится недействительным. Однако в сценариях, в которых вы знаете, что изменение не должно быть недействительным кэша, например изменение строка подключения или поворот ключа в учетной записи хранения, добавьте ignoreResetRequirement параметр в обновление источника данных. Если этот параметр имеет значение true, фиксация будет проходить без активации условия сброса, что приведет к перестроению и заполнению всех объектов с нуля.

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

Принудительная оценка набора навыков

Кэш нужен, чтобы избежать ненужной обработки — но что, если вы вносите изменения в навык, который не обнаруживается индексатором (например, изменяете что-то во внешнем коде, таком как пользовательский навык)?

В этом случае можно использовать запрос на сброс навыков, который принудительно запускает повторную обработку определенного навыка, включая все нисходящие навыки, зависящие от выходных данных этого навыка. Этот API принимает запрос POST со списком навыков, которые должны быть определены как недействительные и помечены для повторной обработки. После сброса навыков выполните запрос индексатора запуска, чтобы вызвать обработку конвейера.

Повторно кэшировать определенные документы

Сброс индексатора приведет к повторной обработке всех документов в корпусе поиска. В сценариях, когда необходимо повторно обработать только несколько документов, используйте сброс документов (предварительная версия) для принудительной повторной обработки определенных документов. При сбросе документа индексатор отменяет кэш для этого документа, который затем повторно обрабатывается, считывая его из источника данных. Дополнительные сведения см. в статье "Запуск и сброс индексаторов, навыков и документов".

Чтобы сбросить определенные документы, запрос предоставляет список ключей документов в виде чтения из индекса поиска. Если ключ сопоставляется с полем во внешнем источнике данных, то указанное значение должно использоваться в индексе поиска.

В зависимости от способа вызова API запрос будет добавлять, перезаписывать или ставить в очередь список ключей:

  • В результате многократного вызова API-интерфейса с разными ключами новые ключи добавляются в список сброса ключей документа.

  • Вызов API с параметром строки запроса "overwrite", заданным значением true, перезаписывает текущий список ключей документов для сброса полезных данных запроса.

  • Вызов API приводит только к добавлению ключей документа в очередь работы, которую выполняет индексатор. При следующем вызове индексатора по расписанию или по запросу он в первую очередь обработает сброшенные ключи документа и лишь затем остальные изменения из источника данных.

В следующем примере показан запрос на сброс документа:

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

Изменения, которые делают кэш недействительным

После включения кэша индексатор оценивает изменения в компоновке конвейера, чтобы определить, какое содержимое можно повторно использовать, а какое требует повторной обработки. В этом разделе перечислены изменения, которые делают кэш недействительным, а за ними — изменения, которые инициируют добавочную обработку.

К таким изменениям относятся такие действия, после которых весь кэш становится недействительным. Например, приводящим к недействительности изменением является обновление источника данных. Ниже приведен полный список изменений в любой части конвейера индексатора, который будет недействительным для кэша:

  • Изменение типа источника данных
  • Изменение контейнера источника данных
  • Изменение учетных данных источника данных
  • Изменение политики обнаружения изменений источника данных
  • Изменение политики обнаружения источника данных
  • Изменение сопоставлений полей индексатора
  • Изменение параметров индексатора:
    • режим анализа;
    • исключаемые расширения имен файлов;
    • индексируемые расширения имен файлов;
    • индексация метаданных хранилища только для очень больших документов;
    • заголовки текста с разделителями;
    • разделители текста с разделителями;
    • корневой каталог документов;
    • действие с изображением (изменения в способе извлечения изображений).

Изменения, которые инициируют добавочную обработку

При добавочной обработке оценивается определение набора навыков и определяется, какие навыки следует повторно запустить, выборочно обновив затронутые части дерева документов. Ниже приведен полный список изменений, которые приводят к добавочному обогащению:

  • Изменение типа навыка (тип OData навыка обновляется)
  • Параметры, относящиеся к навыку, обновляются, например URL-адрес, значения по умолчанию или другие параметры.
  • Изменения выходных данных навыка, навык возвращает дополнительные или разные выходные данные.
  • Изменения входных данных навыка, что приводит к изменению цепочки навыков
  • недействительность любого навыка на уровне выше, если он предоставляет входные данные для этого навыка;
  • Обновления в расположение проекции хранилища знаний, приводит к повторному проецирование документов
  • Изменения в проекциях хранилища знаний, приводят к повторному проецирование документов
  • Сопоставления полей вывода, измененные на индексаторе, приводят к повторному проецированию документов в индекс

API- интерфейсы, используемые для кэширования

Версия 2020-06-30-Preview REST API или более поздняя предоставляет добавочное обогащение с помощью дополнительных свойств индексаторов. Наборы навыков и источники данных могут использовать общедоступную версию. В дополнение к справочной документации см. раздел "Настройка кэширования для добавочного обогащения " для получения сведений о порядке операций.

Следующие шаги

Добавочное обогащение — это мощная функция, которая распространяет функциональность отслеживания изменений на наборы навыков и обогащение с помощью ИИ. Добавочное обогащение позволяет повторно использовать уже обработанное содержимое при переборе структуры набора навыков. На следующем шаге включите кэширование индексаторов.