Criar uma fonte de conhecimento de SharePoint indexada (versão prévia)

Nota

Pesquisa de IA do Azure  está disponível por meio do portal Azure, APIs REST e SDKs do Azure. Ele também sustenta o IQ do Foundry, a camada de conhecimento gerenciado que transforma o conteúdo da empresa em bases de conhecimento reutilizáveis e com reconhecimento de permissão para agentes no portal do Microsoft Foundry.

Importante

Recursos, funcionalidades ou propriedades marcados como (versão prévia) não são cobertos por um contrato de nível de serviço (SLA), não são recomendados para cargas de trabalho de produção e podem mudar ou ser restringidos antes da disponibilidade geral. Os termos de visualização do Pesquisa de IA do Azure  se aplicam a toda funcionalidade em visualização, seja autônoma ou parte de um recurso de disponibilidade geral.

Uma fonte de conhecimento do SharePoint indexada (versão prévia) ingere conteúdo do SharePoint em um pipeline de recuperação agêntica no Pesquisa de IA do Azure . As fontes de conhecimento são criadas de forma independente, referenciadas em uma base de dados de conhecimento e usadas como dados de aterramento quando a base de dados de conhecimento é consultada em runtime.

Ao criar uma fonte de conhecimento SharePoint indexada, especifique um SharePoint cadeia de conexão, modelos e propriedades para gerar automaticamente os seguintes objetos Pesquisa de IA do Azure :

  • Uma fonte de dados que aponta para sites do SharePoint e usa a cadeia de conexão inalterada. A fonte de dados gerada segue as regras do TenantIdindexador de SharePoint.
  • Um conjunto de habilidades que agrupa e, opcionalmente, vetoriza conteúdo multimodal.
  • Um índice que armazena conteúdo enriquecido e atende aos critérios para recuperação por agente.
  • Um indexador que usa os objetos anteriores para conduzir o pipeline de indexação e enriquecimento.

O indexador gerado está em conformidade com o SharePoint no indexador Microsoft 365, cujos pré-requisitos, formatos de documento com suporte e limitações também se aplicam a fontes de conhecimento SharePoint indexadas. Para obter mais informações, consulte a documentação do indexador SharePoint e os limites do indexador. Se o conjunto de habilidades gerado chamar um serviço externo, os limites de entrada e serviço dessa habilidade também se aplicarão.

Suporte ao uso

Portal do Azure Portal Microsoft Foundry SDK do .NET SDK Python SDK do Java SDK JavaScript REST API
✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

Pré-requisitos

  • Um serviço de Pesquisa de IA do Azure em qualquer região que forneça recuperação agêntica.

  • Conclusão dos pré-requisitos do indexador SharePoint.

  • Conclusão das seguintes etapas de configuração do indexador SharePoint:

  • Se contentExtractionMode for standard, use um recurso do Microsoft Foundry em uma região com suporte à Compreensão de Conteúdo no Foundry Tools e o ponto de extremidade https://<resource-name>.services.ai.azure.com. Implante um modelo de inserção e implante um modelo de chat multimodal se você habilitar a verbalização de imagem.

  • Permissão para criar fontes de conhecimento. Configure a autenticação sem chave com as funções Colaborador do Serviço de Pesquisa e Colaborador de Dados de Índice de Pesquisa atribuídas à sua conta de usuário (recomendado) ou use uma chave de API de administrador.

  • Se a fonte de conhecimento especificar um modelo do OpenAI do Azure para incorporações ou verbalização de imagem, o serviço Pesquisa deve ter uma identidade gerenciada com permissões de Usuário dos Serviços Cognitivos no recurso do Microsoft Foundry.

  • Se você definir networkAccessMode como private, conclua os seguintes requisitos:

    • Use um serviço de pesquisa S2, S3, L1 ou L2.

    • Mantenha a cadeia de conexão do SharePoint, o aplicativo do Microsoft Entra e as permissões do SharePoint descritos nos pré-requisitos anteriores. SharePoint Online não é um destino de link privado compartilhado com suporte, portanto, o modo privado não torna essa conexão de origem privada.

    • Para cada ponto de extremidade de modelo protegido, habilite uma identidade gerenciada no serviço de pesquisa, conceda a ele a função de Usuário dos Serviços Cognitivos no recurso e crie e aprove um link privado compartilhado. Use a ID do grupo openai_account para pontos de extremidade do OpenAI do Azure e foundry_account para pontos de extremidade de recurso do Foundry.

  • O pacote de versão prévia Azure.Search.Documents mais recente: dotnet add package Azure.Search.Documents --prerelease

  • Para autenticação sem chave, o Azure.Identity pacote: dotnet add package Azure.Identity

  • O pacote de versão prévia azure-search-documents mais recente: pip install --pre azure-search-documents

  • Para autenticação sem chave, o azure-identity pacote: pip install azure-identity

