Поделиться через


Создание индексированного источника знаний SharePoint

Замечание

Эта функция сейчас доступна в общедоступной предварительной версии. Этот предварительный просмотр предоставляется без соглашения об уровне обслуживания и не предназначается для производственных рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Для получения дополнительной информации см. Дополнительные условия использования для предварительных версий Microsoft Azure.

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

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

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

Предпосылки

Проверка существующих источников знаний

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

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

// 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 является примером ответа для индексированного источника знаний 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",
          "apiKey": "<redacted>",
          "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;

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 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.");

Свойства, относящиеся к источнику

Для создания индексированного источника знаний SharePoint можно передать следующие свойства.

Имя Description Тип Возможно изменение Обязательно
Name Имя источника знаний, которое должно быть уникальным в коллекции источников знаний и следуйте рекомендациям по именованию объектов в службе "Поиск ИИ Azure". String нет Да
Description Описание источника знаний. String Да нет
EncryptionKey Управляемый клиентом ключ для шифрования конфиденциальной информации как в источнике знаний, так и в созданных объектах. Object Да нет
IndexedSharePointKnowledgeSourceParameters Параметры, характерные для индексированных источников знаний SharePoint: connectionString, containerNameи query. Object нет нет
connectionString Строка подключения к сайту SharePoint. Дополнительные сведения см. в разделе "Синтаксис строки подключения". String Да Да
containerName Доступ к библиотеке SharePoint. Используется defaultSiteLibrary для индексирования содержимого из библиотеки документов по умолчанию сайта или allSiteLibraries индексирования содержимого из каждой библиотеки документов на сайте. Игнорировать useQuery сейчас. String нет Да
query Игнорировать пока. String Да нет

свойства ingestion_parameters

Только для индексированных источников знаний можно передать следующие 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 Content Understanding in Foundry Tools. Для этого параметра требуется ContentExtractionMode задать значение standard. Object api_key Только редактируется Да
IngestionSchedule Добавляет сведения о планировании в созданный индексатор. Вы также можете добавить расписание позже для автоматизации обновления данных. Object Да нет
IngestionPermissionOptions Разрешения уровня документа для приема из выборов источников знаний: ADLS 2-го поколения или индексированных SharePoint. При указании user_idsили group_idsrbac_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 
  } 
} 

Просмотр созданных объектов

При создании индексированного источника знаний SharePoint служба поиска также создает индексатор, индекс, набор навыков и источник данных. Не рекомендуется изменять эти объекты, так как при возникновении ошибки или несовместимости конвейер может нарушиться.

После создания источника знаний ответ выводит список созданных объектов. Эти объекты создаются в соответствии с фиксированным шаблоном, а их имена основаны на имени источника знаний. Нельзя изменить имена объектов.

Мы рекомендуем использовать портал Azure для проверки создания выходных данных. Рабочий процесс:

  1. Проверьте индексатор для сообщений об успешном выполнении или сбое. Ошибки подключения или квоты отображаются здесь.
  2. Проверьте индекс содержимого, доступного для поиска. Используйте обозреватель поиска для выполнения запросов.
  3. Проверьте функционал, чтобы узнать, как содержимое разбивается на части и опционально преобразовано в векторы.
  4. Проверьте источник данных для получения сведений о подключении. В нашем примере используются ключи API для простоты, но вы можете использовать идентификатор Microsoft Entra для проверки подлинности и управления доступом на основе ролей для авторизации.

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

Если вы удовлетворены источником знаний, перейдите к следующему шагу: укажите источник знаний в базе знаний.

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

После настройки базы знаний используйте действие извлечения для запроса источника знаний.

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

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

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

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

  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}");
    }
    

    Пример ответа может выглядеть следующим образом:

     Knowledge Bases:
       - earth-knowledge-base
       - hotels-sample-knowledge-base
       - my-demo-knowledge-base
    
  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);
    

    Пример ответа может выглядеть следующим образом:

     {
       "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.");
    
  4. Удалите источник знаний.

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

Замечание

Эта функция сейчас доступна в общедоступной предварительной версии. Этот предварительный просмотр предоставляется без соглашения об уровне обслуживания и не предназначается для производственных рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Для получения дополнительной информации см. Дополнительные условия использования для предварительных версий Microsoft Azure.

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

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

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

