Criar uma fonte de conhecimento SharePoint indexada (pré-visualização)

Nota

O Pesquisa de IA do Azure está disponível através do portal Azure, APIs REST e SDKs do Azure. Também sustenta o Foundry IQ, a camada de conhecimento gerida que transforma conteúdos empresariais em bases de conhecimento reutilizáveis e conscientes de permissões para agentes no portal Microsoft Foundry.

Importante

Funcionalidades, capacidades ou propriedades assinaladas (pré-visualização) não são abrangidas por um acordo de nível de serviço, não são recomendadas para cargas de trabalho em produção e podem mudar ou ser limitadas antes de se tornarem geralmente disponíveis. Os termos de pré-visualização do Pesquisa de IA do Azure aplicam-se a todas as funcionalidades de pré-visualização, sejam independentes ou parte de uma funcionalidade geralmente disponível.

Uma fonte de conhecimento indexada do SharePoint (pré-visualização) ingere conteúdo do SharePoint num pipeline de recuperação com agentes no Pesquisa de IA do Azure. As fontes de conhecimento são criadas de forma independente, referenciadas numa base de conhecimento e usadas como dados de base quando a base é consultada em tempo de execução.

Quando cria uma fonte de SharePoint de conhecimento indexada, especifica um SharePoint cadeia de ligação, modelos e propriedades para gerar automaticamente os seguintes Pesquisa de IA do Azure objetos:

  • Uma fonte de dados que aponta para sites do SharePoint e utiliza a cadeia de ligação inalterada. A fonte de dados gerada segue as regras do TenantIdindexador SharePoint.
  • Um conjunto de competências que segmenta e, opcionalmente, vectoriza conteúdos multimodais.
  • Um índice que armazena conteúdo enriquecido e cumpre os critérios para a recuperação agêntica.
  • Um indexador que utiliza os objetos anteriores para gerir 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 documentos suportados e limitações também se aplicam às fontes de conhecimento SharePoint indexadas. Para mais informações, consulte a documentação do indexador SharePoint e os limites do indexador. Se o conjunto de competências gerado invocar um serviço externo, também se aplicam os limites de entrada e do serviço dessa competência.

Suporte de utilização

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

Pré-requisitos

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

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

  • Conclusão dos seguintes passos de configuração do indexador SharePoint:

  • Se for https://<resource-name>.services.ai.azure.com, utilize um recurso do Microsoft Foundry numa standard e o ponto final contentExtractionMode. Implemente um modelo de incorporação e implemente também um modelo de chat multimodal se ativar a verbalização de imagens.

  • Permissão para criar fontes de conhecimento. Configure autenticação sem chave com os papéis de Contribuidor de Serviços de Pesquisa e Contribuidor de Dados do Índice de Pesquisa atribuídos à sua conta de utilizador (recomendado) ou utilize uma chave API de administrador.

  • Se a fonte de conhecimento especificar um modelo Azure OpenAI para embeddings ou verbalização de imagens, o serviço de pesquisa deve ter uma identidade gerida com permissões Cognitive Services User no recurso Microsoft Foundry.

  • Se definir networkAccessMode como private, cumpra os seguintes requisitos:

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

    • Mantenha a cadeia de ligação do SharePoint, a aplicação Microsoft Entra e as permissões do SharePoint descritas nos pré-requisitos anteriores. O SharePoint Online não é um alvo de ligação privada partilhada suportado, por isso o modo privado não torna esta ligação de origem privada.

    • Para cada endpoint de modelo protegido, ativar uma identidade gerida no serviço de pesquisa, conceder-lhe o papel de Utilizador de Serviços Cognitivos no recurso e criar e aprovar uma ligação privada partilhada. Utilize o ID de grupo openai_account para os endpoints do Azure OpenAI e foundry_account para os endpoints de recursos do Foundry.

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

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

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

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

Verifique fontes de conhecimento existentes

Uma fonte de conhecimento é um objeto de topo e reutilizável. Conhecer as fontes de conhecimento existentes é útil tanto para reutilizar como para nomear novos objetos.

Execute o seguinte código para listar as 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}");
}

Referência: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})")

Referência:SearchIndexClient

### List knowledge sources by name and type
GET {{search-url}}/knowledgesources?api-version={{api-version}}&$select=name,kind
Authorization: Bearer {{token}}

Referência:Fontes de Conhecimento - Lista

Também pode devolver uma única fonte de conhecimento pelo nome para rever a sua definição em 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));

Referência: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))

Referência:SearchIndexClient

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

Referência:Fontes de Conhecimento - Obter

O JSON seguinte é 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 seguinte 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.");

Referência: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.")

Referência: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"
        }
    }
}

Referência:Fontes de Conhecimento - Criar ou Atualizar

Proteger as dependências do Azure durante a ingestão de dados

A partir da 2026-08-01-preview versão da API, networkAccessMode controla o ambiente de rede onde o indexador gerado para uma fonte de conhecimento SharePoint indexada é executado. Esta configuração afeta apenas a ingestão e não altera os pedidos ou respostas de recuperação da base de conhecimento.