Verificar se há fontes de conhecimento existentes

Uma fonte de conhecimento é um objeto reutilizável de nível superior. Saber sobre fontes de conhecimento existentes é útil para reutilizar ou nomear novos objetos.

Execute o código a seguir para listar fontes de conhecimento por nome e tipo.

// 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}}

Reference:Knowledge Sources – List

Você também pode retornar uma única fonte de conhecimento por nome para revisar sua definição de 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:Fontes de Conhecimento – Obter

O JSON a seguir é uma resposta de exemplo para uma fonte de conhecimento SharePoint indexada.

{
  "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
}

Criar uma fonte de conhecimento

Execute o código a seguir para criar uma fonte de conhecimento SharePoint indexada.

// 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"
        }
    }
}

Reference:Knowledge Sources – Criar ou atualizar

Proteger dependências de Azure durante a ingestão

A partir da versão da 2026-08-01-preview API, networkAccessMode controla o ambiente de rede no qual o indexador gerado para uma fonte de dados de conhecimento SharePoint indexada é executado. Essa configuração afeta apenas a ingestão e não altera as solicitações ou respostas de recuperação da base de conhecimento.

networkAccessMode tem como padrão public, o que preserva o comportamento de rede pública existente. Quando networkAccessMode é private, o indexador gerado é executado no ambiente de execução privada. Ele usa links privados compartilhados aprovados para acessar dependências de Azure com suporte, como Azure modelos OpenAI e recursos do Microsoft Foundry.

Importante

Para fontes de conhecimento de SharePoint indexadas, o modo privado aplica-se somente a dependências de Azure com suporte. SharePoint Online não é um destino de link privado compartilhado com suporte, portanto, a conexão de origem SharePoint permanece pública.

Para configurar e verificar o acesso privado a dependências de Azure com suporte:

  1. Conclua os pré-requisitos de rede privada.

  2. Defina networkAccessMode para private na solicitação de criação da origem de conhecimento. Você só pode definir essa propriedade durante a criação. Para alterá-lo mais tarde, exclua e recrie a fonte de conhecimento.

    A criação poderá falhar se a camada de serviço ou o runtime não der suporte à execução privada ou se um link privado compartilhado necessário não existir.

  3. Confirme se o indexador executionEnvironment gerado é private.

  4. Confirme se cada link privado compartilhado exigido foi aprovado e aponta para a dependência correta. A criação bem-sucedida por si só não confirma a aprovação ou o direcionamento do link.

  5. Verifique o status da fonte de conhecimento até que lastSynchronizationState.endTime tenha um valor. Confirme que itemsUpdatesFailed está 0 e, em seguida, verifique o conteúdo de origem específico do conector. A sincronização falhará se uma dependência não for acessível.

Usar analisadores automáticos por idioma

A partir da versão da 2026-08-01-preview API, analisadores automáticos por idioma estão disponíveis para blob, OneLake indexado e fontes de conhecimento SharePoint indexadas. Quando habilitado, Pesquisa de IA do Azure  detecta o idioma de cada documento de origem e aplica automaticamente um analisador de idioma de Microsoft correspondente. Você não especifica um analisador na definição da fonte de dados de conhecimento ou em uma consulta.

Para habilitar analisadores automáticos por idioma, defina contentExtractionModeminimal e configure ingestionParameters.aiServices na definição da fonte de dados de conhecimento.

Para autenticação sem chave, omita aiServices.apiKey e atribua a função Usuário dos Serviços Cognitivos no seu recurso Microsoft Foundry à identidade gerenciada do seu serviço de busca. Para autenticação baseada em chave, defina aiServices.apiKey como uma chave válida para o recurso Foundry.

Há suporte para os seguintes idiomas:

  • Inglês
  • Japanese
  • French
  • Spanish
  • German
  • Holandês
  • Italian
  • Português (Brasil)
  • Português europeu
  • Chinês simplificado
  • Chinês tradicional
  • Korean

