Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Эта функция сейчас доступна в общедоступной предварительной версии. Этот предварительный просмотр предоставляется без соглашения об уровне обслуживания и не предназначается для производственных рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Для получения дополнительной информации см. Дополнительные условия использования для предварительных версий Microsoft Azure.
Используйте источник знаний BLOB-объектов для индексирования и запроса содержимого Azure BLOB-объектов в агентском процессе извлечения. Источники знаний создаются независимо, ссылаются на базу знаний и используются в качестве исходных данных, когда агент или чат-бот вызывает действие извлечения во время запроса.
В отличие от источника знаний индекса поиска, указывающего существующий и квалифицированный индекс, источник знаний BLOB-объектов указывает внешний источник данных, модели и свойства для автоматического создания следующих объектов поиска ИИ Azure:
- Источник данных, представляющий контейнер объектов BLOB.
- Навыки, которые разбивают на части и при необходимости векторизируют многомодальное содержимое в контейнере.
- Индекс, который хранит обогащенное содержимое и соответствует критериям для агентского извлечения.
- Индексатор, использующий предыдущие объекты для управления конвейером индексирования и обогащения.
Замечание
Если доступ пользователя указан на уровне документа (BLOB-объектов) в службе хранилища Azure, источник знаний может переносить метаданные разрешений в индексированное содержимое в сервисе Azure AI Search. Для получения более подробной информации см. метаданные разрешений ADLS Gen2 или Blob RBAC scopes.
Предпосылки
Поиск по искусственному интеллекту Azure в любом регионе, который предоставляет агентское извлечение. Необходимо включить семантику ранжирования.
Учетная запись хранилища BLOB-объектов Azure или Azure Data Lake Storage (ADLS) 2-го поколения .
Контейнер BLOB с допустимыми типами контента для текстового содержимого. Для необязательного озвучивания изображений поддерживаемый тип контента зависит от того, может ли модель завершения чата анализировать и описывать файл изображения.
Последняя предварительная версия клиентской библиотеки
Azure.Search.Documentsдля пакета SDK для .NET.Разрешение на создание и использование объектов в службе "Поиск ИИ Azure". Рекомендуется доступ на основе ролей, но при невозможности назначения роли можно использовать ключи API. Дополнительные сведения см. в разделе "Подключение к службе поиска".
Замечание
Хотя вы можете использовать портал Azure для создания источников знаний на основе BLOB-объектов, в портале используется предварительная версия 2025-08-01-preview, которая применяет предыдущую терминологию "агент знаний" и не поддерживает все функции версии 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));
Приведенный 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, можно передать следующие свойства.
| Имя | Description | Тип | Возможно изменение | Обязательно |
|---|---|---|---|---|
name |
Имя источника знаний, которое должно быть уникальным в коллекции источников знаний и следуйте рекомендациям по именованию объектов в службе "Поиск ИИ Azure". | String | нет | Да |
Description |
Описание источника знаний. | String | Да | нет |
encryptionKey |
Управляемый клиентом ключ для шифрования конфиденциальной информации как в источнике знаний, так и в созданных объектах. | Object | Да | нет |
chatCompletionParams |
Параметры, относящиеся к моделям завершения диалога, используемым для планирования запросов и синтеза необязательных ответов, когда усилия по извлечению информации низкие или средние. | Object | нет | |
embeddingParams |
Параметры, относящиеся к внедрению моделей, используемых, если требуется векторизировать блоки содержимого. | Object | нет | |
azureBlobParameters |
Параметры, относящиеся к источникам знаний BLOB: connectionString, containerName, folderPath, и isAdlsGen2. |
Object | нет | |
connectionString |
Строка подключения, основанная на ключе, или, если вы используете управляемое удостоверение, идентификатор ресурса. | String | нет | Да |
containerName |
Имя контейнера хранилища BLOB-объектов. | String | нет | Да |
folderPath |
Папка в контейнере. | String | нет | нет |
isAdlsGen2 |
Значение по умолчанию — False. Установите значение True , если вы используете учетную запись хранения ADLS 2-го поколения. |
Boolean | нет | нет |
свойства ingestionParameters
Только для индексированных источников знаний можно передать следующие 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 будет включен в созданный набор навыков. Для установки этого параметра также требуется, чтобы disable_image_verbalization было установлено на False. |
Object | Только api_key и deployment_name редактируются |
нет |
EmbeddingModel |
Модель внедрения текста, которая векторизирует содержимое текста и изображения во время индексирования и во время запроса. Поддерживаемые модели: text-embedding-ada-002, text-embedding-3-smallи text-embedding-3-large.
Навык встраивания Azure OpenAI будет включен в созданный набор навыков, а векторизатор Azure OpenAI будет включен в созданный индекс. |
Object | Только api_key и deployment_name редактируются |
нет |
ContentExtractionMode |
Управляет извлечением содержимого из файлов. По умолчанию используется minimal стандартное извлечение содержимого для текста и изображений.
standard Установите значение для расширенного взлома и фрагментирования документов с помощью навыка "Понимание содержимого Azure", который будет включен в созданный набор навыков. Только для standard могут быть заданы параметры AiServices и AssetStore. |
String | нет | нет |
AiServices |
Ресурс Microsoft Foundry для доступа к возможности обработки контента Azure в Foundry Tools. Для установки этого параметра требуется, чтобы ContentExtractionMode было установлено на standard. |
Object | Только api_key можно редактировать |
Да |
IngestionSchedule |
Добавляет сведения о планировании в созданный индексатор. Вы также можете добавить расписание позже для автоматизации обновления данных. | Object | Да | нет |
IngestionPermissionOptions |
Разрешения уровня документа для приема из выбранных источников знаний, например, ADLS Gen2 или индексированных SharePoint. При указании user_ids, group_ids или rbac_scope в созданном индексаторе ADLS поколения 2 или индексаторе SharePoint будут включены разрешения на импорт. |
Массив | нет | нет |
Проверка состояния приема
Выполните следующий код, чтобы отслеживать прогресс и состояние системы, включая статус индексатора для источников знаний, которые создают конвейер индексатора и заполняют поисковый индекс.
// 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
}
}
Просмотр созданных объектов
При создании источника знаний BLOB служба поиска также создает индексатор, индекс, набор функций и источник данных. Не рекомендуется изменять эти объекты, так как при возникновении ошибки или несовместимости конвейер может нарушиться.
После создания источника знаний ответ выводит список созданных объектов. Эти объекты создаются в соответствии с фиксированным шаблоном, а их имена основаны на имени источника знаний. Нельзя изменить имена объектов.
Мы рекомендуем использовать портал Azure для проверки создания выходных данных. Рабочий процесс:
- Проверьте индексатор для сообщений об успешном выполнении или сбое. Ошибки подключения или квоты отображаются здесь.
- Проверьте индекс содержимого, доступного для поиска. Используйте обозреватель поиска для выполнения запросов.
- Проверьте функционал, чтобы узнать, как содержимое разбивается на части и опционально преобразовано в векторы.
- Проверьте источник данных для получения сведений о подключении. В нашем примере используются ключи API для простоты, но вы можете использовать идентификатор Microsoft Entra для проверки подлинности и управления доступом на основе ролей для авторизации.
Назначение базе знаний
Если вы удовлетворены источником знаний, перейдите к следующему шагу: укажите источник знаний в базе знаний.
После настройки базы знаний используйте действие извлечения для запроса источника знаний.
Удаление источника знаний
Прежде чем удалить источник знаний, необходимо удалить любую базу знаний, которая ссылается на нее или обновить определение базы знаний, чтобы удалить ссылку. Для источников знаний, которые создают индекс и конвейер индексатора, все созданные объекты также удаляются. Однако если вы использовали существующий индекс для создания источника знаний, индекс не удаляется.
Если вы пытаетесь удалить используемый источник знаний, действие завершается ошибкой и возвращает список затронутых баз знаний.
Удаление источника знаний:
Получите список всех баз знаний в службе поиска.
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.");
Замечание
Эта функция сейчас доступна в общедоступной предварительной версии. Этот предварительный просмотр предоставляется без соглашения об уровне обслуживания и не предназначается для производственных рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Для получения дополнительной информации см. Дополнительные условия использования для предварительных версий Microsoft Azure.
Используйте источник знаний BLOB-объектов для индексирования и запроса содержимого Azure BLOB-объектов в агентском процессе извлечения. Источники знаний создаются независимо, ссылаются на базу знаний и используются в качестве исходных данных, когда агент или чат-бот вызывает действие извлечения во время запроса.
В отличие от источника знаний индекса поиска, указывающего существующий и квалифицированный индекс, источник знаний BLOB-объектов указывает внешний источник данных, модели и свойства для автоматического создания следующих объектов поиска ИИ Azure:
- Источник данных, представляющий контейнер объектов BLOB.
- Навыки, которые разбивают на части и при необходимости векторизируют многомодальное содержимое в контейнере.
- Индекс, который хранит обогащенное содержимое и соответствует критериям для агентского извлечения.
- Индексатор, использующий предыдущие объекты для управления конвейером индексирования и обогащения.
Замечание
Если доступ пользователя указан на уровне документа (BLOB-объектов) в службе хранилища Azure, источник знаний может переносить метаданные разрешений в индексированное содержимое в сервисе Azure AI Search. Для получения более подробной информации см. метаданные разрешений ADLS Gen2 или Blob RBAC scopes.
Предпосылки
Поиск по искусственному интеллекту Azure в любом регионе, который предоставляет агентское извлечение. Необходимо включить семантику ранжирования.
Учетная запись хранилища BLOB-объектов Azure или Azure Data Lake Storage (ADLS) 2-го поколения .
Контейнер BLOB с допустимыми типами контента для текстового содержимого. Для необязательного озвучивания изображений поддерживаемый тип контента зависит от того, может ли модель завершения чата анализировать и описывать файл изображения.
Последняя предварительная версия клиентской библиотеки
azure-search-documentsдля Python.Разрешение на создание и использование объектов в службе "Поиск ИИ Azure". Рекомендуется доступ на основе ролей, но при невозможности назначения роли можно использовать ключи API. Дополнительные сведения см. в разделе "Подключение к службе поиска".
Замечание
Хотя вы можете использовать портал Azure для создания источников знаний на основе BLOB-объектов, в портале используется предварительная версия 2025-08-01-preview, которая применяет предыдущую терминологию "агент знаний" и не поддерживает все функции версии 2025-11-01-preview. Сведения о критических изменениях см. в статье "Миграция кода извлечения агента".
Проверка существующих источников знаний
Источник знаний — это объект верхнего уровня, который можно использовать повторно. Знание существующих источников знаний полезно для повторного использования или именования новых объектов.
Выполните следующий код, чтобы перечислить источники знаний по имени и типу.
# 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))
Приведенный 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
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(
# TRIMMED FOR BREVITY
)
),
embedding_model = KnowledgeSourceAzureOpenAIVectorizer(
azure_open_ai_parameters=AzureOpenAIVectorizerParameters(
# TRIMMED FOR BREVITY
)
),
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.")
Свойства, относящиеся к источнику
Чтобы создать источник знаний на основе объектов BLOB, можно передать следующие свойства.
| Имя | 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 | нет | нет |
свойства ingestionParameters
Только для индексированных источников знаний можно передать следующие 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 будет включен в созданный набор навыков, а векторизатор 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 |
Разрешения уровня документа для приема из выбранных источников знаний, например, ADLS Gen2 или индексированных SharePoint. При указании user_ids, group_ids или rbac_scope в созданном индексаторе ADLS поколения 2 или индексаторе SharePoint будут включены разрешения на импорт. |
Массив | нет | нет |
Проверка состояния приема
Выполните следующий код, чтобы отслеживать процесс сбора данных и состояние системы, включая состояние индексатора, использующегося для источников знаний, создающих индексаторный конвейер и заполняющих поисковый индекс.
# 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
}
}
Просмотр созданных объектов
При создании источника знаний BLOB служба поиска также создает индексатор, индекс, набор функций и источник данных. Не рекомендуется изменять эти объекты, так как при возникновении ошибки или несовместимости конвейер может нарушиться.
После создания источника знаний ответ выводит список созданных объектов. Эти объекты создаются в соответствии с фиксированным шаблоном, а их имена основаны на имени источника знаний. Нельзя изменить имена объектов.
Мы рекомендуем использовать портал Azure для проверки создания выходных данных. Рабочий процесс:
- Проверьте индексатор для сообщений об успешном выполнении или сбое. Ошибки подключения или квоты отображаются здесь.
- Проверьте индекс содержимого, доступного для поиска. Используйте обозреватель поиска для выполнения запросов.
- Проверьте функционал, чтобы узнать, как содержимое разбивается на части и опционально преобразовано в векторы.
- Проверьте источник данных для получения сведений о подключении. В нашем примере используются ключи API для простоты, но вы можете использовать идентификатор Microsoft Entra для проверки подлинности и управления доступом на основе ролей для авторизации.
Назначение базе знаний
Если вы удовлетворены источником знаний, перейдите к следующему шагу: укажите источник знаний в базе знаний.
После настройки базы знаний используйте действие извлечения для запроса источника знаний.
Удаление источника знаний
Прежде чем удалить источник знаний, необходимо удалить любую базу знаний, которая ссылается на нее или обновить определение базы знаний, чтобы удалить ссылку. Для источников знаний, которые создают индекс и конвейер индексатора, все созданные объекты также удаляются. Однако если вы использовали существующий индекс для создания источника знаний, индекс не удаляется.
Если вы пытаетесь удалить используемый источник знаний, действие завершается ошибкой и возвращает список затронутых баз знаний.
Удаление источника знаний:
Получите список всех баз знаний в службе поиска.
# 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.")
Замечание
Эта функция сейчас доступна в общедоступной предварительной версии. Этот предварительный просмотр предоставляется без соглашения об уровне обслуживания и не предназначается для производственных рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Для получения дополнительной информации см. Дополнительные условия использования для предварительных версий Microsoft Azure.
Используйте источник знаний BLOB-объектов для индексирования и запроса содержимого Azure BLOB-объектов в агентском процессе извлечения. Источники знаний создаются независимо, ссылаются на базу знаний и используются в качестве исходных данных, когда агент или чат-бот вызывает действие извлечения во время запроса.
В отличие от источника знаний индекса поиска, указывающего существующий и квалифицированный индекс, источник знаний BLOB-объектов указывает внешний источник данных, модели и свойства для автоматического создания следующих объектов поиска ИИ Azure:
- Источник данных, представляющий контейнер объектов BLOB.
- Навыки, которые разбивают на части и при необходимости векторизируют многомодальное содержимое в контейнере.
- Индекс, который хранит обогащенное содержимое и соответствует критериям для агентского извлечения.
- Индексатор, использующий предыдущие объекты для управления конвейером индексирования и обогащения.
Замечание
Если доступ пользователя указан на уровне документа (BLOB-объектов) в службе хранилища Azure, источник знаний может переносить метаданные разрешений в индексированное содержимое в сервисе Azure AI Search. Для получения более подробной информации см. метаданные разрешений ADLS Gen2 или Blob RBAC scopes.
Предпосылки
Поиск по искусственному интеллекту Azure в любом регионе, который предоставляет агентское извлечение. Необходимо включить семантику ранжирования.
Учетная запись хранилища BLOB-объектов Azure или Azure Data Lake Storage (ADLS) 2-го поколения .
Контейнер BLOB с допустимыми типами контента для текстового содержимого. Для необязательного озвучивания изображений поддерживаемый тип контента зависит от того, может ли модель завершения чата анализировать и описывать файл изображения.
Версия REST API службы поиска 2025-11-01-preview .
Разрешение на создание и использование объектов в службе "Поиск ИИ Azure". Рекомендуется доступ на основе ролей, но при невозможности назначения роли можно использовать ключи API. Дополнительные сведения см. в разделе "Подключение к службе поиска".
Замечание
Хотя вы можете использовать портал Azure для создания источников знаний на основе BLOB-объектов, в портале используется предварительная версия 2025-08-01-preview, которая применяет предыдущую терминологию "агент знаний" и не поддерживает все функции версии 2025-11-01-preview. Сведения о критических изменениях см. в статье "Миграция кода извлечения агента".
Проверка существующих источников знаний
Источник знаний — это объект верхнего уровня, который можно использовать повторно. Знание существующих источников знаний полезно для повторного использования или именования новых объектов.
Используйте 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"
}
}
}
Замечание
Конфиденциальная информация редактируется. Созданные ресурсы отображаются в конце ответа.
Создание источника знаний
Используйте источники знаний — создание или обновление (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": { TRIMMED FOR BREVITY },
"embeddingModel": { TRIMMED FOR BREVITY },
"contentExtractionMode": "minimal",
"ingestionSchedule": null,
"ingestionPermissionOptions": []
}
}
}
Свойства, относящиеся к источнику
Чтобы создать источник знаний на основе объектов BLOB, можно передать следующие свойства.
| Имя | 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
Только для индексированных источников знаний можно передать следующие 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 будет включен в созданный набор навыков, а векторизатор 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 |
Разрешения уровня документа для приема из выбранных источников знаний, например, ADLS Gen2 или индексированных SharePoint. При указании userIds, groupIds или rbacScope в созданном индексаторе ADLS поколения 2 или индексаторе SharePoint будут включены разрешения на импорт. |
Массив | нет | нет |
Проверка состояния приема
Используйте Источники знаний — состояние (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 для проверки подлинности и управления доступом на основе ролей для авторизации.
Назначение базе знаний
Если вы удовлетворены источником знаний, перейдите к следующему шагу: укажите источник знаний в базе знаний.
После настройки базы знаний используйте действие извлечения для запроса источника знаний.
Удаление источника знаний
Прежде чем удалить источник знаний, необходимо удалить любую базу знаний, которая ссылается на нее или обновить определение базы знаний, чтобы удалить ссылку. Для источников знаний, которые создают индекс и конвейер индексатора, все созданные объекты также удаляются. Однако если вы использовали существующий индекс для создания источника знаний, индекс не удаляется.
Если вы пытаетесь удалить используемый источник знаний, действие завершается ошибкой и возвращает список затронутых баз знаний.
Удаление источника знаний:
Получите список всех баз знаний в службе поиска.
### 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 AI Search
- Пример на Python для источника знаний BLOB-объектов в поисковой службе Azure AI
- Agentic RAG: создание системы извлечения, поддерживающей логическое построение, с использованием Azure AI Search (видео на YouTube)
- Демонстрация Azure OpenAI с агентическим извлечением