Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Эта функция сейчас доступна в общедоступной предварительной версии. Этот предварительный просмотр предоставляется без соглашения об уровне обслуживания и не предназначается для производственных рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в разделе Supplemental Terms of Use for Microsoft Azure Previews.
Источник знаний remote SharePoint использует Copilot Retrieval API для запроса текстового содержимого непосредственно из SharePoint в Microsoft 365. Индекс поиска и строка подключения не требуются. Запрашивается только текстовое содержимое, а плата за использование взимается через Microsoft 365 и лицензию Copilot.
Чтобы ограничить сайты или ограничить поиск, задайте для выражения фильтра область по URL-адресам, диапазонам дат, типам файлов и другим метаданным. Удостоверение личности звонящего должно быть распознано как арендаторами Azure, так и Microsoft 365, так как механизм получения данных запрашивает SharePoint от имени пользователя.
Как и любой другой источник знаний, вы указываете удаленный источник знаний SharePoint в базе knowledge и используете результаты в качестве заземления данных, когда агент или чат-бот вызывает действие retrieve во время запроса.
Поддержка использования
| портал Azure | портал Microsoft Foundry | .NET SDK пакет | пакет SDK Python | Java SDK | пакет SDK JavaScript | REST API |
|---|---|---|---|---|---|---|
| ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Предпосылки
Поиск с использованием ИИ Azure в любом регионе, который предоставляет агентское извлечение. Необходимо включить семантику ранжирования.
SharePoint в клиенте Microsoft 365, который находится под тем же клиентом Microsoft Entra ID, что и Azure.
Лицензия Microsoft 365 Copilot для доступа во время запроса к содержимому SharePoint.
Разрешение на создание и использование объектов в Поиск с использованием ИИ 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 .
Ограничения
Следующие ограничения в API извлечения Copilot применяются к удаленным источникам знаний SharePoint.
Нет поддержки соединителей Copilot или содержимого OneDrive. Содержимое извлекается только из SharePoint сайтов.
Ограничение в 200 запросов на пользователя в час.
Ограничение символов запроса в 1500 символов.
Гибридные запросы поддерживаются только для следующих расширений файлов: .doc, .docx, .pptx, .pdf, .aspx и .one.
Многомодальное извлечение (нетекстовое содержимое, включая таблицы, изображения и диаграммы) не поддерживается.
Не более 25 результатов из запроса.
Результаты возвращаются API извлечения Copilot в неупорядоченном виде.
Недопустимые выражения фильтра языка запросов ключевых слов (KQL) игнорируются, и запрос продолжает выполняться без фильтра.
Проверка существующих источников знаний
Источник знаний — это объект верхнего уровня, который можно использовать повторно. Знание существующих источников знаний полезно для повторного использования или именования новых объектов.
Выполните следующий код, чтобы перечислить источники знаний по имени и типу.
// 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 является примером ответа для удаленного SharePoint источника знаний.
{
"name": "my-sharepoint-ks",
"kind": "remoteSharePoint",
"description": "A sample remote SharePoint knowledge source",
"encryptionKey": null,
"remoteSharePointParameters": {
"filterExpression": "filetype:docx",
"containerTypeId": null,
"resourceMetadata": [
"Author",
"Title"
]
}
}
Создание источника знаний
Выполните следующий код, чтобы создать удаленный источник знаний SharePoint.
// Create a remote SharePoint 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), credential);
var knowledgeSource = new RemoteSharePointKnowledgeSource(name: "my-remote-sharepoint-ks")
{
Description = "This knowledge source queries .docx files in a trusted Microsoft 365 tenant.",
RemoteSharePointParameters = new RemoteSharePointKnowledgeSourceParameters()
{
FilterExpression = "filetype:docx",
ResourceMetadata = { "Author", "Title" }
}
};
await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);
Console.WriteLine($"Knowledge source '{knowledgeSource.Name}' created or updated successfully.");
Выполните следующий код, чтобы создать удаленный источник знаний SharePoint.
# Create a remote SharePoint knowledge source
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import RemoteSharePointKnowledgeSource, RemoteSharePointKnowledgeSourceParameters
index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
knowledge_source = RemoteSharePointKnowledgeSource(
name = "my-remote-sharepoint-ks",
description= "This knowledge source queries .docx files in a trusted Microsoft 365 tenant.",
encryption_key = None,
remote_share_point_parameters = RemoteSharePointKnowledgeSourceParameters(
filter_expression = "filetype:docx",
resource_metadata = ["Author", "Title"],
container_type_id = None
)
)
index_client.create_or_update_knowledge_source(knowledge_source)
print(f"Knowledge source '{knowledge_source.name}' created or updated successfully.")
Используйте источники Knowledge — создание или обновление (REST API) для создания удаленного источника знаний SharePoint.
PUT {{search-url}}/knowledgesources/my-remote-sharepoint-ks?api-version=2025-11-01-preview
api-key: {{api-key}}
Content-Type: application/json
{
"name": "my-remote-sharepoint-ks",
"kind": "remoteSharePoint",
"description": "This knowledge source queries .docx files in a trusted Microsoft 365 tenant.",
"encryptionKey": null,
"remoteSharePointParameters": {
"filterExpression": "filetype:docx",
"resourceMetadata": [ "Author", "Title" ],
"containerTypeId": null
}
}
Свойства, относящиеся к источнику
Чтобы создать удаленный источник знаний SharePoint, можно передать следующие свойства.
| Имя | Description | Тип | Возможно изменение | Обязательно |
|---|---|---|---|---|
Name |
Имя источника знаний, которое должно быть уникальным в коллекции источников знаний и соответствовать рекомендациям по именованию для объектов в Поиск с использованием ИИ Azure. | String | нет | Да |
Description |
Описание источника знаний. | String | Да | нет |
EncryptionKey |
Управляемый клиентом ключ для шифрования конфиденциальной информации в источнике знаний. | Object | Да | нет |
RemoteSharePointParameters |
Параметры, относящиеся к удаленным источникам знаний SharePoint: FilterExpression, ResourceMetadata и ContainerTypeId. |
Object | нет | нет |
FilterExpression |
Выражение, написанное в SharePoint KQL, которое используется для указания сайтов и путей к содержимому. | String | Да | нет |
ResourceMetadata |
Массив стандартных полей метаданных: автор, имя файла, дата создания, тип контента и тип файла. | Массив | Да | нет |
ContainerTypeId |
Идентификатор контейнера для подключения SharePoint Embedded. Если не указано, используется SharePoint Online. | String | Да | нет |
| Имя | Description | Тип | Возможно изменение | Обязательно |
|---|---|---|---|---|
name |
Имя источника знаний, которое должно быть уникальным в коллекции источников знаний и соответствовать рекомендациям по именованию для объектов в Поиск с использованием ИИ Azure. | String | нет | Да |
description |
Описание источника знаний. | String | Да | нет |
encryption_key |
Управляемый клиентом ключ для шифрования конфиденциальной информации в источнике знаний. | Object | Да | нет |
remote_share_point_parameters |
Параметры, относящиеся к удаленным источникам знаний SharePoint: filter_expression, resource_metadata и container_type_id. |
Object | нет | нет |
filter_expression |
Выражение, написанное в SharePoint KQL, которое используется для указания сайтов и путей к содержимому. | String | Да | нет |
resource_metadata |
Массив стандартных полей метаданных: автор, имя файла, дата создания, тип контента и тип файла. | Массив | Да | нет |
container_type_id |
Идентификатор контейнера для подключения SharePoint Embedded. Если не указано, используется SharePoint Online. | String | Да | нет |
| Имя | Description | Тип | Возможно изменение | Обязательно |
|---|---|---|---|---|
name |
Имя источника знаний, которое должно быть уникальным в коллекции источников знаний и соответствовать рекомендациям по именованию для объектов в Поиск с использованием ИИ Azure. | String | нет | Да |
kind |
Тип источника знаний, в данном случае remoteSharePoint. |
String | нет | Да |
description |
Описание источника знаний. | String | Да | нет |
encryptionKey |
Управляемый клиентом ключ для шифрования конфиденциальной информации в источнике знаний. | Object | Да | нет |
remoteSharePointParameters |
Параметры, относящиеся к удаленным источникам знаний SharePoint: filterExpression, resourceMetadata и containerTypeId. |
Object | нет | нет |
filterExpression |
Выражение, написанное в SharePoint KQL, которое используется для указания сайтов и путей к содержимому. | String | Да | нет |
resourceMetadata |
Массив стандартных полей метаданных: автор, имя файла, дата создания, тип контента и тип файла. | Массив | Да | нет |
containerTypeId |
Идентификатор контейнера для подключения SharePoint Embedded. Если не указано, используется SharePoint Online. | String | Да | нет |
Примеры выражений фильтра
Не все свойства SharePoint поддерживаются в filterExpression. Список поддерживаемых свойств см. в справочнике по API. Сведения о свойствах, доступных для запроса, см. в разделе "Запросы".
Дополнительные сведения о фильтрах KQL см. в справочнике по синтаксису.
| Example | Выражение фильтра |
|---|---|
| Фильтрация по одному сайту по идентификатору | "filterExpression": "SiteID:\"00aa00aa-bb11-cc22-dd33-44ee44ee44ee\"" |
| Фильтрация по нескольким сайтам по идентификатору | "filterExpression": "SiteID:\"00aa00aa-bb11-cc22-dd33-44ee44ee44ee\" OR SiteID:\"11bb11bb-cc22-dd33-ee44-55ff55ff55ff\"" |
| Фильтрация по файлам по определенному пути | "filterExpression": "Path:\"https://my-demo.sharepoint.com/sites/mysite/Shared Documents/en/mydocs\"" |
| Фильтрация по определенному диапазону дат | "filterExpression": "LastModifiedTime >= 2024-07-22 AND LastModifiedTime <= 2025-01-08" |
| Фильтрация по файлам определенного типа файла | "filterExpression": "FileExtension:\"docx\" OR FileExtension:\"pdf\" OR FileExtension:\"pptx\"" |
| Фильтрация по файлам определенной метки защиты информации | "filterExpression": "InformationProtectionLabelId:\"f0ddcc93-d3c0-4993-b5cc-76b0a283e252\"" |
Назначение базе знаний
Если вы удовлетворены источником знаний, перейдите к следующему шагу: укажите источник знаний в базе знаний.
Запрос к базе знаний
После настройки базы знаний используйте действие retrieve для запроса содержимого SharePoint. Удаленные SharePoint имеют поведение, зависяющее от источника, для фильтрации во время запроса, формулировки запросов, полей ответа и принудительного применения разрешений.
Применение фильтра KQL во время запроса
Вы можете передать FilterExpressionAddOn в KnowledgeSourceParams при запросе на получение, чтобы применить фильтр KQL во время выполнения запроса. Если вы указываете FilterExpressionAddOn на запрос на получение, а FilterExpression на определение источника знаний, фильтры объединяются с помощью оператора И.
var retrievalRequest = new KnowledgeBaseRetrievalRequest();
retrievalRequest.Messages.Add(
new KnowledgeBaseMessage(
content: new[] {
new KnowledgeBaseMessageTextContent("contoso product planning")
}
) { Role = "user" }
);
retrievalRequest.KnowledgeSourceParams.Add(
new RemoteSharePointKnowledgeSourceParams("my-remote-sharepoint-ks")
{
FilterExpressionAddOn = "filetype:docx"
}
);
var result = await kbClient.RetrieveAsync(
retrievalRequest, xMsQuerySourceAuthorization: token
);
Вы можете передать filter_expression_add_on в knowledge_source_params при запросе на получение, чтобы применить фильтр KQL во время выполнения запроса. Если вы указываете filter_expression_add_on на запрос на получение, а filter_expression на определение источника знаний, фильтры объединяются с помощью оператора И.
from azure.search.documents.knowledgebases.models import (
KnowledgeBaseMessage,
KnowledgeBaseMessageTextContent,
KnowledgeBaseRetrievalRequest,
RemoteSharePointKnowledgeSourceParams,
)
request = KnowledgeBaseRetrievalRequest(
messages=[
KnowledgeBaseMessage(
role="user",
content=[
KnowledgeBaseMessageTextContent(
text="contoso product planning"
)
],
)
],
knowledge_source_params=[
RemoteSharePointKnowledgeSourceParams(
knowledge_source_name="my-remote-sharepoint-ks",
filter_expression_add_on="filetype:docx",
)
],
)
result = kb_client.retrieve(
retrieval_request=request,
x_ms_query_source_authorization=token,
)
Вы можете передать filterExpressionAddOn в knowledgeSourceParams при запросе на получение, чтобы применить фильтр KQL во время выполнения запроса. Если вы указываете filterExpressionAddOn на запрос на получение, а filterExpression на определение источника знаний, фильтры объединяются с помощью оператора И.
POST {{search-url}}/knowledgebases/{{knowledge-base-name}}/retrieve?api-version=2025-11-01-preview
Authorization: Bearer {{accessToken}}
Content-Type: application/json
x-ms-query-source-authorization: {{user-access-token}}
{
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "contoso product planning" }
]
}
],
"knowledgeSourceParams": [
{
"knowledgeSourceName": "my-remote-sharepoint-ks",
"kind": "remoteSharePoint",
"filterExpressionAddOn": "filetype:docx"
}
]
}
Написание эффективных запросов
Запросы, которые задают о самом содержимом, более эффективны, чем вопросы о расположении файла или о последнем обновлении файла. Например, "Где находится ключевой документ для Ignite 2024", может не возвращать результатов, так как само содержимое не раскрывает его расположение. Использование метаданных — более подходящий подход для запросов, связанных с расположением файлов или конкретными датами.
Запросы, которые задают о самом содержимом, более эффективны, чем вопросы о расположении файла или о последнем обновлении файла. Например, "Где находится ключевой документ для Ignite 2024", может не возвращать результатов, так как само содержимое не раскрывает его расположение. Использование метаданных — более подходящий подход для запросов, связанных с расположением файлов или конкретными датами.
Запросы, которые задают о самом содержимом, более эффективны, чем вопросы о расположении файла или о последнем обновлении файла. Например, "Где находится ключевой документ для Ignite 2024", может не возвращать результатов, так как само содержимое не раскрывает его расположение. Использование метаданных — более подходящий подход для запросов, связанных с расположением файлов или конкретными датами.
Более эффективный вопрос: "Что такое ключевой документ для Ignite 2024". Ответ включает синтезированный ответ, активность запросов и количество маркеров, а также URL-адрес и другие метаданные.
специфические для SharePoint поля ответа
Результаты удаленного SharePoint включают поля, которые не отображаются для других типов источников знаний, например resourceMetadata, webUrl и searchSensitivityLabelInfo.
{
"resourceMetadata": {
"Author": "Nuwan Amarathunga;Nurul Izzati",
"Title": "Ignite 2024 Keynote Address"
},
"rerankerScore": 2.489522,
"webUrl": "https://contoso-my.sharepoint.com/keynotes/Documents/Keynote-Ignite-2024.docx",
"searchSensitivityLabelInfo": {
"displayName": "Confidential\\Contoso Extended",
"sensitivityLabelId": "aaaaaaaa-0b0b-1c1c-2d2d-333333333333",
"tooltip": "Data is classified and protected.",
"priority": 5,
"color": "#FF8C00",
"isEncrypted": true
}
}
Принудительное применение разрешений во время запроса
Удаленные источники знаний SharePoint могут применять разрешения SharePoint во время запроса. Чтобы включить эту фильтрацию, добавьте маркер доступа конечного пользователя в запрос на получение. Поисковый движок передает токен в API Copilot для извлечения, который делает запрос к SharePoint и возвращает только контент, к которому у пользователя есть доступ. Разрешения SharePoint и этикетки конфиденциальности Microsoft Purview соблюдаются.
Так как удаленный SharePoint не использует индекс поиска, настройка разрешений на этапе приема данных не требуется. Маркер доступа является единственным требованием.
Инструкции по передаче маркера см. в разделе "Принудительное применение разрешений во время запроса".
Удаление источника знаний
Прежде чем удалить источник знаний, необходимо удалить любую базу знаний, которая ссылается на нее или обновить определение базы знаний, чтобы удалить ссылку. Для источников знаний, которые создают индекс и конвейер индексатора, все созданные объекты также удаляются. Однако если вы использовали существующий индекс для создания источника знаний, индекс не удаляется.
Если вы пытаетесь удалить используемый источник знаний, действие завершается ошибкой и возвращает список затронутых баз знаний.
Удаление источника знаний:
Получите список всех баз знаний в службе поиска.
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}}