Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Эта функция сейчас доступна в общедоступной предварительной версии. Этот предварительный просмотр предоставляется без соглашения об уровне обслуживания и не предназначается для производственных рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в разделе Supplemental Terms of Use for Microsoft Azure Previews.
Используйте источник знаний для blob для индексирования и запроса содержимого BLOB-объектов Azure в агентском конвейере извлечения. Источники знаний создаются независимо, ссылаются на базу знаний и используются в качестве исходных данных, когда агент или чат-бот вызывает действие извлечения во время запроса.
В отличие от источника знаний индекса search, который задает существующий и квалифицированный индекс, источник знаний BLOB указывает внешний источник данных, модели данных и свойства для автоматической генерации следующих объектов Поиск с использованием ИИ Azure:
- Источник данных, представляющий контейнер объектов BLOB.
- Навыки, которые разбивают на части и при необходимости векторизируют многомодальное содержимое в контейнере.
- Индекс, который хранит обогащенное содержимое и соответствует критериям для агентского извлечения.
- Индексатор, использующий предыдущие объекты для управления конвейером индексирования и обогащения.
Замечание
Если доступ пользователя указан на уровне документа (объекта) в служба хранилища Azure, источник знаний может передавать метаданные разрешения в индексированное содержимое в Поиск с использованием ИИ Azure. Для получения более подробной информации см. метаданные разрешений ADLS Gen2 или Blob RBAC scopes.
Поддержка использования
| портал Azure | портал Microsoft Foundry | .NET SDK пакет | пакет SDK Python | Java SDK | пакет SDK JavaScript | REST API |
|---|---|---|---|---|---|---|
| ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Предпосылки
Поиск с использованием ИИ Azure в любом регионе, который предоставляет агентское извлечение. Необходимо включить семантику ранжирования.
Учетная запись Хранилище BLOB-объектов Azure или Azure Data Lake Storage (ADLS) 2-го поколения.
Контейнер BLOB с допустимыми типами контента для текстового содержимого. Для необязательного озвучивания изображений поддерживаемый тип контента зависит от того, может ли модель завершения чата анализировать и описывать файл изображения.
Разрешение на создание и использование объектов в Поиск с использованием ИИ Azure. Рекомендуется доступ на основе ролей, но при невозможности назначения роли можно использовать ключи API. Дополнительные сведения см. в разделе "Подключение к службе поиска".
- Новейший предварительный пакет
Azure.Search.Documents:dotnet add package Azure.Search.Documents --prerelease
- Новейший предварительный пакет
azure-search-documents:pip install --pre azure-search-documents
- Версия REST API службы поиска 2025-11-01-preview .
Проверка существующих источников знаний
Источник знаний — это объект верхнего уровня, который можно использовать повторно. Знание существующих источников знаний полезно для повторного использования или именования новых объектов.
Выполните следующий код, чтобы перечислить источники знаний по имени и типу.
// List knowledge sources by name and type
using Azure.Search.Documents.Indexes;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
var knowledgeSources = indexClient.GetKnowledgeSourcesAsync();
Console.WriteLine("Knowledge Sources:");
await foreach (var ks in knowledgeSources)
{
Console.WriteLine($" Name: {ks.Name}, Type: {ks.GetType().Name}");
}
Вы также можете вернуть один источник знаний по имени, чтобы просмотреть его определение JSON.
using Azure.Search.Documents.Indexes;
using System.Text.Json;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
// Specify the knowledge source name to retrieve
string ksNameToGet = "earth-knowledge-source";
// Get its definition
var knowledgeSourceResponse = await indexClient.GetKnowledgeSourceAsync(ksNameToGet);
var ks = knowledgeSourceResponse.Value;
// Serialize to JSON for display
var jsonOptions = new JsonSerializerOptions
{
WriteIndented = true,
DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.Never
};
Console.WriteLine(JsonSerializer.Serialize(ks, ks.GetType(), jsonOptions));
Источник знаний — это объект верхнего уровня, который можно использовать повторно. Знание существующих источников знаний полезно для повторного использования или именования новых объектов.
Выполните следующий код, чтобы перечислить источники знаний по имени и типу.
# List knowledge sources by name and type
import requests
import json
endpoint = "{search_url}/knowledgesources"
params = {"api-version": "2025-11-01-preview", "$select": "name, kind"}
headers = {"api-key": "{api_key}"}
response = requests.get(endpoint, params = params, headers = headers)
print(json.dumps(response.json(), indent = 2))
Вы также можете вернуть один источник знаний по имени, чтобы просмотреть его определение JSON.
# Get a knowledge source definition
import requests
import json
endpoint = "{search_url}/knowledgesources/{knowledge_source_name}"
params = {"api-version": "2025-11-01-preview"}
headers = {"api-key": "{api_key}"}
response = requests.get(endpoint, params = params, headers = headers)
print(json.dumps(response.json(), indent = 2))
Источник знаний — это объект верхнего уровня, который можно использовать повторно. Знание существующих источников знаний полезно для повторного использования или именования новых объектов.
Используйте Knowledge Sources - Get (REST API) для перечисления источников знаний по имени и типу.
### List knowledge sources by name and type
GET {{search-url}}/knowledgesources?api-version=2025-11-01-preview&$select=name,kind
api-key: {{api-key}}
Вы также можете вернуть один источник знаний по имени, чтобы просмотреть его определение JSON.
### Get a knowledge source definition
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version=2025-11-01-preview
api-key: {{api-key}}
Приведенный JSON является примером ответа для источника знаний о BLOB-объектах.
{
"name": "my-blob-ks",
"kind": "azureBlob",
"description": "A sample blob knowledge source.",
"encryptionKey": null,
"azureBlobParameters": {
"connectionString": "<REDACTED>",
"containerName": "blobcontainer",
"folderPath": null,
"isADLSGen2": false,
"ingestionParameters": {
"disableImageVerbalization": false,
"ingestionPermissionOptions": [],
"contentExtractionMode": "standard",
"identity": null,
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "<REDACTED>",
"deploymentId": "text-embedding-3-large",
"apiKey": "<REDACTED>",
"modelName": "text-embedding-3-large",
"authIdentity": null
}
},
"chatCompletionModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "<REDACTED>",
"deploymentId": "gpt-5-mini",
"apiKey": "<REDACTED>",
"modelName": "gpt-5-mini",
"authIdentity": null
}
},
"ingestionSchedule": null,
"assetStore": null,
"aiServices": {
"uri": "<REDACTED>",
"apiKey": "<REDACTED>"
}
},
"createdResources": {
"datasource": "my-blob-ks-datasource",
"indexer": "my-blob-ks-indexer",
"skillset": "my-blob-ks-skillset",
"index": "my-blob-ks-index"
}
}
}
Замечание
Конфиденциальная информация редактируется. Созданные ресурсы отображаются в конце ответа.
Создание источника знаний
Выполните следующий код, чтобы создать источник данных BLOB.
// Create a blob knowledge source
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.KnowledgeBases.Models;
using Azure;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));
var chatCompletionParams = new AzureOpenAIVectorizerParameters
{
ResourceUri = new Uri(aoaiEndpoint),
DeploymentName = aoaiGptDeployment,
ModelName = aoaiGptModel
};
var embeddingParams = new AzureOpenAIVectorizerParameters
{
ResourceUri = new Uri(aoaiEndpoint),
DeploymentName = aoaiEmbeddingDeployment,
ModelName = aoaiEmbeddingModel
};
var ingestionParams = new KnowledgeSourceIngestionParameters
{
DisableImageVerbalization = false,
ChatCompletionModel = new KnowledgeBaseAzureOpenAIModel(azureOpenAIParameters: chatCompletionParams),
EmbeddingModel = new KnowledgeSourceAzureOpenAIVectorizer
{
AzureOpenAIParameters = embeddingParams
}
};
var blobParams = new AzureBlobKnowledgeSourceParameters(
connectionString: connectionString,
containerName: containerName
)
{
IsAdlsGen2 = false,
IngestionParameters = ingestionParams
};
var knowledgeSource = new AzureBlobKnowledgeSource(
name: "my-blob-ks",
azureBlobParameters: blobParams
)
{
Description = "This knowledge source pulls from a blob storage container."
};
await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);
Console.WriteLine($"Knowledge source '{knowledgeSource.Name}' created or updated successfully.");
Выполните следующий код, чтобы создать источник знаний BLOB.
# Create a blob knowledge source
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import AzureBlobKnowledgeSource, AzureBlobKnowledgeSourceParameters, KnowledgeBaseAzureOpenAIModel, AzureOpenAIVectorizerParameters, KnowledgeSourceAzureOpenAIVectorizer, KnowledgeSourceContentExtractionMode, KnowledgeSourceIngestionParameters
index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
knowledge_source = AzureBlobKnowledgeSource(
name = "my-blob-ks",
description = "This knowledge source pulls from a blob storage container.",
encryption_key = None,
azure_blob_parameters = AzureBlobKnowledgeSourceParameters(
connection_string = "blob_connection_string",
container_name = "blob_container_name",
folder_path = None,
is_adls_gen2 = False,
ingestion_parameters = KnowledgeSourceIngestionParameters(
identity = None,
disable_image_verbalization = False,
chat_completion_model = KnowledgeBaseAzureOpenAIModel(
azure_open_ai_parameters = AzureOpenAIVectorizerParameters(
resource_url = "aoai_endpoint",
deployment_name = "aoai_gpt_deployment",
model_name = "aoai_gpt_model",
api_key = "aoai_api_key"
)
),
embedding_model = KnowledgeSourceAzureOpenAIVectorizer(
azure_open_ai_parameters=AzureOpenAIVectorizerParameters(
resource_url = "aoai_endpoint",
deployment_name = "aoai_embedding_deployment",
model_name = "aoai_embedding_model",
api_key = "aoai_api_key"
)
),
content_extraction_mode = KnowledgeSourceContentExtractionMode.MINIMAL,
ingestion_schedule = None,
ingestion_permission_options = None
)
)
)
index_client.create_or_update_knowledge_source(knowledge_source)
print(f"Knowledge source '{knowledge_source.name}' created or updated successfully.")
Используйте источники знаний — создание или обновление (REST API) для создания источника знаний BLOB.
PUT {{search-url}}/knowledgesources/my-blob-ks?api-version=2025-11-01-preview
api-key: {{api-key}}
Content-Type: application/json
{
"name": "my-blob-ks",
"kind": "azureBlob",
"description": "This knowledge source pulls from a blob storage container.",
"encryptionKey": null,
"azureBlobParameters": {
"connectionString": "<YOUR AZURE STORAGE CONNECTION STRING>",
"containerName": "<YOUR BLOB CONTAINER NAME>",
"folderPath": null,
"isADLSGen2": false,
"ingestionParameters": {
"identity": null,
"disableImageVerbalization": null,
"chatCompletionModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{aoai-endpoint}}",
"deploymentId": "{{aoai-gpt-deployment}}",
"modelName": "{{aoai-gpt-model}}",
"apiKey": "{{aoai-key}}"
}
},
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{aoai-endpoint}}",
"deploymentId": "{{aoai-embedding-deployment}}",
"modelName": "{{aoai-embedding-model}}",
"apiKey": "{{aoai-key}}"
}
},
"contentExtractionMode": "minimal",
"ingestionSchedule": null,
"ingestionPermissionOptions": []
}
}
}
Свойства, относящиеся к источнику
Чтобы создать источник знаний на основе объектов BLOB, можно передать следующие свойства.
| Имя | Description | Тип | Возможно изменение | Обязательно |
|---|---|---|---|---|
Name |
Имя источника знаний, которое должно быть уникальным в коллекции источников знаний и соответствовать рекомендациям по именованию для объектов в Поиск с использованием ИИ Azure. | String | нет | Да |
Description |
Описание источника знаний. | String | Да | нет |
EncryptionKey |
Управляемый клиентом ключ для шифрования конфиденциальной информации как в источнике знаний, так и в созданных объектах. | Object | Да | нет |
AzureBlobParameters |
Параметры, относящиеся к источникам знаний BLOB: ConnectionString, ContainerName, FolderPath, и IsAdlsGen2. |
Object | нет | |
ConnectionString |
Строка подключения на основе ключа или, если вы используете управляемое удостоверение, идентификатор ресурса. | String | нет | Да |
ContainerName |
Имя контейнера хранилища BLOB-объектов. | String | нет | Да |
FolderPath |
Папка в контейнере. | String | нет | нет |
IsAdlsGen2 |
Значение по умолчанию — False. Установите значение True , если вы используете учетную запись хранения ADLS 2-го поколения. |
Boolean | нет | нет |
| Имя | Description | Тип | Возможно изменение | Обязательно |
|---|---|---|---|---|
name |
Имя источника знаний, которое должно быть уникальным в коллекции источников знаний и соответствовать рекомендациям по именованию для объектов в Поиск с использованием ИИ Azure. | String | нет | Да |
description |
Описание источника знаний. | String | Да | нет |
encryption_key |
Управляемый клиентом ключ для шифрования конфиденциальной информации как в источнике знаний, так и в созданных объектах. | Object | Да | нет |
azure_blob_parameters |
Параметры, относящиеся к источникам знаний BLOB: connection_string, container_name, folder_path, и is_adls_gen2. |
Object | нет | |
connection_string |
Строка подключения на основе ключа или, если вы используете управляемое удостоверение, идентификатор ресурса. | String | нет | Да |
container_name |
Имя контейнера хранилища BLOB-объектов. | String | нет | Да |
folder_path |
Папка в контейнере. | String | нет | нет |
is_adls_gen2 |
Значение по умолчанию — False. Установите значение True , если вы используете учетную запись хранения ADLS 2-го поколения. |
Boolean | нет | нет |
| Имя | Description | Тип | Возможно изменение | Обязательно |
|---|---|---|---|---|
name |
Имя источника знаний, которое должно быть уникальным в коллекции источников знаний и соответствовать рекомендациям по именованию для объектов в Поиск с использованием ИИ Azure. | String | нет | Да |
kind |
Тип источника знаний, в данном случае azureBlob. |
String | нет | Да |
description |
Описание источника знаний. | String | Да | нет |
encryptionKey |
Управляемый клиентом ключ для шифрования конфиденциальной информации как в источнике знаний, так и в созданных объектах. | Object | Да | нет |
azureBlobParameters |
Параметры, относящиеся к источникам знаний BLOB: connectionString, containerName, folderPath, и isADLSGen2. |
Object | нет | |
connectionString |
Строка подключения на основе ключа или, если вы используете управляемое удостоверение, идентификатор ресурса. | String | нет | Да |
containerName |
Имя контейнера хранилища BLOB-объектов. | String | нет | Да |
folderPath |
Папка в контейнере. | String | нет | нет |
isADLSGen2 |
Значение по умолчанию — false. Установите значение true , если вы используете учетную запись хранения ADLS 2-го поколения. |
Boolean | нет | нет |
Свойства параметров приема
Только для индексированных источников знаний можно передать следующие ingestionParameters свойства, чтобы управлять приемом и обработкой содержимого.
| Имя | Description | Тип | Возможно изменение | Обязательно |
|---|---|---|---|---|
Identity |
Управляемая идентичность для использования в созданном индексаторе. | Object | Да | нет |
DisableImageVerbalization |
Включает или отключает использование вербализации изображений. Значение по умолчанию — False, что включает вербализацию изображения. Установите для True, чтобы отключить словесное описание изображения. |
Boolean | нет | нет |
ChatCompletionModel |
Модель завершения чата, которая переводит изображения в текст или извлекает содержимое. Поддерживаемые модели: gpt-4o, gpt-4o-mini, gpt-4.1gpt-4.1-minigpt-4.1-nanogpt-5, gpt-5-miniи .gpt-5-nano
Навык запроса GenAI будет включен в созданный набор навыков. Для установки этого параметра также требуется, чтобы DisableImageVerbalization было установлено на False. |
Object | Только ApiKey и DeploymentName редактируются |
нет |
EmbeddingModel |
Модель внедрения текста, которая векторизирует содержимое текста и изображения во время индексирования и во время запроса. Поддерживаемые модели: text-embedding-ada-002, text-embedding-3-smallи text-embedding-3-large. Навык Azure OpenAI Embedding будет включен в созданный набор навыков, а векторизатор Azure OpenAI будет включен в созданный индекс. |
Object | Только ApiKey и DeploymentName редактируются |
нет |
ContentExtractionMode |
Управляет извлечением содержимого из файлов. По умолчанию используется minimal стандартное извлечение содержимого для текста и изображений. Установите значение standard для расширенной обработки и фрагментирования документов с помощью навыка Azure для распознавания содержимого, который будет включен в созданный набор навыков. Только для standard могут быть заданы параметры AiServices и AssetStore. |
String | нет | нет |
AiServices |
Ресурс Microsoft Foundry для доступа к функциям понимания контента Azure в Foundry Tools. Для установки этого параметра требуется, чтобы ContentExtractionMode было установлено на standard. |
Object | Только ApiKey можно редактировать |
Да |
AssetStore |
Контейнер BLOB для хранения извлеченных образов. Для установки этого параметра требуется, чтобы ContentExtractionMode было установлено на standard. |
Object | нет | нет |
IngestionSchedule |
Добавляет сведения о планировании в созданный индексатор. Вы также можете добавить расписание позже для автоматизации обновления данных. | Object | Да | нет |
IngestionPermissionOptions |
Разрешения уровня документа для интеграции с содержимым. Укажите UserIds, GroupIds или RbacScope, чтобы сохранить метаданные разрешений в индексе. Инструкции для конкретного источника см. в разделе назначение разрешений RBAC из BLOB-хранилища и назначение списков управления доступом из ADLS Gen2. Сведения о применении этих разрешений во время запроса см. в разделе "Принудительное применение разрешений во время запроса". |
Массив | нет | нет |
Только для индексированных источников знаний можно передать следующие ingestionParameters свойства, чтобы управлять приемом и обработкой содержимого.
| Имя | Description | Тип | Возможно изменение | Обязательно |
|---|---|---|---|---|
identity |
Управляемая идентичность для использования в созданном индексаторе. | Object | Да | нет |
disable_image_verbalization |
Включает или отключает использование вербализации изображений. Значение по умолчанию — False, что включает вербализацию изображения. Установите для True, чтобы отключить словесное описание изображения. |
Boolean | нет | нет |
chat_completion_model |
Модель завершения чата, которая переводит изображения в текст или извлекает содержимое. Поддерживаемые модели: gpt-4o, gpt-4o-mini, gpt-4.1gpt-4.1-minigpt-4.1-nanogpt-5, gpt-5-miniи .gpt-5-nano
Навык запроса GenAI будет включен в созданный набор навыков. Для установки этого параметра также требуется, чтобы disable_image_verbalization было установлено на False. |
Object | Только api_key и deployment_name редактируются |
нет |
embedding_model |
Модель внедрения текста, которая векторизирует содержимое текста и изображения во время индексирования и во время запроса. Поддерживаемые модели: text-embedding-ada-002, text-embedding-3-smallи text-embedding-3-large. Навык Azure OpenAI Embedding будет включен в созданный набор навыков, а векторизатор Azure OpenAI будет включен в созданный индекс. |
Object | Только api_key и deployment_name редактируются |
нет |
content_extraction_mode |
Управляет извлечением содержимого из файлов. По умолчанию используется minimal стандартное извлечение содержимого для текста и изображений. Установите значение standard для расширенной обработки и фрагментирования документов с помощью навыка Azure для распознавания содержимого, который будет включен в созданный набор навыков. Только для standard могут быть заданы параметры ai_services и asset_store. |
String | нет | нет |
ai_services |
Ресурс Microsoft Foundry для доступа к функциям понимания контента Azure в Foundry Tools. Для установки этого параметра требуется, чтобы content_extraction_mode было установлено на standard. |
Object | Только api_key можно редактировать |
Да |
asset_store |
Контейнер BLOB для хранения извлеченных образов. Для установки этого параметра требуется, чтобы content_extraction_mode было установлено на standard. |
Object | нет | нет |
ingestion_schedule |
Добавляет сведения о планировании в созданный индексатор. Вы также можете добавить расписание позже для автоматизации обновления данных. | Object | Да | нет |
ingestion_permission_options |
Разрешения уровня документа для интеграции с содержимым. Укажите user_ids, group_ids или rbac_scope, чтобы сохранить метаданные разрешений в индексе. Инструкции для конкретного источника см. в разделе назначение разрешений RBAC из BLOB-хранилища и назначение списков управления доступом из ADLS Gen2. Сведения о применении этих разрешений во время запроса см. в разделе "Принудительное применение разрешений во время запроса". |
Массив | нет | нет |
Только для индексированных источников знаний можно передать следующие ingestionParameters свойства, чтобы управлять приемом и обработкой содержимого.
| Имя | Description | Тип | Возможно изменение | Обязательно |
|---|---|---|---|---|
identity |
Управляемая идентичность для использования в созданном индексаторе. | Object | Да | нет |
disableImageVerbalization |
Включает или отключает использование вербализации изображений. Значение по умолчанию — false, что включает вербализацию изображения. Установите для true, чтобы отключить словесное описание изображения. |
Boolean | нет | нет |
chatCompletionModel |
Модель завершения чата, которая переводит изображения в текст или извлекает содержимое. Поддерживаемые модели: gpt-4o, gpt-4o-mini, gpt-4.1gpt-4.1-minigpt-4.1-nanogpt-5, gpt-5-miniи .gpt-5-nano
Навык запроса GenAI будет включен в созданный набор навыков. Для установки этого параметра также требуется, чтобы disableImageVerbalization было установлено на false. |
Object | Только apiKey и deploymentId редактируются |
нет |
embeddingModel |
Модель внедрения текста, которая векторизирует содержимое текста и изображения во время индексирования и во время запроса. Поддерживаемые модели: text-embedding-ada-002, text-embedding-3-smallи text-embedding-3-large. Навык Azure OpenAI Embedding будет включен в созданный набор навыков, а векторизатор Azure OpenAI будет включен в созданный индекс. |
Object | Только apiKey и deploymentId редактируются |
нет |
contentExtractionMode |
Управляет извлечением содержимого из файлов. По умолчанию используется minimal стандартное извлечение содержимого для текста и изображений. Установите значение standard для расширенной обработки и фрагментирования документов с помощью навыка Azure для распознавания содержимого, который будет включен в созданный набор навыков. Только для standard могут быть заданы параметры aiServices и assetStore. |
String | нет | нет |
aiServices |
Ресурс Microsoft Foundry для доступа к функциям понимания контента Azure в Foundry Tools. Для установки этого параметра требуется, чтобы contentExtractionMode было установлено на standard. |
Object | Только apiKey можно редактировать |
Да |
assetStore |
Контейнер BLOB для хранения извлеченных образов. Для установки этого параметра требуется, чтобы contentExtractionMode было установлено на standard. |
Object | нет | нет |
ingestionSchedule |
Добавляет сведения о планировании в созданный индексатор. Вы также можете добавить расписание позже для автоматизации обновления данных. | Object | Да | нет |
ingestionPermissionOptions |
Разрешения уровня документа для интеграции с содержимым. Укажите userIds, groupIds или rbacScope, чтобы сохранить метаданные разрешений в индексе. Инструкции для конкретного источника см. в разделе назначение разрешений RBAC из BLOB-хранилища и назначение списков управления доступом из ADLS Gen2. Сведения о применении этих разрешений во время запроса см. в разделе "Принудительное применение разрешений во время запроса". |
Массив | нет | нет |
Проверка состояния приема
Выполните следующий код, чтобы отслеживать прогресс и состояние системы, включая статус индексатора для источников знаний, которые создают конвейер индексатора и заполняют поисковый индекс.
// Get knowledge source ingestion status
using Azure.Search.Documents.Indexes;
using System.Text.Json;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));
// Get the knowledge source status
var statusResponse = await indexClient.GetKnowledgeSourceStatusAsync(knowledgeSourceName);
var status = statusResponse.Value;
// Serialize to JSON for display
var json = JsonSerializer.Serialize(status, new JsonSerializerOptions { WriteIndented = true });
Console.WriteLine(json);
Ответ на любой запрос, включающий параметры приема и активно принимающий содержимое, может выглядеть следующим образом.
{
"synchronizationStatus": "active", // creating, active, deleting
"synchronizationInterval" : "1d", // null if no schedule
"currentSynchronizationState" : { // spans multiple indexer "runs"
"startTime": "2025-10-27T19:30:00Z",
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
},
"lastSynchronizationState" : { // null on first sync
"startTime": "2025-10-27T19:30:00Z",
"endTime": "2025-10-27T19:40:01Z", // this value appears on the activity record on each /retrieve
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
},
"statistics": { // null on first sync
"totalSynchronization": 25,
"averageSynchronizationDuration": "00:15:20",
"averageItemsProcessedPerSynchronization" : 500
}
}
Выполните следующий код, чтобы отслеживать процесс сбора данных и состояние системы, включая состояние индексатора, использующегося для источников знаний, создающих индексаторный конвейер и заполняющих поисковый индекс.
# Check knowledge source ingestion status
import requests
import json
endpoint = "{search_url}/knowledgesources/{knowledge_source_name}/status"
params = {"api-version": "2025-11-01-preview"}
headers = {"api-key": "{api_key}"}
response = requests.get(endpoint, params = params, headers = headers)
print(json.dumps(response.json(), indent = 2))
Ответ на любой запрос, включающий параметры приема и активно принимающий содержимое, может выглядеть следующим образом.
{
"synchronizationStatus": "active", // creating, active, deleting
"synchronizationInterval" : "1d", // null if no schedule
"currentSynchronizationState" : { // spans multiple indexer "runs"
"startTime": "2025-10-27T19:30:00Z",
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
},
"lastSynchronizationState" : { // null on first sync
"startTime": "2025-10-27T19:30:00Z",
"endTime": "2025-10-27T19:40:01Z", // this value appears on the activity record on each /retrieve
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
},
"statistics": { // null on first sync
"totalSynchronization": 25,
"averageSynchronizationDuration": "00:15:20",
"averageItemsProcessedPerSynchronization" : 500
}
}
Используйте Источники знаний — состояние (REST API) для отслеживания хода поступления данных и работоспособности, включая статус индексатора для источников знаний, которые формируют инфраструктуру индексирования и наполняют поисковый индекс.
### Check knowledge source ingestion status
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}/status?api-version=2025-11-01-preview
api-key: {{api-key}}
Content-Type: application/json
Ответ на любой запрос, включающий параметры приема и активно принимающий содержимое, может выглядеть следующим образом.
{
"synchronizationStatus": "active", // creating, active, deleting
"synchronizationInterval" : "1d", // null if no schedule
"currentSynchronizationState" : { // spans multiple indexer "runs"
"startTime": "2025-10-27T19:30:00Z",
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
},
"lastSynchronizationState" : { // null on first sync
"startTime": "2025-10-27T19:30:00Z",
"endTime": "2025-10-27T19:40:01Z", // this value appears on the activity record on each /retrieve
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
},
"statistics": { // null on first sync
"totalSynchronization": 25,
"averageSynchronizationDuration": "00:15:20",
"averageItemsProcessedPerSynchronization" : 500
}
}
Просмотр созданных объектов
При создании источника знаний BLOB служба поиска также создает индексатор, индекс, набор функций и источник данных. Не рекомендуется изменять эти объекты, так как при возникновении ошибки или несовместимости конвейер может нарушиться.
После создания источника знаний ответ выводит список созданных объектов. Эти объекты создаются в соответствии с фиксированным шаблоном, а их имена основаны на имени источника знаний. Нельзя изменить имена объектов.
Мы рекомендуем использовать портал Azure для проверки создания выходных данных. Рабочий процесс:
- Проверьте индексатор для сообщений об успешном выполнении или сбое. Ошибки подключения или квоты отображаются здесь.
- Проверьте индекс содержимого, доступного для поиска. Используйте обозреватель поиска для выполнения запросов.
- Проверьте функционал, чтобы узнать, как содержимое разбивается на части и опционально преобразовано в векторы.
- Проверьте источник данных для получения сведений о подключении. В нашем примере используются ключи API для простоты, но для авторизации можно использовать Microsoft Entra ID для проверки подлинности и управления доступом на основе ролей.
Назначение базе знаний
Если вы удовлетворены источником знаний, перейдите к следующему шагу: укажите источник знаний в базе знаний.
После настройки базы знаний используйте действие извлечения для запроса источника знаний.
Подсказка
Чтобы применить разрешения на уровне документа, задайте IngestionPermissionOptions при создании этого источника знаний и добавьте маркер доступа пользователя в запрос на получение. Дополнительные сведения см. в разделе "Принудительное применение разрешений во время запроса".
Подсказка
Чтобы применить разрешения на уровне документа, задайте ingestion_permission_options при создании этого источника знаний и добавьте маркер доступа пользователя в запрос на получение. Дополнительные сведения см. в разделе "Принудительное применение разрешений во время запроса".
Подсказка
Чтобы применить разрешения на уровне документа, задайте ingestionPermissionOptions при создании этого источника знаний и добавьте маркер доступа пользователя в запрос на получение. Дополнительные сведения см. в разделе "Принудительное применение разрешений во время запроса".
Удаление источника знаний
Прежде чем удалить источник знаний, необходимо удалить любую базу знаний, которая ссылается на нее или обновить определение базы знаний, чтобы удалить ссылку. Для источников знаний, которые создают индекс и конвейер индексатора, все созданные объекты также удаляются. Однако если вы использовали существующий индекс для создания источника знаний, индекс не удаляется.
Если вы пытаетесь удалить используемый источник знаний, действие завершается ошибкой и возвращает список затронутых баз знаний.
Удаление источника знаний:
Получите список всех баз знаний в службе поиска.
using Azure.Search.Documents.Indexes; var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential); var knowledgeBases = indexClient.GetKnowledgeBasesAsync(); Console.WriteLine("Knowledge Bases:"); await foreach (var kb in knowledgeBases) { Console.WriteLine($" - {kb.Name}"); }Пример ответа может выглядеть следующим образом:
Knowledge Bases: - earth-knowledge-base - hotels-sample-knowledge-base - my-demo-knowledge-baseПолучите отдельное определение базы знаний для проверки ссылок на источники знаний.
using Azure.Search.Documents.Indexes; using System.Text.Json; var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential); // Specify the knowledge base name to retrieve string kbNameToGet = "earth-knowledge-base"; // Get a specific knowledge base definition var knowledgeBaseResponse = await indexClient.GetKnowledgeBaseAsync(kbNameToGet); var kb = knowledgeBaseResponse.Value; // Serialize to JSON for display string json = JsonSerializer.Serialize(kb, new JsonSerializerOptions { WriteIndented = true }); Console.WriteLine(json);Пример ответа может выглядеть следующим образом:
{ "Name": "earth-knowledge-base", "KnowledgeSources": [ { "Name": "earth-knowledge-source" } ], "Models": [ {} ], "RetrievalReasoningEffort": {}, "OutputMode": {}, "ETag": "\u00220x8DE278629D782B3\u0022", "EncryptionKey": null, "Description": null, "RetrievalInstructions": null, "AnswerInstructions": null }Удалите базу знаний или обновите базу знаний, чтобы удалить источник знаний при наличии нескольких источников. В этом примере показано удаление.
using Azure.Search.Documents.Indexes; var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential); await indexClient.DeleteKnowledgeBaseAsync(knowledgeBaseName); System.Console.WriteLine($"Knowledge base '{knowledgeBaseName}' deleted successfully.");Удалите источник знаний.
await indexClient.DeleteKnowledgeSourceAsync(knowledgeSourceName); System.Console.WriteLine($"Knowledge source '{knowledgeSourceName}' deleted successfully.");
Прежде чем удалить источник знаний, необходимо удалить любую базу знаний, которая ссылается на нее или обновить определение базы знаний, чтобы удалить ссылку. Для источников знаний, которые создают индекс и конвейер индексатора, все созданные объекты также удаляются. Однако если вы использовали существующий индекс для создания источника знаний, индекс не удаляется.
Если вы пытаетесь удалить используемый источник знаний, действие завершается ошибкой и возвращает список затронутых баз знаний.
Удаление источника знаний:
Получите список всех баз знаний в службе поиска.
# Get knowledge bases import requests import json endpoint = "{search_url}/knowledgebases" params = {"api-version": "2025-11-01-preview", "$select": "name"} headers = {"api-key": "{api_key}"} response = requests.get(endpoint, params = params, headers = headers) print(json.dumps(response.json(), indent = 2))Пример ответа может выглядеть следующим образом:
{ "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)", "value": [ { "name": "my-kb" }, { "name": "my-kb-2" } ] }Получите отдельное определение базы знаний для проверки ссылок на источники знаний.
# Get a knowledge base definition import requests import json endpoint = "{search_url}/knowledgebases/{knowledge_base_name}" params = {"api-version": "2025-11-01-preview"} headers = {"api-key": "{api_key}"} response = requests.get(endpoint, params = params, headers = headers) print(json.dumps(response.json(), indent = 2))Пример ответа может выглядеть следующим образом:
{ "name": "my-kb", "description": null, "retrievalInstructions": null, "answerInstructions": null, "outputMode": null, "knowledgeSources": [ { "name": "my-blob-ks", } ], "models": [], "encryptionKey": null, "retrievalReasoningEffort": { "kind": "low" } }Удалите базу знаний или обновите базу знаний, чтобы удалить источник знаний при наличии нескольких источников. В этом примере показано удаление.
# Delete a knowledge base from azure.core.credentials import AzureKeyCredential from azure.search.documents.indexes import SearchIndexClient index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key")) index_client.delete_knowledge_base("knowledge_base_name") print(f"Knowledge base deleted successfully.")Удалите источник знаний.
# Delete a knowledge source from azure.core.credentials import AzureKeyCredential from azure.search.documents.indexes import SearchIndexClient index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key")) index_client.delete_knowledge_source("knowledge_source_name") print(f"Knowledge source deleted successfully.")
Прежде чем удалить источник знаний, необходимо удалить любую базу знаний, которая ссылается на нее или обновить определение базы знаний, чтобы удалить ссылку. Для источников знаний, которые создают индекс и конвейер индексатора, все созданные объекты также удаляются. Однако если вы использовали существующий индекс для создания источника знаний, индекс не удаляется.
Если вы пытаетесь удалить используемый источник знаний, действие завершается ошибкой и возвращает список затронутых баз знаний.
Удаление источника знаний:
Получите список всех баз знаний в службе поиска.
### Get knowledge bases GET {{search-endpoint}}/knowledgebases?api-version=2025-11-01-preview&$select=name api-key: {{api-key}}Пример ответа может выглядеть следующим образом:
{ "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)", "value": [ { "name": "my-kb" }, { "name": "my-kb-2" } ] }Получите отдельное определение базы знаний для проверки ссылок на источники знаний.
### Get a knowledge base definition GET {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}?api-version=2025-11-01-preview api-key: {{api-key}}Пример ответа может выглядеть следующим образом:
{ "name": "my-kb", "description": null, "retrievalInstructions": null, "answerInstructions": null, "outputMode": null, "knowledgeSources": [ { "name": "my-blob-ks", } ], "models": [], "encryptionKey": null, "retrievalReasoningEffort": { "kind": "low" } }Удалите базу знаний или обновите базу знаний, удалив источник знаний, если у вас несколько источников. В этом примере показано удаление.
### Delete a knowledge base DELETE {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}?api-version=2025-11-01-preview api-key: {{api-key}}Удалите источник знаний.
### Delete a knowledge source DELETE {{search-endpoint}}/knowledgesources/{{knowledge-source-name}}?api-version=2025-11-01-preview api-key: {{api-key}}
Связанный контент
- Агентное извлечение в Поиск с использованием ИИ Azure
- Образец на Python для источника знаний BLOB-объектов в Поиск с использованием ИИ Azure
- Agentic RAG: создание подсистемы извлечения причин с помощью Поиск с использованием ИИ Azure (видео YouTube)
- Демонстрация возможностей Azure OpenAI с агентским извлечением