networkAccessMode tem por defeito o valor public, o que preserva o comportamento existente da rede pública. Quando networkAccessMode é private, o indexador gerado executa-se no ambiente de execução privada. Utiliza ligações privadas partilhadas aprovadas para aceder a dependências do Azure suportadas, como modelos OpenAI do Azure e recursos do Microsoft Foundry.

Importante

Para fontes de conhecimento SharePoint indexadas, o modo privado aplica-se apenas a dependências Azure suportadas. O SharePoint Online não é um alvo de ligação privada partilhada suportado, pelo que a ligação de origem do SharePoint permanece pública.

Para configurar e verificar o acesso privado às dependências do Azure suportadas:

  1. Cumpra os pré-requisitos da rede privada.

  2. Definir networkAccessMode para private no pedido de criação de fonte de conhecimento. Só podes definir esta propriedade durante a criação. Para alterar mais tarde, apaga e recria a fonte do conhecimento.

    A criação pode falhar se o escalão de serviço ou o ambiente de execução não suportarem a execução privada, ou se não existir uma ligação privada partilhada obrigatória.

  3. Confirme que o indexador executionEnvironment gerado é private.

  4. Confirme que cada ligação privada partilhada necessária está aprovada e tem como alvo a dependência correta. A criação bem-sucedida por si só não confirma a aprovação ou o direcionamento dos links.

  5. Verifique periodicamente o estado da fonte de conhecimento até que lastSynchronizationState.endTime tenha um valor. Confirme que itemsUpdatesFailed é 0, e depois verifique o conteúdo da fonte específica do conector. A sincronização falha se uma dependência não for acessível.

Use analisadores automáticos por língua

A partir da versão 2026-08-01-preview da API, estão disponíveis analisadores automáticos por idioma para fontes de conhecimento blob, do OneLake indexadas e do SharePoint indexadas. Quando ativado, o Pesquisa de IA do Azure deteta a linguagem de cada documento de origem e aplica automaticamente um analisador de linguagem Microsoft correspondente. Não especificas um analisador na definição da fonte de conhecimento ou numa consulta.

Para ativar analisadores automáticos para cada idioma, defina contentExtractionMode para minimal e configure ingestionParameters.aiServices na definição da origem de conhecimento.

Para autenticação sem chave, omita aiServices.apiKey e atribui o papel de Utilizador de Serviços Cognitivos no teu recurso Microsoft Foundry à identidade gerida do teu serviço de pesquisa. Para autenticação baseada em chaves, defina aiServices.apiKey uma chave válida para o seu recurso Foundry.

Os seguintes idiomas são suportados:

  • English
  • Japanese
  • French
  • Spanish
  • German
  • Neerlandês
  • Italian
  • Português do Brasil
  • Português Europeu
  • Chinês simplificado
  • Chinês tradicional
  • Korean

Para conteúdos multilíngues, o Pesquisa de IA do Azure seleciona um analisador com base na língua predominante detetada. Utiliza o analisador padrão quando a linguagem não é suportada ou é incerta.

Quando ativa analisadores automáticos por língua, o Pesquisa de IA do Azure adiciona campos de conteúdo específicos para cada língua suportada ao esquema de índice gerado, independentemente de os seus dados conterem ou não documentos nessas línguas. Durante a ingestão, os documentos são encaminhados para o campo específico do idioma apropriado, com base no idioma detetado.

Os campos de linguagem não utilizados não contêm conteúdo indexado e têm impacto mínimo no armazenamento, mas continuam a fazer parte do esquema do índice e contam para o limite do campo do índice. Considere os campos adicionais ao planear o desenho do índice, o número de campos e os requisitos de armazenamento. Para mais informações, consulte Limites de índice e Estimar e gerir a capacidade de um serviço de pesquisa.

A deteção de idioma é cobrada após a quota gratuita de enriquecimento por IA. Para mais informações, veja Enriquecimentos gratuitos.

Verificar o estado da ingestão

Execute o seguinte código para monitorizar o progresso da ingestão e a saúde, incluindo o tipo de fonte de conhecimento e erros detalhados de indexação para fontes de conhecimento que geram um pipeline de indexadores 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);

Referência: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))

Referência: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 Estado

Uma resposta a um pedido que inclui parâmetros de ingestão e que está a ingerir conteúdo ativamente pode assemelhar-se ao seguinte exemplo.

