Создание индексированного источника знаний SharePoint (предварительная версия)

Примечание

Поиск с использованием ИИ Azure доступна через портал Azure, REST API и Azure SDKs. Он также лежит в основе Foundry IQ — управляемого слоя знаний, который преобразует корпоративный контент в многократно используемые базы знаний с учетом разрешений доступа для агентов на портале Microsoft Foundry.

Important

Функции, возможности или свойства, помеченные (предварительная версия), не охватываются соглашением об уровне обслуживания, не рекомендуются для рабочих нагрузок и могут изменяться или ограничиваться до того, как они становятся общедоступными. Условия предварительной версии Поиск с использованием ИИ Azure применяются ко всем функциям предварительной версии, независимо от того, является ли он автономным или частью общедоступной функции.

Индексированный источник знаний SharePoint (предварительная версия) загружает содержимое SharePoint в агентный конвейер извлечения в Поиск с использованием ИИ Azure. Источники знаний создаются независимо, ссылаются в базе знаний и используются в качестве базирования данных при запросе базы знаний во время выполнения.

При создании индексированного источника знаний SharePoint необходимо указать SharePoint строка подключения, модели и свойства для автоматического создания следующих объектов Поиск с использованием ИИ Azure:

  • Источник данных, который указывает на сайты SharePoint и использует строку подключения без изменений. Созданный источник данных следует правилам индексатора TenantIdSharePoint.
  • Набор функций, который разбивает на части и при желании векторизует мультимодальный контент.
  • Индекс, который хранит улучшенное содержимое и соответствует критериям агентного извлечения.
  • Индексатор, использующий предыдущие объекты для управления конвейером индексирования и обогащения.

Созданный индексатор соответствует SharePoint в индексаторе Microsoft 365, необходимые условия, поддерживаемые форматы документов и ограничения также применяются к индексируемым источникам знаний SharePoint. Дополнительные сведения см. в документации по индексатору SharePoint и ограничениям индексатора. Если созданный набор навыков вызывает внешнюю службу, то также применяются ограничения на входные данные этого навыка и ограничения этой службы.

Поддержка использования

портал Azure портал Microsoft Foundry Пакет SDK для .NET пакет SDK Python SDK для Java пакет SDK JavaScript REST API
✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

Необходимые условия

  • Последний пакет предварительной версии Azure.Search.Documents: dotnet add package Azure.Search.Documents --prerelease

  • Для аутентификации без использования ключа пакет Azure.Identity: dotnet add package Azure.Identity

  • Последний пакет предварительной версии azure-search-documents: pip install --pre azure-search-documents

  • Для аутентификации без использования ключа пакет azure-identity: pip install azure-identity

  • 2026-08-01-preview — версия REST API службы поиска.

  • Для проверки подлинности без ключа добавьте маркер 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 является примером ответа для индексированного SharePoint источника знаний.

{
  "name": "my-indexed-sharepoint-ks",
  "kind": "indexedSharePoint",
  "description": "A sample indexed SharePoint knowledge source",
  "encryptionKey": null,
  "indexedSharePointParameters": {
    "connectionString": "<redacted>",
    "containerName": "defaultSiteLibrary",
    "query": null,
    "ingestionParameters": {
      "disableImageVerbalization": false,
      "ingestionPermissionOptions": [],
      "contentExtractionMode": "minimal",
      "identity": null,
      "embeddingModel": {
        "kind": "azureOpenAI",
        "azureOpenAIParameters": {
          "resourceUri": "<redacted>",
          "deploymentId": "text-embedding-3-large",
          "modelName": "text-embedding-3-large",
          "authIdentity": null
        }
      },
      "chatCompletionModel": null,
      "ingestionSchedule": null,
      "assetStore": null,
      "aiServices": null
    },
    "createdResources": {
      "datasource": "my-indexed-sharepoint-ks-datasource",
      "indexer": "my-indexed-sharepoint-ks-indexer",
      "skillset": "my-indexed-sharepoint-ks-skillset",
      "index": "my-indexed-sharepoint-ks-index"
    }
  },
  "indexedOneLakeParameters": null
}

Создание источника знаний

Выполните следующий код, чтобы создать индексированный источник знаний SharePoint.

// Create an IndexedSharePoint knowledge source
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.KnowledgeBases.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
    }
};

var sharePointParams = new IndexedSharePointKnowledgeSourceParameters(
    connectionString: sharePointConnectionString,
    containerName: "defaultSiteLibrary")
{
    IngestionParameters = ingestionParams
};

