Partilhar via


Crie uma fonte remota de conhecimento SharePoint

Observação

Esta funcionalidade está atualmente em pré-visualização pública. Esta pré-visualização é fornecida sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para mais informações, consulte Termos de Utilização Suplementares para Microsoft Azure Pré-visualizações.

Uma fonte de conhecimento SharePoint remota utiliza a API de Recuperação do Copilot para consultar conteúdo textual diretamente do SharePoint no Microsoft 365. Não é necessário índice de pesquisa nem cadeia de ligação. Apenas o conteúdo textual é consultado e o uso é faturado através do Microsoft 365 e de uma licença Copilot.

Para limitar os sites ou restringir a pesquisa, defina uma expressão de filtro para definir o âmbito por URLs, intervalos de datas, tipos de ficheiros e outros metadados. A identidade do chamador deve ser reconhecida tanto pelo tenant Azure como pelo tenant Microsoft 365 porque o motor de recuperação consulta o SharePoint em nome do utilizador.

Como em qualquer outra fonte de conhecimento, especifica uma fonte remota de SharePoint de conhecimento numa base de conhecimento e usa os resultados como dados de base quando um agente ou chatbot chama uma ação retrieve no momento da consulta.

Suporte de utilização

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

Pré-requisitos

  • O mais recente pacote de pré-visualização Azure.Search.Documents: dotnet add package Azure.Search.Documents --prerelease
  • O mais recente pacote de pré-visualização azure-search-documents: pip install --pre azure-search-documents

Limitações

As seguintes limitações na API Copilot Retrieval aplicam-se a fontes remotas de conhecimento SharePoint.

  • Não há suporte para conectores Copilot nem para conteúdos do OneDrive. O conteúdo é retirado apenas de sites SharePoint.

  • Limite de 200 pedidos por utilizador por hora.

  • Limite de caracteres de consulta de 1.500 caracteres.

  • Consultas híbridas são suportadas apenas para as seguintes extensões de ficheiro: .doc, .docx, .pptx, .pdf, .aspx e .one.

  • A recuperação multimodal (conteúdo não textual, incluindo tabelas, imagens e gráficos) não é suportada.

  • Um máximo de 25 resultados de uma consulta.

  • Os resultados são retornados pela API de Recuperação do Copilot de forma não ordenada.

  • Expressões de filtro inválidas da Linguagem de Consulta de Palavras-Chave (KQL) são ignoradas e a consulta continua a ser executada sem o filtro.

Verifique se há fontes de conhecimento existentes

Uma fonte de conhecimento é um objeto reutilizável de nível superior. Conhecer as fontes de conhecimento existentes é útil para reutilizar ou 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}");
}

Você também pode retornar uma única fonte de conhecimento pelo nome para revisar sua definição 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));

Uma fonte de conhecimento é um objeto reutilizável de nível superior. Conhecer as fontes de conhecimento existentes é útil para reutilizar ou 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
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))

Você também pode retornar uma única fonte de conhecimento pelo nome para revisar sua definição 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))

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

Usar Fontes de Conhecimento - Obter (API REST) para listar fontes de conhecimento por nome e tipo.

### List knowledge sources by name and type
GET {{search-url}}/knowledgesources?api-version=2025-11-01-preview&$select=name,kind
api-key: {{api-key}}

Você também pode retornar uma única fonte de conhecimento pelo nome para revisar sua definição JSON.

### Get a knowledge source definition
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version=2025-11-01-preview
api-key: {{api-key}}

O JSON seguinte é uma resposta de exemplo para uma fonte de conhecimento remota do SharePoint.

{
  "name": "my-sharepoint-ks",
  "kind": "remoteSharePoint",
  "description": "A sample remote SharePoint knowledge source",
  "encryptionKey": null,
  "remoteSharePointParameters": {
    "filterExpression": "filetype:docx",
    "containerTypeId": null,
    "resourceMetadata": [
      "Author",
      "Title"
    ]
  }
}

Criar uma fonte de conhecimento

Execute o código seguinte para criar uma fonte remota de conhecimento SharePoint.

// Create a remote SharePoint knowledge source
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.KnowledgeBases.Models;
using Azure;

var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);

var knowledgeSource = new RemoteSharePointKnowledgeSource(name: "my-remote-sharepoint-ks")
{
    Description = "This knowledge source queries .docx files in a trusted Microsoft 365 tenant.",
    RemoteSharePointParameters = new RemoteSharePointKnowledgeSourceParameters()
    {
        FilterExpression = "filetype:docx",
        ResourceMetadata = { "Author", "Title" }
    }
};

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

Execute o código seguinte para criar uma fonte remota de conhecimento SharePoint.