Предпосылки

Проверка существующих источников знаний

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

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

# 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 является примером ответа для индексированного источника знаний 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",
          "apiKey": "<redacted>",
          "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 indexed SharePoint knowledge source
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import IndexedSharePointKnowledgeSource, IndexedSharePointKnowledgeSourceParameters, KnowledgeBaseAzureOpenAIModel, AzureOpenAIVectorizerParameters, KnowledgeSourceAzureOpenAIVectorizer, KnowledgeSourceContentExtractionMode, KnowledgeSourceIngestionParameters

index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))

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(
            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.")

Свойства, относящиеся к источнику

Для создания индексированного источника знаний SharePoint можно передать следующие свойства.

Имя Description Тип Возможно изменение Обязательно
name Имя источника знаний, которое должно быть уникальным в коллекции источников знаний и следуйте рекомендациям по именованию объектов в службе "Поиск ИИ Azure". String нет Да
description Описание источника знаний. String Да нет
encryption_key Управляемый клиентом ключ для шифрования конфиденциальной информации как в источнике знаний, так и в созданных объектах. Object Да нет
indexed_share_point_parameters Параметры, характерные для индексированных источников знаний SharePoint: connection_string, container_nameи query. Object нет нет
connection_string Строка подключения к сайту SharePoint. Дополнительные сведения см. в разделе "Синтаксис строки подключения". String Да Да
container_name Доступ к библиотеке SharePoint. Используется defaultSiteLibrary для индексирования содержимого из библиотеки документов по умолчанию сайта или allSiteLibraries индексирования содержимого из каждой библиотеки документов на сайте. Игнорировать useQuery сейчас. String нет Да
query Игнорировать пока. String Да нет

свойства ingestion_parameters

Только для индексированных источников знаний можно передать следующие 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 Content Understanding in Foundry Tools. Для этого параметра требуется content_extraction_mode задать значение standard. Object api_key Только редактируется Да
asset_store Контейнер BLOB-объектов для хранения извлеченных образов. Для этого параметра требуется content_extraction_mode задать значение standard. Object нет нет
ingestion_schedule Добавляет сведения о планировании в созданный индексатор. Вы также можете добавить расписание позже для автоматизации обновления данных. Object Да нет
ingestion_permission_options Разрешения уровня документа для приема из выборов источников знаний: ADLS 2-го поколения или индексированных SharePoint. При указании user_idsили group_idsrbac_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 
  } 
} 

Просмотр созданных объектов

При создании индексированного источника знаний SharePoint служба поиска также создает индексатор, индекс, набор навыков и источник данных. Не рекомендуется изменять эти объекты, так как при возникновении ошибки или несовместимости конвейер может нарушиться.

После создания источника знаний ответ выводит список созданных объектов. Эти объекты создаются в соответствии с фиксированным шаблоном, а их имена основаны на имени источника знаний. Нельзя изменить имена объектов.

Мы рекомендуем использовать портал Azure для проверки создания выходных данных. Рабочий процесс:

  1. Проверьте индексатор для сообщений об успешном выполнении или сбое. Ошибки подключения или квоты отображаются здесь.
  2. Проверьте индекс содержимого, доступного для поиска. Используйте обозреватель поиска для выполнения запросов.
  3. Проверьте функционал, чтобы узнать, как содержимое разбивается на части и опционально преобразовано в векторы.
  4. Проверьте источник данных для получения сведений о подключении. В нашем примере используются ключи API для простоты, но вы можете использовать идентификатор Microsoft Entra для проверки подлинности и управления доступом на основе ролей для авторизации.

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

Если вы удовлетворены источником знаний, перейдите к следующему шагу: укажите источник знаний в базе знаний.

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

После настройки базы знаний используйте действие извлечения для запроса источника знаний.

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

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

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

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

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

    # 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"
         }
         ]
     }
    
  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"
       }
     }
    
  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.")
    
  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.")
    

Замечание

Эта функция сейчас доступна в общедоступной предварительной версии. Этот предварительный просмотр предоставляется без соглашения об уровне обслуживания и не предназначается для производственных рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Для получения дополнительной информации см. Дополнительные условия использования для предварительных версий Microsoft Azure.

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

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

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

