Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Хранилища знаний — это дополнительное хранилище, которое существует в службе хранилища Azure и содержит выходные данные наборов навыков поиска ИИ Azure. Они отделены от источников знаний и баз знаний, которые используются в рабочих процессах агентного извлечения.
В Azure AI Search «формирование данных» описывает шаг в рабочем процессе хранилища знаний, который создает представление данных содержимого, которое вы хотите проецировать в таблицы, объекты и файлы в службе хранилища Azure.
По мере выполнения навыков выходные данные записываются в дерево обогащения в виде иерархии узлов, и хотя вам может понадобиться просмотреть и использовать дерево обогащения в целом, скорее всего, вы захотите получить более детальное представление, создав подмножества узлов для определенных сценариев, например, размещая узлы, связанные с переведенным текстом или извлеченными сущностями, в конкретных таблицах.
Само по себе дерево обогащения не включает логику, которая будет информировать о том, как его содержимое представлено в хранилище знаний. Формы данных заполняют этот пробел, предоставляя схему того, что входит в каждую таблицу, объект и проект файла. Форму данных можно представить как пользовательское определение или представление обогащенных данных. Вы можете создать столько фигур, сколько вам нужно, а затем назначить их проекциям в определении хранилища знаний.
Подходы к созданию форм
Существует два способа формирования обогащенного содержимого, чтобы его можно было проецировать в хранилище знаний:
С помощью навыка формирователя создайте в дереве обогащения узлы, которые будут использоваться исключительно для проецирования. Большинство навыков создают новое содержимое. В отличие от этого, умение Shaper работает с существующими узлами, обычно для объединения нескольких узлов в сложный единый объект. Это полезно для таблиц, где выходные данные нескольких узлов должны быть физически выражены в виде столбцов в таблице.
Используйте встроенную форму непосредственно в определении проекции.
Навык формирователя выводит форму наружу, чтобы ее можно было использовать в разных проекциях или даже в других навыках. Такой подход также гарантирует, что все изменения дерева обогащения остаются в пределах навыков, а выходные данные представляют собой объект, пригодный для повторного использования. В отличие от этого, встроенное формирование позволяет создавать нужную фигуру, но является анонимным объектом и доступен только для проекции, для которой оно определено.
Эти подходы можно использовать вместе или отдельно. В этой статье рассматриваются оба варианта: навык формирователя для проекций таблицы и встроенное формирование с проецированием таблицы ключевых фраз.
Использование навыка Shaper
Навыки Shaper обычно размещаются в конце набора навыков, создавая представление данных, которое необходимо передать в проекцию. В этом примере создается формат под названием tableprojection, содержащая следующие узлы: reviews_text, reviews_title и AzureSearch_DocumentKey, а также оценки тональности и ключевые фразы из страничных проверок.
{
"@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
"name": "#5",
"description": null,
"context": "/document",
"inputs": [
{
"name": "reviews_text",
"source": "/document/reviews_text",
"sourceContext": null,
"inputs": []
},
{
"name": "reviews_title",
"source": "/document/reviews_title",
"sourceContext": null,
"inputs": []
},
{
"name": "AzureSearch_DocumentKey",
"source": "/document/AzureSearch_DocumentKey",
"sourceContext": null,
"inputs": []
},
{
"name": "pages",
"source": null,
"sourceContext": "/document/reviews_text/pages/*",
"inputs": [
{
"name": "Sentiment",
"source": "/document/reviews_text/pages/*/Sentiment",
"sourceContext": null,
"inputs": []
},
{
"name": "LanguageCode",
"source": "/document/Language",
"sourceContext": null,
"inputs": []
},
{
"name": "Page",
"source": "/document/reviews_text/pages/*",
"sourceContext": null,
"inputs": []
},
{
"name": "keyphrase",
"sourceContext": "/document/reviews_text/pages/*/Keyphrases/*",
"inputs": [
{
"source": "/document/reviews_text/pages/*/Keyphrases/*",
"name": "Keyphrases"
}
]
}
]
}
],
"outputs": [
{
"name": "output",
"targetName": "tableprojection"
}
]
}
Свойство SourceContext
В навыке Shaper входные данные могут содержать элемент sourceContext. Это же свойство также можно использовать в инлайн-фигурах в проекциях.
sourceContext используется для создания многоуровневых вложенных объектов в конвейере обогащения. Если входные данные находятся в другом контексте, отличном от контекста навыка, используйте sourceContext.
sourceContext требует определить вложенный ввод по конкретному элементу, выступающему в качестве источника.
В предыдущем примере был проведен анализ тональности и извлечение ключевых фраз из текста, который был разделён на страницы для более эффективного анализа. Если вы хотите проецировать оценки и фразы в таблицу, теперь нужно установить контекст для вложенных входных данных, которые предоставляют оценку и фразу.
Проецирование формы в несколько таблиц
tableprojection С помощью узла, определенного в outputs предыдущем разделе, можно срезать части tableprojection узла в отдельные связанные таблицы:
"projections": [
{
"tables": [
{
"tableName": "hotelReviewsDocument",
"generatedKeyName": "Documentid",
"source": "/document/tableprojection"
},
{
"tableName": "hotelReviewsPages",
"generatedKeyName": "Pagesid",
"source": "/document/tableprojection/pages/*"
},
{
"tableName": "hotelReviewsKeyPhrases",
"generatedKeyName": "KeyPhrasesid",
"source": "/document/tableprojection/pages/*/keyphrase/*"
}
]
}
]
Встроенная фигура для проекций таблиц
Встроенное формирование позволяет создавать новые формы непосредственно в описании проекции. Встроенное формирование имеет следующие характеристики:
- Фигура используется только проекцией, содержащей ее.
- Форма может точно совпадать с тем, что создает способность формировщика.
Встроенная форма создается с помощью sourceContext и inputs.
| Свойство | Описание |
|---|---|
| sourceContext | Задает корень проекции. |
| входные данные | Каждый входной элемент является столбцом в таблице. Name — имя столбца. Source — это узел обогащения, обеспечивающий значение. |
Для проецирования тех же данных, что и в предыдущем примере, опция встроенной проекции будет выглядеть так:
"projections": [
{
"tables": [
{
"tableName": "hotelReviewsInlineDocument",
"generatedKeyName": "Documentid",
"sourceContext": "/document",
"inputs": [
{
"name": "reviews_text",
"source": "/document/reviews_text"
},
{
"name": "reviews_title",
"source": "/document/reviews_title"
},
{
"name": "AzureSearch_DocumentKey",
"source": "/document/AzureSearch_DocumentKey"
}
]
},
{
"tableName": "hotelReviewsInlinePages",
"generatedKeyName": "Pagesid",
"sourceContext": "/document/reviews_text/pages/*",
"inputs": [
{
"name": "Sentiment",
"source": "/document/reviews_text/pages/*/Sentiment"
},
{
"name": "LanguageCode",
"source": "/document/Language"
},
{
"name": "Page",
"source": "/document/reviews_text/pages/*"
}
]
},
{
"tableName": "hotelReviewsInlineKeyPhrases",
"generatedKeyName": "KeyPhraseId",
"sourceContext": "/document/reviews_text/pages/*/Keyphrases/*",
"inputs": [
{
"name": "Keyphrases",
"source": "/document/reviews_text/pages/*/Keyphrases/*"
}
]
}
]
}
]
Отличительной особенностью обоих этих подходов является то, как значения Keyphrases проецируются с использованием sourceContext. Узел Keyphrases, содержащий коллекцию строк, сам является дочерним элементом текста страницы. Однако поскольку для проекций требуется объект JSON, а page является примитивом (строкой), то для заключения ключевой фразы в объект с именованным свойством используется sourceContext. Этот метод позволяет независимо проектировать даже примитивы.
Встроенная фигура для проекций объектов
Вы можете создать новую фигуру с помощью навыка формирователя или использовать встроенное формирование проекции объекта. В то время как в примере таблиц показан подход к созданию фигуры и фрагментированию, в этом примере демонстрируется использование встроенного формирования.
Встроенное формирование — это возможность создать новую форму в определении входных данных проекции. Встроенное формирование создает анонимный объект, идентичный тому, который создал бы формирователь (в нашем случае projectionShape). Встроенное формирование полезно, если вы определяете фигуру, которую вы не планируете повторно использовать.
Свойство projections представляет собой массив. В этом примере в массив добавляется новый экземпляр проекции, в котором определение knowledgeStore содержит встроенные проекции. При использовании встроенных проекций можно пропустить функцию Shaper.
"knowledgeStore" : {
"storageConnectionString": "DefaultEndpointsProtocol=https;AccountName=<Acct Name>;AccountKey=<Acct Key>;",
"projections": [
{
"tables": [ ],
"objects": [
{
"storageContainer": "sampleobject",
"source": null,
"generatedKeyName": "myobject",
"sourceContext": "/document",
"inputs": [
{
"name": "metadata_storage_name",
"source": "/document/metadata_storage_name"
},
{
"name": "metadata_storage_path",
"source": "/document/metadata_storage_path"
},
{
"name": "content",
"source": "/document/content"
},
{
"name": "keyPhrases",
"source": "/document/merged_content/keyphrases/*"
},
{
"name": "entities",
"source": "/document/merged_content/entities/*/name"
},
{
"name": "ocrText",
"source": "/document/normalized_images/*/text"
},
{
"name": "ocrLayoutText",
"source": "/document/normalized_images/*/layoutText"
}
]
}
],
"files": []
}
]
}
Следующие шаги
В этой статье описаны основные понятия и принципы формирования проекций. Далее вы узнаете, как они обычно применяются для проецирования таблиц, объектов и файлов.