{
  "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 propriedade kind e o array currentSynchronizationState.errors[] com detalhes de erros ao nível do documento estão disponíveis a partir da versão da API de 2026-04-01. Para versões anteriores da API, estes campos não são devolvidos. O lastSynchronizationState.status campo também é novo em 01-04-2026.

Rever os objetos gerados

Quando cria esta fonte de conhecimento, o Pesquisa de IA do Azure gera automaticamente uma fonte de dados, um conjunto de competências, um indexador e um índice. A resposta de criação lista cada objeto sob createdResources.

Estes objetos são gerados de acordo com um modelo fixo, e os seus nomes baseiam-se no nome da fonte de conhecimento. Não podes mudar os nomes dos objetos. Evite editar estes objetos diretamente, pois alterações podem introduzir erros ou incompatibilidades que quebram o pipeline do indexador.

Podes usar o portal do Azure para validar a criação de objetos. O fluxo de trabalho é:

  1. Verifique o indexador para mensagens de sucesso ou fracasso. Erros de conexão ou de cota aparecem aqui.

  2. Verifique a fonte dos dados para verificar a ligação ao seu armazenamento de dados. A ligação utiliza uma cadeia de ligação ou uma identidade gerida, dependendo de como configuraste a fonte de conhecimento.

  3. Verifica o conjunto de competências para ver como o teu conteúdo é segmentado em blocos e, opcionalmente, vetorizado.

  4. Verifique o índice para ver como o seu conteúdo é indexado e exposto para recuperação, incluindo quais os campos pesquisáveis e filtráveis e quais armazenam vetores para pesquisa por similaridade. Use o Explorador de Pesquisa para realizar consultas no índice gerado.

Atribuir a uma base de conhecimento

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

Para qualquer base de conhecimento que especifique uma fonte de SharePoint de conhecimento indexada, certifique-se de definir includeReferenceSourceData para true. Este passo é necessário para puxar a URL do documento de origem para a citação.

Consultar uma base de conhecimento

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

Aplicar permissões ao nível do documento

Para impor permissões ao nível do documento, defina ingestionPermissionOptions ao criar esta fonte de conhecimento e depois inclua o token de acesso do utilizador no pedido de recuperação. Para mais informações, consulte Impor permissões no momento da consulta (pré-visualização).

Para resultados em falta, inesperados ou falhados de uma consulta indexada de permissões do SharePoint, consulte Solucionar problemas de filtragem de permissões do SharePoint.

Imagens incorporadas em documentos Surface

Para apresentar imagens incorporadas nos documentos (como diagramas ou digitalizações) nas respostas de síntese, configure assetStore nesta fonte de conhecimento e, em seguida, ative a disponibilização de imagens na base de conhecimento. A disponibilização de imagens não é suportada quando ingestionPermissionOptions está configurado. Para mais informações, veja Mostrar imagens incorporadas em documentos na recuperação agêntica (pré-visualização).

Eliminar uma fonte de conhecimento

Antes de poder eliminar uma fonte de conhecimento, deve eliminar qualquer base de conhecimento que a faça referência ou atualizar a definição da base 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 eliminados. No entanto, se usou um índice existente para criar uma fonte de conhecimento, o seu índice não é eliminado.

Se tentar eliminar uma fonte de conhecimento que está em uso, a ação falha e devolve uma lista das bases de conhecimento afetadas.

Para eliminar uma fonte de conhecimento:

  1. Obtenha uma lista de todas as bases de conhecimento do 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}");
    }
    

    Referência:SearchIndexClient

    Uma resposta de exemplo pode ser a 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 individual da base de conhecimento 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);
    

    Referência:SearchIndexClient

    Uma resposta de exemplo pode ser a 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. Ou apagas a base de conhecimento ou, se tiveres várias fontes de conhecimento, atualizas a base de conhecimento para remover a fonte. Este exemplo mostra eliminaçã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.");
    

    Referência:SearchIndexClient

  4. Apaga a fonte de conhecimento.

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

    Referência:SearchIndexClient

  1. Obtenha uma lista de todas as bases de conhecimento do 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}")
    

    Referência:SearchIndexClient

    Uma resposta de exemplo pode ser a 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 individual da base de conhecimento 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)
    

    Referência:SearchIndexClient

    Uma resposta de exemplo pode ser a seguinte:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks"
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Ou apagas a base de conhecimento ou, se tiveres várias fontes de conhecimento, atualizas a base de conhecimento para remover a fonte. Este exemplo mostra eliminaçã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.")
    

    Referência:SearchIndexClient

  4. Apaga 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.")
    

    Referência:SearchIndexClient

  1. Obtenha uma lista de todas as bases de conhecimento do 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 Conhecimento - Lista

    Uma resposta de exemplo pode ser a 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 individual da base de conhecimento 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 a seguinte:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks"
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Ou apagas a base de conhecimento ou, se tiveres várias fontes de conhecimento, atualizas a base de conhecimento para remover a fonte. Este exemplo mostra eliminação.

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

    Referência:Bases de Conhecimento - Eliminar

  4. Apaga a fonte de conhecimento.

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

    Referência:Fontes de Conhecimento - Eliminar

Erros conhecidos

A fonte de dados SharePoint gerada e o indexador utilizam o mesmo comportamento de validação e autenticação do Microsoft Entra que os indexadores SharePoint diretamente configurados. Para falhas relacionadas com o inquilino, consulte o estado e o histórico de execução do indexador gerado e, em seguida, siga os Invalid AAD tenant passos de remediação.