# Create a remote SharePoint knowledge source
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import RemoteSharePointKnowledgeSource, RemoteSharePointKnowledgeSourceParameters

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

knowledge_source = RemoteSharePointKnowledgeSource(
    name = "my-remote-sharepoint-ks",
    description= "This knowledge source queries .docx files in a trusted Microsoft 365 tenant.",
    encryption_key = None,
    remote_share_point_parameters = RemoteSharePointKnowledgeSourceParameters(
        filter_expression = "filetype:docx",
        resource_metadata = ["Author", "Title"],
        container_type_id = None
    )
)

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

Use Fontes de Conhecimento - Criar ou Atualizar (API REST) para criar uma fonte remota SharePoint de conhecimento.

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

{
    "name": "my-remote-sharepoint-ks",
    "kind": "remoteSharePoint",
    "description": "This knowledge source queries .docx files in a trusted Microsoft 365 tenant.",
    "encryptionKey": null,
    "remoteSharePointParameters": {
        "filterExpression": "filetype:docx",
        "resourceMetadata": [ "Author", "Title" ],
        "containerTypeId": null
    }
}

Propriedades específicas da fonte

Pode passar as seguintes propriedades para criar uma fonte remota de conhecimento SharePoint.

Nome Description Tipo Editável Obrigatório
Name O nome da fonte de conhecimento, que deve ser único dentro da coleção de fontes de conhecimento e seguir as diretrizes nomeação para objetos em Pesquisa de IA do Azure. Cordão Não Yes
Description Uma descrição da fonte de conhecimento. Cordão Yes Não
EncryptionKey Uma chave gerida pelo cliente para encriptar informação sensível na fonte de conhecimento. Objeto Yes Não
RemoteSharePointParameters Parâmetros específicos para fontes remotas de conhecimento SharePoint: FilterExpression, ResourceMetadata e ContainerTypeId. Objeto Não Não
FilterExpression Uma expressão escrita no SharePoint KQL, usada para especificar locais e caminhos para o conteúdo. Cordão Yes Não
ResourceMetadata Um conjunto de campos padrão de metadados: autor, nome do ficheiro, data de criação, tipo de conteúdo e tipo de ficheiro. Array Yes Não
ContainerTypeId ID do contenedor para a ligação integrada do SharePoint. Quando não especificado, utiliza-se o SharePoint Online. Cordão Yes Não
Nome Description Tipo Editável Obrigatório
name O nome da fonte de conhecimento, que deve ser único dentro da coleção de fontes de conhecimento e seguir as diretrizes nomeação para objetos em Pesquisa de IA do Azure. Cordão Não Yes
description Uma descrição da fonte de conhecimento. Cordão Yes Não
encryption_key Uma chave gerida pelo cliente para encriptar informação sensível na fonte de conhecimento. Objeto Yes Não
remote_share_point_parameters Parâmetros específicos para fontes remotas de conhecimento SharePoint: filter_expression, resource_metadata e container_type_id. Objeto Não Não
filter_expression Uma expressão escrita no SharePoint KQL, usada para especificar locais e caminhos para o conteúdo. Cordão Yes Não
resource_metadata Um conjunto de campos padrão de metadados: autor, nome do ficheiro, data de criação, tipo de conteúdo e tipo de ficheiro. Array Yes Não
container_type_id ID do contêiner para a ligação integrada do SharePoint. Quando não especificado, utiliza-se o SharePoint Online. Cordão Yes Não
Nome Description Tipo Editável Obrigatório
name O nome da fonte de conhecimento, que deve ser único dentro da coleção de fontes de conhecimento e seguir as diretrizes nomeação para objetos em Pesquisa de IA do Azure. Cordão Não Yes
kind O tipo de fonte de conhecimento, que é remoteSharePoint neste caso. Cordão Não Yes
description Uma descrição da fonte de conhecimento. Cordão Yes Não
encryptionKey Uma chave gerida pelo cliente para encriptar informação sensível na fonte de conhecimento. Objeto Yes Não
remoteSharePointParameters Parâmetros específicos para fontes remotas de conhecimento SharePoint: filterExpression, resourceMetadata e containerTypeId. Objeto Não Não
filterExpression Uma expressão escrita no SharePoint KQL, usada para especificar locais e caminhos para o conteúdo. Cordão Yes Não
resourceMetadata Um conjunto de campos padrão de metadados: autor, nome do ficheiro, data de criação, tipo de conteúdo e tipo de ficheiro. Array Yes Não
containerTypeId ID do container para a ligação SharePoint embutida. Quando não especificado, utiliza-se o SharePoint Online. Cordão Yes Não

Exemplos de expressões de filtros