Para conteúdo multilíngue, Pesquisa de IA do Azure  seleciona um analisador com base no idioma detectado predominantemente. Ele usa o analisador padrão quando o idioma não tem suporte ou é incerto.

Quando você habilita analisadores automáticos por idioma, Pesquisa de IA do Azure  adiciona campos de conteúdo específicos ao idioma para cada idioma com suporte ao esquema de índice gerado, independentemente de seus dados contiverem documentos nesses idiomas. Durante a ingestão, os documentos são direcionados para o campo específico do idioma correspondente com base no idioma detectado.

Os campos de linguagem não utilizados não contêm conteúdo indexado e têm impacto mínimo no armazenamento, mas permanecem parte do esquema de índice e contam para o limite do campo de índice. Considere os campos adicionais ao planejar o design do índice, a contagem de campos e os requisitos de armazenamento. Para obter mais informações, consulte Os limites de índice e estimar e gerenciar a capacidade de um serviço de pesquisa.

A detecção de idioma pode ser cobrada após a alocação gratuita de enriquecimento de IA. Para obter mais informações, consulte Enriquecimentos gratuitos.

Verificar o status da ingestão

Execute o código a seguir para monitorar o progresso e a saúde do processo de ingestão, incluindo o tipo de fonte de conhecimento e erros de indexação detalhados para fontes de conhecimento que geram um pipeline de indexador e preenchem um índice de pesquisa.

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 

Referência:fontes de conhecimento — Obter status

Uma resposta para uma solicitação que inclui parâmetros de ingestão e está ingerindo conteúdo ativamente pode ser semelhante ao exemplo a seguir.

{
  "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
  }
}

Nota

A kind propriedade e a matriz currentSynchronizationState.errors[] com detalhes de erro a nível de documento estão disponíveis a partir da versão de API 2026-04-01. Para versões anteriores da API, esses campos não são retornados. O lastSynchronizationState.status campo também é novo em 2026-04-01.

Examinar os objetos gerados

Quando você cria essa fonte de conhecimento, Pesquisa de IA do Azure  gera automaticamente uma fonte de dados, um conjunto de habilidades, um indexador e um índice. A resposta de criação lista cada objeto em createdResources.

Esses objetos são gerados de acordo com um modelo fixo e seus nomes são baseados no nome da fonte de conhecimento. Não é possível alterar os nomes dos objetos. Evite editar esses objetos diretamente, pois as alterações podem introduzir erros ou incompatibilidades que interrompem o pipeline do indexador.

Você pode usar o portal Azure para validar a criação de objeto. O fluxo de trabalho é:

  1. Verifique se há mensagens de êxito ou falha no indexador. Erros de conexão ou cota aparecem aqui.

  2. Verifique a fonte de dados para verificar a conexão com o armazenamento de dados. A conexão usa uma cadeia de conexão ou uma identidade gerenciada, dependendo de como você configurou a fonte de conhecimento.

  3. Verifique o conjunto de habilidades para ver como o conteúdo é agrupado e, opcionalmente, vetorizado.

  4. Verifique o índice para ver como o conteúdo é indexado e exposto para recuperação, incluindo quais campos são pesquisáveis e filtrados e quais campos armazenam vetores para pesquisa de similaridade. Use o Gerenciador de Pesquisa para executar consultas no índice gerado.

Atribuir a uma base de dados de conhecimento

Se você estiver satisfeito com a fonte de conhecimento, adicione-a a uma base de dados de conhecimento.

Para qualquer base de dados de conhecimento que especifique uma fonte de conhecimento SharePoint indexada, defina includeReferenceSourceData como true. Esta etapa é necessária para extrair a URL do documento de origem e incluí-la na citação.

Consultar uma base de dados de conhecimento

Depois de configurar a base de conhecimento, execute a ação de recuperação ou o endpoint MCP para consultar a fonte de conhecimento. Escolha a configuração que corresponde ao seu cenário.

Impor permissões no nível do documento

Para impor permissões no nível do documento, defina ingestionPermissionOptions quando criar essa fonte de conhecimento e, em seguida, inclua o token de acesso do usuário na solicitação de recuperação. Para obter mais informações, consulte Impor permissões no momento da consulta (versão prévia).