Предпосылки

Проверка существующих источников знаний

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

Используйте 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-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",
          "apiKey": "<redacted>",
          "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
}

Замечание

Конфиденциальная информация редактируется. Созданные ресурсы отображаются в конце ответа.

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

Используйте источники знаний. Создание или обновление (REST API) для создания индексированного источника знаний SharePoint.

POST {{search-url}}/knowledgesources/my-indexed-sharepoint-ks?api-version=2025-11-01-preview
api-key: {{api-key}}
Content-Type: application/json

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

Свойства, относящиеся к источнику

Для создания индексированного источника знаний SharePoint можно передать следующие свойства.

Имя Description Тип Возможно изменение Обязательно
name Имя источника знаний, которое должно быть уникальным в коллекции источников знаний и следуйте рекомендациям по именованию объектов в службе "Поиск ИИ Azure". String нет Да
kind Тип источника знаний, который в indexedSharePoint данном случае. String нет Да
description Описание источника знаний. String Да нет
encryptionKey Управляемый клиентом ключ для шифрования конфиденциальной информации как в источнике знаний, так и в созданных объектах. Object Да нет
indexedSharePointParameters Параметры, характерные для индексированных источников знаний SharePoint: connectionString, containerNameи query. Object нет Да
connectionString Строка подключения к сайту SharePoint. Дополнительные сведения см. в разделе "Синтаксис строки подключения". String Да нет
container_name Доступ к библиотеке SharePoint. Используется defaultSiteLibrary для индексирования содержимого из библиотеки документов по умолчанию сайта или allSiteLibraries индексирования содержимого из каждой библиотеки документов на сайте. Игнорировать useQuery сейчас. String нет Да
query Игнорировать пока. String Да нет

свойства 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 Content Understanding in Foundry Tools. Для этого параметра требуется contentExtractionMode задать значение standard. Object apiKey Только редактируется Да
assetStore Контейнер BLOB-объектов для хранения извлеченных образов. Для этого параметра требуется contentExtractionMode задать значение standard. Object нет нет
ingestionSchedule Добавляет сведения о планировании в созданный индексатор. Вы также можете добавить расписание позже для автоматизации обновления данных. Object Да нет
ingestionPermissionOptions Разрешения уровня документа для приема из выборов источников знаний: ADLS 2-го поколения или индексированных SharePoint. При указании userIdsили groupIdsrbacScopeв созданном индексаторе 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 
  } 
} 

Просмотр созданных объектов

При создании индексированного источника знаний SharePoint служба поиска также создает индексатор, индекс, набор навыков и источник данных. Не рекомендуется изменять эти объекты, так как при возникновении ошибки или несовместимости конвейер может нарушиться.

После создания источника знаний ответ выводит список созданных объектов. Эти объекты создаются в соответствии с фиксированным шаблоном, а их имена основаны на имени источника знаний. Нельзя изменить имена объектов.

Мы рекомендуем использовать портал Azure для проверки создания выходных данных. Рабочий процесс:

  1. Проверьте индексатор для сообщений об успешном выполнении или сбое. Ошибки подключения или квоты отображаются здесь.
  2. Проверьте индекс содержимого, доступного для поиска. Используйте обозреватель поиска для выполнения запросов.
  3. Проверьте функционал, чтобы узнать, как содержимое разбивается на части и опционально преобразовано в векторы.
  4. Проверьте источник данных для получения сведений о подключении. В нашем примере используются ключи API для простоты, но вы можете использовать идентификатор Microsoft Entra для проверки подлинности и управления доступом на основе ролей для авторизации.

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

Если вы удовлетворены источником знаний, перейдите к следующему шагу: укажите источник знаний в базе знаний.

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

После настройки базы знаний используйте действие извлечения для запроса источника знаний.

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

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

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

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

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

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

    ### Delete a knowledge base
    DELETE {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}?api-version=2025-11-01-preview
    api-key: {{api-key}}
    
  4. Удалите источник знаний.

    ### Delete a knowledge source
    DELETE {{search-endpoint}}/knowledgesources/{{knowledge-source-name}}?api-version=2025-11-01-preview
    api-key: {{api-key}}