Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание
Поиск с использованием ИИ Azure доступна через портал Azure, REST API и Azure SDKs. Он также лежит в основе Foundry IQ — управляемого слоя знаний, который преобразует корпоративный контент в многократно используемые базы знаний с учетом разрешений доступа для агентов на портале Microsoft Foundry.
Important
Функции, возможности или свойства, помеченные (предварительная версия), не охватываются соглашением об уровне обслуживания, не рекомендуются для рабочих нагрузок и могут изменяться или ограничиваться до того, как они становятся общедоступными. Условия предварительной версии Поиск с использованием ИИ Azure применяются ко всем функциям предварительной версии, независимо от того, является ли он автономным или частью общедоступной функции.
Источник знаний для BLOB-объектов принимает содержимое Хранилище BLOB-объектов Azure или ADLS Gen2 в агентный конвейер извлечения в Поиск с использованием ИИ Azure. Источники знаний создаются независимо, ссылаются в базе знаний и используются в качестве базирования данных при запросе базы знаний во время выполнения.
При создании источника знаний с использованием BLOB, вы должны указать внешний источник данных, модели и свойства для автоматического создания следующих объектов Поиск с использованием ИИ Azure.
- Источник данных, представляющий контейнер для BLOB-объектов.
- Навык, который разбивает на части и при необходимости векторизует мультимодальное содержимое из контейнера.
- Индекс, который хранит улучшенное содержимое и соответствует критериям агентного извлечения.
- Индексатор, использующий предыдущие объекты для управления конвейером индексирования и обогащения.
Созданный индексатор соответствует индексатору BLOB-объектов, необходимые условия, поддерживаемые форматы документов и ограничения также применяются к источникам знаний BLOB-объектов. Дополнительные сведения см. в документации по индексатору BLOB-объектов и ограничениям индексатора. Если созданный набор навыков вызывает внешнюю службу, то также применяются ограничения на входные данные этого навыка и ограничения этой службы.
Примечание
Если доступ пользователя указан на уровне документа (BLOB-объектов) в служба хранилища Azure, источник знаний может передавать метаданные разрешений в индексированное содержимое в Поиск с использованием ИИ Azure. Дополнительные сведения см. в разделе метаданные разрешений ADLS Gen2 (предварительная версия) или области RBAC для BLOB-объектов (предварительная версия).
Поддержка использования
| портал Azure | портал Microsoft Foundry | Пакет SDK для .NET | пакет SDK Python | SDK для Java | пакет SDK JavaScript | REST API |
|---|---|---|---|---|---|---|
| ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Необходимые условия
Служба Поиск с использованием ИИ Azure в любом регионе, который предоставляет агентский доступ.
Учетная запись Хранилище BLOB-объектов Azure или Azure Data Lake Storage (ADLS) 2-го поколения.
Контейнер BLOB-объектов с поддерживаемыми типами контента для текстового контента. Для необязательного описания изображений словами поддерживаемый тип данных зависит от того, может ли модель для завершения чата анализировать и описать файл изображения.
Если
contentExtractionMode—standard, используйте ресурс Microsoft Foundry в регионе, поддерживаемом Content Understanding в Foundry Tools с конечной точкойhttps://<resource-name>.services.ai.azure.com. Ресурс должен иметь развертывание модели эмбеддингов и, если вы включите преобразование изображений в текст, развертывание многомодальной чат-модели.Разрешение на создание источников знаний. Настройте проверку подлинности без ключа с помощью ролей участника службы поиска и участника индекса поиска , назначенных учетной записи пользователя (рекомендуется) или используйте ключ API администратора.
управляемая идентичность для службы поиска с ролью Storage Blob Data Reader в области исходной учетной записи хранения и ролью Cognitive Services User для ресурса Microsoft Foundry. Если вы настраиваете хранилище ресурсов в другой учетной записи хранения, также назначьте роль Storage Blob Data Contributor на уровне этой учетной записи хранения. Если исходный контейнер и контейнеры ресурсов используют одну и ту же учетную запись, Storage Blob Data Contributor предоставляет доступ на чтение к источнику и доступ на чтение и запись к хранилищу ресурсов.
Если установить
networkAccessModeна значениеprivate, выполните следующие требования:Используйте службу поиска S2, S3, L1 или L2.
Включите для службы поиска управляемое удостоверение, назначаемое системой или пользователем, предоставьте ему роль Storage Blob Data Reader для учетной записи хранения и используйте строку подключения
ResourceId=/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>. Для управляемой идентичности, назначаемой пользователем, также укажитеingestionParameters.identity.Создайте и одобрите общую закрытую ссылку к учетной записи хранения с идентификатором группы
blob. Для ADLS Gen2 создайте и утвердите оба общих частных канала:blobиdfs.Создайте и утвердите общую частную ссылку для каждой защищенной конечной точки модели. Используйте ID группы
openai_accountдля конечных точек Azure OpenAI иfoundry_accountдля конечных точек ресурсов Foundry.
Обязательный пакет
Azure.Search.Documents:Для функций
2026-08-01-preview: последний предварительный пакетdotnet add package Azure.Search.Documents --prereleaseПоследний стабильный пакет для функций
2026-04-01:dotnet add package Azure.Search.Documents
Для аутентификации без использования ключа пакет
Azure.Identity:dotnet add package Azure.Identity
Обязательный пакет
azure-search-documents:Для функций
2026-08-01-preview: последний предварительный пакетpip install --pre azure-search-documentsПоследний стабильный пакет для функций
2026-04-01:pip install azure-search-documents
Для аутентификации без использования ключа пакет
azure-identity:pip install azure-identity
Требуемая версия REST API службы поиска:
Для функций предварительной версии: 2026-08-01-preview
Для общедоступных функций: 2026-04-01
Для проверки подлинности без ключа добавьте маркер Microsoft Entra ID в
Authorizationзаголовок каждого HTTP-запроса.
Проверка существующих источников знаний
Источник знаний — это объект верхнего уровня, который можно использовать повторно. Знание существующих источников знаний полезно для повторного использования или именования новых объектов.
Выполните следующий код, чтобы перечислить источники знаний по имени и типу.
// 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}");
}
Reference:SearchIndexClient
# List knowledge sources by name and type
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
for ks in index_client.list_knowledge_sources():
print(f" - {ks.name} ({ks.kind})")
Reference:SearchIndexClient
### List knowledge sources by name and type
GET {{search-url}}/knowledgesources?api-version={{api-version}}&$select=name,kind
Authorization: Bearer {{token}}
Справочник:Источники знаний — список
Вы также можете вернуть один источник знаний по имени, чтобы просмотреть его определение 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));
Reference:SearchIndexClient
# Get a knowledge source definition
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
import json
index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
ks = index_client.get_knowledge_source("knowledge_source_name")
print(json.dumps(ks.as_dict(), indent = 2))
Reference:SearchIndexClient
### Get a knowledge source definition
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}}
Authorization: Bearer {{token}}
Reference:Источники знаний — получить
Следующий 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",
"modelName": "text-embedding-3-large",
"authIdentity": null
}
},
"chatCompletionModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "<aoai-endpoint>",
"deploymentId": "gpt-5-mini",
"modelName": "gpt-5-mini",
"authIdentity": null
}
},
"ingestionSchedule": null,
"assetStore": null,
"aiServices": {
"uri": "<aoai-endpoint>",
}
},
"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.Search.Documents.Models;
using Azure.Identity;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
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
{
NetworkAccessMode = KnowledgeSourceNetworkAccessMode.Public,
DisableImageVerbalization = false,
ChatCompletionModel = new KnowledgeBaseAzureOpenAIModel(azureOpenAIParameters: chatCompletionParams),
EmbeddingModel = new KnowledgeSourceAzureOpenAIVectorizer
{
AzureOpenAIParameters = embeddingParams
},
IngestionPermissionOptions = new List<KnowledgeSourceIngestionPermissionOption>
{
KnowledgeSourceIngestionPermissionOption.UserIds,
KnowledgeSourceIngestionPermissionOption.GroupIds
}
};
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.");
Справочник:SearchIndexClient, AzureBlobKnowledgeSource
# Create a blob knowledge source
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import AzureBlobKnowledgeSource, AzureBlobKnowledgeSourceParameters, KnowledgeBaseAzureOpenAIModel, AzureOpenAIVectorizerParameters, KnowledgeSourceAzureOpenAIVectorizer, KnowledgeSourceContentExtractionMode, KnowledgeSourceIngestionParameters
from azure.search.documents.knowledgebases.models import KnowledgeSourceNetworkAccessMode
index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())
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(
network_access_mode = KnowledgeSourceNetworkAccessMode.PUBLIC,
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>",
)
),
embedding_model = KnowledgeSourceAzureOpenAIVectorizer(
azure_open_ai_parameters=AzureOpenAIVectorizerParameters(
resource_url = "<aoai-endpoint>",
deployment_name = "<aoai-embedding-deployment>",
model_name = "<aoai-embedding-model>",
)
),
content_extraction_mode = KnowledgeSourceContentExtractionMode.MINIMAL,
ingestion_schedule = None,
ingestion_permission_options = ["user_ids", "group_ids"]
)
)
)
index_client.create_or_update_knowledge_source(knowledge_source)
print(f"Knowledge source '{knowledge_source.name}' created or updated successfully.")
Reference:SearchIndexClient
### Create a blob knowledge source
PUT {{search-endpoint}}/knowledgesources/my-blob-ks?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
Content-Type: application/json
{
"name": "my-blob-ks",
"kind": "azureBlob",
"description": "This knowledge source pulls from a blob storage container.",
"encryptionKey": null,
"azureBlobParameters": {
"connectionString": "ResourceId=<storage-resource-id>",
"containerName": "<blob-container-name>",
"folderPath": null,
"isADLSGen2": false,
"ingestionParameters": {
"networkAccessMode": "public",
"identity": null,
"disableImageVerbalization": null,
"chatCompletionModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{aoai-endpoint}}",
"deploymentId": "{{aoai-gpt-deployment}}",
"modelName": "{{aoai-gpt-model}}"
}
},
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{aoai-endpoint}}",
"deploymentId": "{{aoai-embedding-deployment}}",
"modelName": "{{aoai-embedding-model}}"
}
},
"contentExtractionMode": "minimal",
"ingestionSchedule": null,
"ingestionPermissionOptions": ["userIds", "groupIds"]
}
}
}
Справочник:Источники знаний — создание или обновление
Примечание
Чтобы обеспечить применение разрешений на уровне документов с помощью ingestionPermissionOptions, используйте версию API 2026-08-01-preview. Версия API 2026-04-01 не поддерживает эту функцию.
Ограничение приема в частную сеть (предварительная версия)
Начиная с версии API 2026-08-01-preview, networkAccessMode управляет сетевой средой, в которой выполняется созданный индексатор для источника знаний BLOB-объектов. Этот параметр влияет только на загрузку данных и не изменяет запросы или ответы при извлечении из базы знаний.
networkAccessMode по умолчанию имеет значение public, которое сохраняет существующее поведение общедоступной сети. Когда networkAccessMode имеет значение private, созданный индексатор выполняется в частной среде выполнения. Использует утверждённые общие приватные ссылки для доступа к подключению к источнику данных Хранилище BLOB-объектов Azure или ADLS Gen2, а также к поддерживаемым зависимостям Azure, таким как модели Azure OpenAI и ресурсы Microsoft Foundry.
Чтобы настроить и проверить доступ к частной сети, выполните следующее:
Выполните необходимые условия для частной сети.
Задайте значение
networkAccessModeprivateв запросе на создание источника знаний. Это свойство можно задать только во время создания. Чтобы изменить его позже, удалите и повторно создайте источник знаний.Создание может завершиться ошибкой, если ценовая категория службы или среда выполнения не поддерживает частное выполнение либо если не существует необходимой общей частной ссылки.
Убедитесь, что созданный индексатор
executionEnvironmentимеет значениеprivate.Убедитесь, что каждая требуемая общая частная ссылка одобрена и указывает на правильный зависимый ресурс. Само по себе успешное создание не подтверждает одобрение ссылки или таргетинг.
Опрашивайте состояние источника знаний, пока
lastSynchronizationState.endTimeне получит значение. Убедитесь, чтоitemsUpdatesFailedимеет значение0, а затем проверьте исходное содержимое для конкретного соединителя. Синхронизация завершается ошибкой, если зависимость недоступна.
Используйте автоматические анализаторы для каждого языка (предварительная версия)
Начиная с версии API 2026-08-01-preview, для BLOB-объектов, индексированных источников знаний OneLake и индексированных источников знаний SharePoint доступны автоматические анализаторы для отдельных языков. Если этот параметр включен, Поиск с использованием ИИ Azure обнаруживает язык каждого исходного документа и автоматически применяет соответствующий анализатор языка Microsoft. Вы не указываете анализатор в определении источника знаний или запросе.
Чтобы включить автоматические анализаторы для каждого языка, установите для contentExtractionMode значение minimal и настройте ingestionParameters.aiServices в определении источника знаний.
Для проверки подлинности без ключа опустите aiServices.apiKey и назначьте роль пользователя Cognitive Services в ресурсе Microsoft Foundry управляемому удостоверению службы поиска. Для аутентификации с использованием ключа задайте для aiServices.apiKey значение допустимого ключа для ресурса Foundry.
Поддерживаются следующие языки:
- Английский
- Japanese
- французский;
- испанский;
- немецкий;
- голландский;
- Italian
- Бразильский португальский
- Европейский португальский
- Упрощенный китайский
- Традиционный китайский
- Корейский
Для многоязычного содержимого Поиск с использованием ИИ Azure выбирает анализатор на основе преобладающего обнаруженного языка. Он использует стандартный анализатор, если язык не поддерживается или не определен.
При включении автоматических анализаторов на язык Поиск с использованием ИИ Azure добавляет поля содержимого для каждого поддерживаемого языка в схему созданного индекса, независимо от того, содержат ли данные документы на этих языках. Во время приема документы направляются в соответствующее поле для конкретного языка на основе обнаруженного языка.
Неиспользуемые языковые поля не содержат индексированного содержимого и имеют минимальное влияние на хранилище, но они остаются частью схемы индекса и учитываются в направлении ограничения поля индекса. При планировании структуры индекса, количества полей и требований к хранилищу следует учитывать дополнительные поля. Дополнительные сведения см. в разделе "Ограничения индекса " и "Оценка емкости" службы поиска и управление ими.
Определение языка тарифицируется после исчерпания бесплатного лимита на обогащение с помощью ИИ. Дополнительные сведения см. в разделе "Бесплатные обогащения".
Проверка состояния приема
Выполните следующий код, чтобы отслеживать процесс приема и состояние системы, включая тип источника знаний и подробные ошибки индексирования для источников знаний, которые формируют индексаторный конвейер и заполняют индекс поиска.
using Azure.Search.Documents.Indexes;
using System.Text.Json;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));
// Get knowledge source ingestion 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);
Reference:SearchIndexClient
# Check knowledge source ingestion status
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
import json
index_client = SearchIndexClient(endpoint="search_url", credential=AzureKeyCredential("api_key"))
status = index_client.get_knowledge_source_status("knowledge_source_name")
print(json.dumps(status.as_dict(), indent=2))
Reference:SearchIndexClient
### Check knowledge source ingestion status
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}/status?api-version={{api-version}}
Authorization: Bearer {{token}}
Content-Type: application/json
Референс:Базы знаний — текущий статус
Ответ на запрос, который включает параметры загрузки и активно осуществляет прием содержимого, может выглядеть следующим образом.
{
"kind": "azureBlob",
"synchronizationStatus": "active",
"synchronizationInterval": "1d",
"currentSynchronizationState": {
"startTime": "2026-04-10T19:30:00Z",
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
"errors": [
{
"key": "Item id 1",
"docURL": "https://contoso.blob.core.windows.net/contracts/2024/Q4/doc-00023.csv",
"statusCode": 400,
"componentName": "DocumentExtraction.AzureBlob.MyDataSource",
"errorMessage": "Could not read the value of column 'foo' at index '0'.",
"details": "The file could not be parsed.",
"documentationLink": "https://go.microsoft.com/fwlink/?linkid=2049388"
}
]
},
"lastSynchronizationState": {
"status": "partialSuccess",
"startTime": "2026-04-09T19:30:00Z",
"endTime": "2026-04-09T19:40:01Z",
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
"errors": null
},
"statistics": {
"totalSynchronizations": 25,
"averageSynchronizationDuration": "00:15:20",
"averageItemsProcessedPerSynchronization": 500
}
}
Примечание
Свойства kind и currentSynchronizationState.errors[] массив с сведениями об ошибке на уровне документа доступны начиная с версии API 2026-04-01. Для более ранних версий API эти поля не возвращаются. Поле lastSynchronizationState.status также новое в 2026-04-01.
Просмотр созданных объектов
При создании этого источника знаний Поиск с использованием ИИ Azure автоматически создает источник данных, набор навыков, индексатор и индекс. Ответ на создание перечисляет каждый объект в разделе createdResources.
Эти объекты создаются в соответствии с фиксированным шаблоном, и их имена основаны на имени источника знаний. Нельзя изменить имена объектов. Избегайте непосредственного редактирования этих объектов, так как изменения могут привести к ошибкам или несовместимости, которые нарушают конвейер индексатора.
Для проверки создания объектов можно использовать портал Azure. Рабочий процесс:
Проверьте индексатор для сообщений об успешном выполнении или сбое. Ошибки подключения или квотирования отображаются в этом разделе.
Проверьте источник данных, чтобы проверить подключение к хранилищу данных. Подключение использует либо строку подключения, либо управляемый идентификатор, в зависимости от того, как вы настроили источник знаний.
Проверьте набор навыков, чтобы увидеть, как ваш контент разбивается на фрагменты и при необходимости векторизуется.
Проверьте индекс, чтобы увидеть, как ваше содержимое индексируется и предоставляется для извлечения, включая поля, которые доступны для поиска и фильтрации, а также поля, в которых хранятся векторы для поиска по схожести. Используйте обозреватель поиска для выполнения запросов к созданному индексу.
Назначение базе знаний
Если вы удовлетворены источником знаний, добавьте его в базу знаний.
Запрос к базе знаний
После настройки базы знаний вызовите действие извлечения или конечную точку MCP для запроса источника знаний. Выберите конфигурацию, соответствующую вашему сценарию.
Принудительное применение разрешений на уровне документа (предварительная версия)
Чтобы применить разрешения на уровне документа, задайте ingestionPermissionOptions при создании этого источника знаний и добавьте маркер доступа пользователя в запрос на получение. Дополнительные сведения см. в разделе "Принудительное применение разрешений во время запроса (предварительная версия)".
Отображать изображения, встроенные в документ (предварительная версия)
Чтобы изображения, встроенные в документы (например, схемы или сканы), отображались в ответах, сформированных с помощью синтеза ответов, настройте assetStore для этого источника знаний, а затем включите отдачу изображений в базе знаний. Показ изображений не поддерживается, если настроен параметр 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}"); }Reference:SearchIndexClient
Пример ответа может выглядеть следующим образом:
{ "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)", "value": [ { "name": "my-kb" }, { "name": "my-kb-2" } ] }Получите отдельное определение базы знаний для проверки ссылок на источники знаний.
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);Reference:SearchIndexClient
Пример ответа может выглядеть следующим образом:
{ "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.");Reference:SearchIndexClient
Удалите источник знаний.
await indexClient.DeleteKnowledgeSourceAsync(knowledgeSourceName); System.Console.WriteLine($"Knowledge source '{knowledgeSourceName}' deleted successfully.");Reference:SearchIndexClient
Получите список всех баз знаний в службе поиска.
# Get knowledge bases from azure.core.credentials import AzureKeyCredential from azure.search.documents.indexes import SearchIndexClient index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key")) print("Knowledge Bases:") for kb in index_client.list_knowledge_bases(): print(f" - {kb.name}")Reference:SearchIndexClient
Пример ответа может выглядеть следующим образом:
{ "@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 from azure.core.credentials import AzureKeyCredential from azure.search.documents.indexes import SearchIndexClient index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key")) kb = index_client.get_knowledge_base("knowledge_base_name") print(kb)Reference:SearchIndexClient
Пример ответа может выглядеть следующим образом:
{ "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.")Reference:SearchIndexClient
Удалите источник знаний.
# 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.")Reference:SearchIndexClient
Получите список всех баз знаний в службе поиска.
### Get knowledge bases GET {{search-url}}/knowledgebases?api-version={{api-version}}&$select=name Authorization: Bearer {{token}}Справочник:Базы знаний — список
Пример ответа может выглядеть следующим образом:
{ "@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-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}} Authorization: Bearer {{token}}Справочник:Базы знаний — получение
Пример ответа может выглядеть следующим образом:
{ "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-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}} Authorization: Bearer {{token}}Справочник:Базы знаний — удаление
Удалите источник знаний.
### Delete a knowledge source DELETE {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}} Authorization: Bearer {{token}}Справочник:Источники знаний — удаление