Хранилище знаний в поисковой системе искусственного интеллекта Azure

Note

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

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

Два результата индексирования, индекс поиска и хранилище знаний, являются продуктами одного конвейера и взаимно исключают друг друга. Они производны от одних входных данных и содержат одни и те же данные, но их содержимое структурировано, хранится и используется в разных приложениях.

Конвейер с набором навыков

Физически хранилищем знаний является служба хранилища Azure, либо Azure Table Storage, Хранилище BLOB-объектов Azure, либо оба. Любой инструмент или процесс, который может подключиться к службе хранилища Azure, может использовать содержимое хранилища знаний. В поиске ИИ Azure нет поддержки запросов для получения содержимого из хранилища знаний.

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

Навыки чтения и записи данных из дерева обогащения

Преимущества хранилища знаний

Основные возможности хранилища знаний являются двойными: гибкий доступ к контенту и способность формировать данные.

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

Тот же набор навыков, который дополняет данные, также можно использовать для формирования данных. Некоторые средства, такие как Power BI, лучше работают с таблицами, в то время как рабочая нагрузка в области науки о данных может потребовать сложной структуры данных в формате BLOB. Добавление навыка Shaper в набор навыков позволяет вам контролировать форму ваших данных. Затем эти фигуры можно передать в проекции , таблицы или большие двоичные объекты, чтобы создать физические структуры данных, которые соответствуют предполагаемому использованию данных.

В следующем видео объясняется оба этих преимущества и многое другое.

Определение хранилища знаний

Хранилище знаний определяется в определении набора навыков и имеет два компонента:

  • Строка подключения к Azure хранилищу

  • Проекции , определяющие, состоит ли хранилище знаний из таблиц, объектов или файлов. Элемент проекций — это массив. Можно создать несколько наборов сочетаний файлов табличного объекта в одном хранилище знаний.

    "knowledgeStore": {
        "storageConnectionString":"<YOUR-AZURE-STORAGE-ACCOUNT-CONNECTION-STRING>",
        "projections":[
           {
              "tables":[ ],
              "objects":[ ],
              "files":[ ]
           }
        ]
    }
    

Тип проекции, указанный в этой структуре, определяет тип хранилища, используемого хранилищем знаний, но не его структуру. Поля в таблицах, объектах и файлах определяются выходными данными навыка Shaper, если вы создаете хранилище знаний программным способом, или мастером импорта данных, если вы используете портал Azure.

  • tables проецирует обогащенное содержимое в Хранилище таблиц. Определите проекцию таблицы, если вам нужны табличные структуры отчетов для входных данных средств аналитики или экспорта в виде кадров данных в другие хранилища данных. Можно указать несколько элементов tables в одной и той же группе проекции, чтобы получить подмножество или сечение обогащенных документов. В одной группе проекции связи между таблицами сохраняются, чтобы можно было работать со всеми таблицами.

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

    Снимок экрана: ключевые фразы и документы в таблице

  • objects проецирует документ JSON в хранилище объектов Blob. Физическое представление object — это иерархическая структура JSON, которая представляет обогащенный документ.

  • files проецирует файлы изображений в хранилище Blob. file — это изображение, извлечённое из документа и перенесённое в хранилище Blob в неизменённом виде. Хотя он называется "files", он отображается в хранилище BLOB-объектов, а не в хранилище файлов.

Создание хранилища знаний

Используйте портал Azure, REST API или пакет Azure SDK для создания хранилища знаний. Для всех методов требуется служба хранилища Azure, набор навыков и индексатор. Так как индексаторы требуют индекса поиска, необходимо также указать определение индекса.

интерфейсы REST API и SDK обеспечивают полный контроль над проекциями: таблицами, объектами и файлами. Портал Azure автоматически создает хранилище знаний в рамках многомодального рабочего процесса RAG, который ограничен проекциями файлов для визуализации извлеченных изображений.

Мастер импорта данных создает хранилище знаний только для сценария многомодальной RAG. Чтобы приступить к работе, см. краткое руководство. Многомодальный поиск на портале Azure.

Подключение с помощью приложений

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

  • Обозреватель службы хранилища или браузер хранилища в портале Azure, чтобы просмотреть обогащённую структуру документа и его содержимое. Его можно считать базовым средством для просмотра содержимого хранилища знаний.

  • Power BI для отчетов и анализа.

  • Фабрика данных Azure позволяет выполнять дальнейшую обработку данных.

Жизненный цикл содержимого

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

Note

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

Изменения в исходных данных

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

Изменения в наборе навыков

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

Без добавочного кэширования индексатор всегда будет обрабатывать документы в порядке увеличения значений метки, не возвращаясь в обратную сторону. Индексатор будет обрабатывать объекты BLOB в отсортированном порядке по lastModified, независимо от изменений параметров индексатора или набора навыков. Если вы измените набор навыков, ранее обработанные документы не будут обновляться с учетом нового набора навыков. Для документов, которые обрабатываются после изменения набора навыков, будет применяться новый набор навыков, а значит в документах индекса будут перемешаны результаты, полученные старым и новым наборами навыков.

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

Deletions

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

Дальнейшие шаги

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

Самый простой подход к созданию обогащенных документов программным способом — через REST API.