var knowledgeSource = new IndexedSharePointKnowledgeSource(
    name: "my-indexed-sharepoint-ks",
    indexedSharePointParameters: sharePointParams)
{
    Description = "A sample indexed SharePoint knowledge source."
};

await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);
Console.WriteLine($"Knowledge source '{knowledgeSource.Name}' created or updated successfully.");

Reference:SearchIndexClient, IndexedSharePointKnowledgeSource

# Create an indexed SharePoint knowledge source
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import IndexedSharePointKnowledgeSource, IndexedSharePointKnowledgeSourceParameters, KnowledgeBaseAzureOpenAIModel, AzureOpenAIVectorizerParameters, KnowledgeSourceContentExtractionMode
from azure.search.documents.knowledgebases.models import KnowledgeSourceIngestionParameters, KnowledgeSourceNetworkAccessMode, KnowledgeSourceAzureOpenAIVectorizer

index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())

knowledge_source = IndexedSharePointKnowledgeSource(
    name = "my-indexed-sharepoint-ks",
    description = "A sample indexed SharePoint knowledge source.",
    encryption_key = None,
    indexed_share_point_parameters = IndexedSharePointKnowledgeSourceParameters(
        connection_string = "connection_string",
        container_name = "defaultSiteLibrary",
        query = None,
        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 = None
        )
    )
)

index_client.create_or_update_knowledge_source(knowledge_source)
print(f"Knowledge source '{knowledge_source.name}' created or updated successfully.")

Reference:SearchIndexClient

### Create an indexed SharePoint knowledge source
PUT {{search-endpoint}}/knowledgesources/my-indexed-sharepoint-ks?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
Content-Type: application/json

{
    "name": "my-indexed-sharepoint-ks",
    "kind": "indexedSharePoint",
    "description": "A sample indexed SharePoint knowledge source.",
    "encryptionKey": null,
    "indexedSharePointParameters": {
        "connectionString": "{{sharepoint-federated-connection-string}}",
        "containerName": "defaultSiteLibrary",
        "query": null,
        "ingestionParameters": {
            "networkAccessMode": "public",
            "identity": null,
            "embeddingModel": {
                "kind": "azureOpenAI",
                "azureOpenAIParameters": {
                    "deploymentId": "text-embedding-3-large",
                    "modelName": "text-embedding-3-large",
                    "resourceUri": "{{aoai-endpoint}}"
                }
            },
            "chatCompletionModel": null,
            "disableImageVerbalization": false,
            "ingestionSchedule": null,
            "ingestionPermissionOptions": [],
            "contentExtractionMode": "minimal"
        }
    }
}

Справочник:Источники знаний — создание или обновление

Защитите зависимости Azure при приеме данных

Начиная с версии API 2026-08-01-preview, элемент networkAccessMode управляет сетевой средой, в которой выполняется сгенерированный индексатор для индексируемого источника знаний SharePoint. Этот параметр влияет только на загрузку данных и не изменяет запросы или ответы при извлечении из базы знаний.

networkAccessMode по умолчанию имеет значение public, которое сохраняет существующее поведение общедоступной сети. Когда networkAccessMode имеет значение private, созданный индексатор выполняется в частной среде выполнения. Он использует утверждённые общие приватные ссылки для доступа к поддерживаемым зависимостям Azure, таким как модели Azure OpenAI и ресурсы Microsoft Foundry.

Important

Для индексированных источников знаний SharePoint частный режим применяется только к поддерживаемым Azure зависимостям. SharePoint Online не является поддерживаемым целевым объектом общей частной ссылки, поэтому исходное подключение к SharePoint остается общедоступным.

Чтобы настроить и проверить частный доступ к поддерживаемым Azure зависимостям:

  1. Выполните необходимые условия для частной сети.

  2. Задайте значение networkAccessModeprivate в запросе на создание источника знаний. Это свойство можно задать только во время создания. Чтобы изменить его позже, удалите и повторно создайте источник знаний.

    Создание может завершиться ошибкой, если ценовая категория службы или среда выполнения не поддерживает частное выполнение либо если не существует необходимой общей частной ссылки.

  3. Убедитесь, что созданный индексатор executionEnvironment имеет значение private.

  4. Убедитесь, что каждая требуемая общая частная ссылка одобрена и указывает на правильный зависимый ресурс. Само по себе успешное создание не подтверждает одобрение ссылки или таргетинг.

  5. Опрашивайте состояние источника знаний, пока 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. Рабочий процесс:

  1. Проверьте индексатор для сообщений об успешном выполнении или сбое. Ошибки подключения или квотирования отображаются в этом разделе.

  2. Проверьте источник данных, чтобы проверить подключение к хранилищу данных. Подключение использует либо строку подключения, либо управляемый идентификатор, в зависимости от того, как вы настроили источник знаний.

  3. Проверьте набор навыков, чтобы увидеть, как ваш контент разбивается на фрагменты и при необходимости векторизуется.

  4. Проверьте индекс, чтобы увидеть, как ваше содержимое индексируется и предоставляется для извлечения, включая поля, которые доступны для поиска и фильтрации, а также поля, в которых хранятся векторы для поиска по схожести. Используйте обозреватель поиска для выполнения запросов к созданному индексу.