Nem todas as propriedades SharePoint são suportadas no filterExpression. Para uma lista de propriedades suportadas, consulte a referência da API. Para propriedades consultáveis, veja Consultável.

Saiba mais sobre os filtros KQL na referência de sintaxe.

Example Expressão do filtro
Filtrar para um único site por ID "filterExpression": "SiteID:\"00aa00aa-bb11-cc22-dd33-44ee44ee44ee\""
Filtrar os múltiplos sites por ID "filterExpression": "SiteID:\"00aa00aa-bb11-cc22-dd33-44ee44ee44ee\" OR SiteID:\"11bb11bb-cc22-dd33-ee44-55ff55ff55ff\""
Filtrar ficheiros num caminho específico "filterExpression": "Path:\"https://my-demo.sharepoint.com/sites/mysite/Shared Documents/en/mydocs\""
Filtrar para um intervalo de datas específico "filterExpression": "LastModifiedTime >= 2024-07-22 AND LastModifiedTime <= 2025-01-08"
Filtrar para ficheiros de um tipo específico de ficheiro "filterExpression": "FileExtension:\"docx\" OR FileExtension:\"pdf\" OR FileExtension:\"pptx\""
Filtrar para ficheiros de um rótulo específico de proteção de informação "filterExpression": "InformationProtectionLabelId:\"f0ddcc93-d3c0-4993-b5cc-76b0a283e252\""

Atribuir a uma base de conhecimento

Se estiver satisfeito com a fonte de conhecimento, continue para o passo seguinte: especifique a fonte de conhecimento numa base de conhecimento.

Consultar uma base de dados de conhecimento

Depois de configurada a base de conhecimento, utilize a ação retrieve para consultar SharePoint conteúdo. O SharePoint remoto tem comportamentos específicos da fonte para filtragem em tempo de consulta, formulação de consultas, campos de resposta e aplicação de permissões.

Aplique um filtro KQL no momento da consulta

Pode passar um FilterExpressionAddOn no KnowledgeSourceParams pedido de recuperação para aplicar um filtro KQL na altura da consulta. Se especificares FilterExpressionAddOn no pedido de recuperação e FilterExpression na definição da fonte de conhecimento, os filtros são combinados com AND.

var retrievalRequest = new KnowledgeBaseRetrievalRequest();
retrievalRequest.Messages.Add(
    new KnowledgeBaseMessage(
        content: new[] {
            new KnowledgeBaseMessageTextContent("contoso product planning")
        }
    ) { Role = "user" }
);
retrievalRequest.KnowledgeSourceParams.Add(
    new RemoteSharePointKnowledgeSourceParams("my-remote-sharepoint-ks")
    {
        FilterExpressionAddOn = "filetype:docx"
    }
);

var result = await kbClient.RetrieveAsync(
    retrievalRequest, xMsQuerySourceAuthorization: token
);

Pode passar um filter_expression_add_on no knowledge_source_params pedido de recuperação para aplicar um filtro KQL na altura da consulta. Se especificares filter_expression_add_on no pedido de recuperação e filter_expression na definição da fonte de conhecimento, os filtros são combinados com AND.

from azure.search.documents.knowledgebases.models import (
    KnowledgeBaseMessage,
    KnowledgeBaseMessageTextContent,
    KnowledgeBaseRetrievalRequest,
    RemoteSharePointKnowledgeSourceParams,
)

request = KnowledgeBaseRetrievalRequest(
    messages=[
        KnowledgeBaseMessage(
            role="user",
            content=[
                KnowledgeBaseMessageTextContent(
                    text="contoso product planning"
                )
            ],
        )
    ],
    knowledge_source_params=[
        RemoteSharePointKnowledgeSourceParams(
            knowledge_source_name="my-remote-sharepoint-ks",
            filter_expression_add_on="filetype:docx",
        )
    ],
)

result = kb_client.retrieve(
    retrieval_request=request,
    x_ms_query_source_authorization=token,
)

Pode passar um filterExpressionAddOn no knowledgeSourceParams pedido de recuperação para aplicar um filtro KQL na altura da consulta. Se especificares filterExpressionAddOn no pedido de recuperação e filterExpression na definição da fonte de conhecimento, os filtros são combinados com AND.

POST {{search-url}}/knowledgebases/{{knowledge-base-name}}/retrieve?api-version=2025-11-01-preview
Authorization: Bearer {{accessToken}}
Content-Type: application/json
x-ms-query-source-authorization: {{user-access-token}}

{
    "messages": [
        {
            "role": "user",
            "content": [
                { "type": "text", "text": "contoso product planning" }
            ]
        }
    ],
    "knowledgeSourceParams": [
        {
            "knowledgeSourceName": "my-remote-sharepoint-ks",
            "kind": "remoteSharePoint",
            "filterExpressionAddOn": "filetype:docx"
        }
    ]
}