Para resultados inexistentes, inesperados ou malsucedidos de uma consulta indexada de permissões do SharePoint, consulte Solucionar problemas da filtragem de permissões do SharePoint.

Exibir imagens incorporadas em documentos

Para exibir imagens incorporadas em documentos (como diagramas ou digitalizações) em respostas geradas por síntese de respostas, configure assetStore nesta fonte de conhecimento e, em seguida, habilite a veiculação de imagens na base de conhecimento. O fornecimento de imagens não é compatível quando ingestionPermissionOptions está configurado. Para obter mais informações, consulte Exibir imagens incorporadas em documentos na recuperação por meio de agentes (versão prévia).

Excluir uma fonte de conhecimento

Antes de excluir uma fonte de conhecimento, exclua qualquer base de dados de conhecimento que faça referência a ela ou atualize a definição da base de dados de conhecimento para remover a referência. Para fontes de conhecimento que geram um pipeline de índice e indexador, todos os objetos gerados também são excluídos . No entanto, se você usou um índice existente para criar uma fonte de conhecimento, seu índice não será excluído.

Se você tentar excluir uma fonte de conhecimento que está em uso, a ação falhará e retornará uma lista de bases de dados de conhecimento afetadas.

Para excluir uma fonte de conhecimento:

  1. Obtenha uma lista de todas as bases de dados de conhecimento em seu serviço de pesquisa.

    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

    Uma resposta de exemplo pode ser semelhante à seguinte:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Obtenha uma definição de base de conhecimento individual para verificar referências de fontes de conhecimento.

    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

    Uma resposta de exemplo pode ser semelhante à seguinte:

     {
       "Name": "earth-knowledge-base",
       "KnowledgeSources": [
         {
           "Name": "earth-knowledge-source"
         }
       ],
       "Models": [
         {}
       ],
       "RetrievalReasoningEffort": {},
       "OutputMode": {},
       "ETag": "\u00220x8DE278629D782B3\u0022",
       "EncryptionKey": null,
       "Description": null,
       "RetrievalInstructions": null,
       "AnswerInstructions": null
     }
    
  3. Exclua a base de dados de conhecimento ou, se você tiver várias fontes de conhecimento, atualize a base de dados de conhecimento para remover a origem. Este exemplo mostra a exclusão.

    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. Exclua a fonte de conhecimento.

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

    Reference:SearchIndexClient

  1. Obtenha uma lista de todas as bases de dados de conhecimento em seu serviço de pesquisa.

    # 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

    Uma resposta de exemplo pode ser semelhante à seguinte:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Obtenha uma definição de base de conhecimento individual para verificar referências de fontes de conhecimento.

    # 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

    Uma resposta de exemplo pode ser semelhante à seguinte:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks"
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Exclua a base de dados de conhecimento ou, se você tiver várias fontes de conhecimento, atualize a base de dados de conhecimento para remover a origem. Este exemplo mostra a exclusão.

    # 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. Exclua a fonte de conhecimento.

    # 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. Obtenha uma lista de todas as bases de dados de conhecimento em seu serviço de pesquisa.

    ### Get knowledge bases
    GET {{search-url}}/knowledgebases?api-version={{api-version}}&$select=name
    Authorization: Bearer {{token}}
    

    Referência:Bases de Dados de Conhecimento – Lista

    Uma resposta de exemplo pode ser semelhante à seguinte:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Obtenha uma definição de base de conhecimento individual para verificar referências de fontes de conhecimento.

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

    Referência:Bases de Conhecimento – Obter

    Uma resposta de exemplo pode ser semelhante à seguinte:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks"
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Exclua a base de dados de conhecimento ou, se você tiver várias fontes de conhecimento, atualize a base de dados de conhecimento para remover a origem. Este exemplo mostra a exclusão.

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

    Referência:Bases de Dados de Conhecimento – Excluir

  4. Exclua a fonte de conhecimento.

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

    Reference:Fontes de Conhecimento - Excluir

Erros conhecidos

A fonte de dados gerada e o indexador do SharePoint usam o mesmo comportamento de validação e autenticação do locatário do Microsoft Entra que os indexadores do SharePoint configurados diretamente. Para falhas relacionadas ao locatário, revise o status e o histórico de execução do indexador gerado e siga a etapa de correçãoInvalid AAD tenant.