Назначение базе знаний

Если вы удовлетворены источником знаний, добавьте его в базу знаний.

Для любой базы знаний, указывающей индексированный источник знаний SharePoint, не забудьте установить includeReferenceSourceData на true. Этот шаг необходим для извлечения URL-адреса исходного документа в ссылку.

Запрос к базе знаний

После настройки базы знаний вызовите действие извлечения или конечную точку MCP для запроса источника знаний. Выберите конфигурацию, соответствующую вашему сценарию.

Принудительное применение разрешений на уровне документа

Чтобы применить разрешения на уровне документа, задайте ingestionPermissionOptions при создании этого источника знаний и добавьте маркер доступа пользователя в запрос на получение. Дополнительные сведения см. в разделе "Принудительное применение разрешений во время запроса (предварительная версия)".

Сведения о отсутствующих, непредвиденных или неудачных результатах из индексированного запроса разрешений SharePoint см. в разделе "Устранение неполадок SharePoint фильтрации разрешений".

Отображать встроенные в документ изображения

Чтобы изображения, встроенные в документы (например, схемы или сканы), отображались в ответах, сформированных с помощью синтеза ответов, настройте assetStore для этого источника знаний, а затем включите отдачу изображений в базе знаний. Показ изображений не поддерживается, если настроен параметр ingestionPermissionOptions. Дополнительные сведения см. в разделе Отображение изображений, внедренных в документ, при агентном поиске (предварительная версия).

Удаление источника знаний

Прежде чем удалить источник знаний, необходимо удалить любую базу знаний, которая ссылается на нее или обновить определение базы знаний, чтобы удалить ссылку. Для источников знаний, генерирующих индекс и конвейер индексатора, все созданные объекты также удаляются. Однако если вы использовали существующий индекс для создания источника знаний, индекс не удаляется.

Если вы пытаетесь удалить используемый источник знаний, действие завершается ошибкой и возвращает список затронутых баз знаний.

Удаление источника знаний:

  1. Получите список всех баз знаний в службе поиска.

    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"
         }
         ]
     }
    
  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
     }
    
  3. Удалите базу знаний или, если у вас несколько источников знаний, обновите базу знаний, чтобы удалить источник. В этом примере показано удаление.

    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

  4. Удалите источник знаний.

    await indexClient.DeleteKnowledgeSourceAsync(knowledgeSourceName);
    System.Console.WriteLine($"Knowledge source '{knowledgeSourceName}' deleted successfully.");
    

    Reference:SearchIndexClient

  1. Получите список всех баз знаний в службе поиска.

    # 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"
         }
         ]
     }
    
  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"
       }
     }
    
  3. Удалите базу знаний или, если у вас несколько источников знаний, обновите базу знаний, чтобы удалить источник. В этом примере показано удаление.

    # 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

  4. Удалите источник знаний.

    # 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

  1. Получите список всех баз знаний в службе поиска.

    ### 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"
         }
         ]
     }
    
  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"
       }
     }
    
  3. Удалите базу знаний или, если у вас несколько источников знаний, обновите базу знаний, чтобы удалить источник. В этом примере показано удаление.

    ### Delete a knowledge base
    DELETE {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}}
    Authorization: Bearer {{token}}
    

    Справочник:Базы знаний — удаление

  4. Удалите источник знаний.

    ### Delete a knowledge source
    DELETE {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}}
    Authorization: Bearer {{token}}
    

    Справочник:Источники знаний — удаление

Известные ошибки

Созданный SharePoint источник данных и индексатор используют то же Microsoft Entra поведение проверки и проверки подлинности клиента, что и непосредственно настроенные индексаторы SharePoint. Для сбоев, связанных с арендатором, просмотрите состояние и историю выполнения созданного индексатора, а затем выполните Invalid AAD tenantдействия по устранению проблемы.