Escrever consultas eficazes

Consultas que perguntam sobre o próprio conteúdo são mais eficazes do que perguntas sobre onde está localizado um ficheiro ou quando foi atualizado pela última vez. Por exemplo, "Onde está o documento principal para o Ignite 2024" pode não devolver resultados porque o próprio conteúdo não revela a sua localização. A FilterExpression sobre metadados é uma abordagem melhor para consultas específicas de localização de ficheiros ou de datas.

Consultas que perguntam sobre o próprio conteúdo são mais eficazes do que perguntas sobre onde está localizado um ficheiro ou quando foi atualizado pela última vez. Por exemplo, "Onde está o documento principal para o Ignite 2024" pode não devolver resultados porque o próprio conteúdo não revela a sua localização. A filter_expression sobre metadados é uma abordagem melhor para consultas específicas de localização de ficheiros ou de datas.

Consultas que perguntam sobre o próprio conteúdo são mais eficazes do que perguntas sobre onde está localizado um ficheiro ou quando foi atualizado pela última vez. Por exemplo, "Onde está o documento principal para o Ignite 2024" pode não devolver resultados porque o próprio conteúdo não revela a sua localização. A filterExpression sobre metadados é uma abordagem melhor para consultas específicas de localização de ficheiros ou de datas.

Uma pergunta mais eficaz é "Qual é o documento principal do Ignite 2024". A resposta inclui a resposta sintetizada, a atividade da consulta e a contagem de tokens, além do URL e outros metadados.

Campos de resposta específicos do SharePoint

Os resultados de SharePoint remotos incluem campos que não aparecem para outros tipos de fonte de conhecimento, como resourceMetadata, webUrl e searchSensitivityLabelInfo.

{
    "resourceMetadata": {
        "Author": "Nuwan Amarathunga;Nurul Izzati",
        "Title": "Ignite 2024 Keynote Address"
    },
    "rerankerScore": 2.489522,
    "webUrl": "https://contoso-my.sharepoint.com/keynotes/Documents/Keynote-Ignite-2024.docx",
    "searchSensitivityLabelInfo": {
        "displayName": "Confidential\\Contoso Extended",
        "sensitivityLabelId": "aaaaaaaa-0b0b-1c1c-2d2d-333333333333",
        "tooltip": "Data is classified and protected.",
        "priority": 5,
        "color": "#FF8C00",
        "isEncrypted": true
    }
}

Aplicar permissões no momento da consulta

Fontes de conhecimento remotas do SharePoint podem aplicar permissões do SharePoint no momento da consulta. Para permitir este filtragem, inclua o token de acesso do utilizador final no pedido de recuperação. O motor de recuperação passa o token para a API de Recuperação do Copilot, que consulta o SharePoint e devolve apenas o conteúdo ao qual o utilizador tem acesso. As permissões do SharePoint e as etiquetas de sensibilidade do Microsoft Purview são respeitadas.

Como o SharePoint remoto não utiliza um índice de pesquisa, não é necessária configuração de permissões de tempo de ingestão. O token de acesso é o único requisito.

Para instruções sobre como passar o token, consulte Impor permissões no momento da consulta.

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

    Um exemplo de resposta pode ter a seguinte aparência:

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

    Um exemplo de resposta pode ter a seguinte aparência:

     {
       "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 apaga a base de conhecimento ou atualiza a base de conhecimento para remover a fonte de conhecimento se tiveres várias fontes. 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.");
    
  4. Exclua a fonte de conhecimento.

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

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.

    # 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))
    

    Um exemplo de resposta pode ter a seguinte aparência:

     {
         "@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
    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))
    

    Um exemplo de resposta pode ter a seguinte aparência:

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

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.

    ### Get knowledge bases
    GET {{search-endpoint}}/knowledgebases?api-version=2025-11-01-preview&$select=name
    api-key: {{api-key}}
    

    Um exemplo de resposta pode ter a seguinte aparência:

     {
         "@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-endpoint}}/knowledgebases/{{knowledge-base-name}}?api-version=2025-11-01-preview
    api-key: {{api-key}}
    

    Um exemplo de resposta pode ter a seguinte aparência:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks",
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Ou apaga a base de conhecimento ou atualiza a base de conhecimento removendo a fonte de conhecimento se tiveres múltiplas fontes. Este exemplo mostra a exclusão.

    ### Delete a knowledge base
    DELETE {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}?api-version=2025-11-01-preview
    api-key: {{api-key}}
    
  4. Exclua a fonte de conhecimento.

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