Compartilhar via


Criar uma fonte de conhecimento de SharePoint remota

Observação

Esse recurso está atualmente em versão prévia pública. Essa visualização é fornecida sem um contrato de nível de serviço e não é recomendada para utilização em produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos. Para obter mais informações, consulte Supplemental Terms of Use for Microsoft Azure Previews.

Uma fonte de conhecimento SharePoint remoto usa a Copilot Retrieval API para consultar conteúdo textual diretamente de SharePoint no Microsoft 365. Nenhum índice de pesquisa ou cadeia de conexão é necessário. Somente o conteúdo textual é consultado e o uso é cobrado por meio de Microsoft 365 e uma licença de Copilot.

Para limitar sites ou restringir a pesquisa, defina uma expressão de filtro como escopo por URLs, intervalos de datas, tipos de arquivo e outros metadados. A identidade do chamador deve ser reconhecida tanto pelo locatário Azure quanto pelo locatário Microsoft 365, pois o mecanismo de busca realiza consultas ao SharePoint em nome do usuário.

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

Suporte de uso

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

Pré-requisitos

Limitações

As limitações a seguir na API de Recuperação Copilot se aplicam a fontes de conhecimento SharePoint remotas.

  • Não há suporte para conectores do Copilot ou conteúdos do OneDrive. O conteúdo é recuperado somente de sites SharePoint.

  • Limite de 200 solicitações por usuário por hora.

  • Limite de caracteres de consulta de 1.500 caracteres.

  • As consultas híbridas só têm suporte para as seguintes extensões de arquivo: .doc, .docx, .pptx, .pdf, .aspx e .one.

  • Não há suporte para a recuperação multimodal (conteúdo nãoxtual, incluindo tabelas, imagens e gráficos).

  • 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 KQL (Linguagem de Consulta de Palavra-Chave) inválidas são ignoradas e a consulta continua a ser executada sem o filtro.

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

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

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
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 por nome para revisar sua definição de 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. Saber sobre fontes de conhecimento existentes é útil para reutilizar ou nomear novos objetos.

Use 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 por nome para revisar sua definição de 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 a seguir é uma resposta de exemplo para uma fonte de conhecimento de SharePoint remota.

{
  "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 a seguir para criar uma fonte de conhecimento SharePoint remota.

// 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 a seguir para criar uma fonte de conhecimento SharePoint remota.

# 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 Cnowledge Sources – Create or Update (API REST) para criar uma fonte de conhecimento SharePoint remota.

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 origem

Você pode passar as propriedades a seguir para criar uma fonte de conhecimento SharePoint remota.

Nome Description Tipo Editável Obrigatório
Name O nome da fonte de conhecimento, que deve ser exclusivo na coleção de fontes de conhecimento e seguir as diretrizes de naming para objetos em Pesquisa de IA do Azure . String Não Yes
Description Uma descrição da fonte de conhecimento. String Yes Não
EncryptionKey Uma chave gerenciada pelo cliente para criptografar informações confidenciais na fonte de conhecimento. Object Yes Não
RemoteSharePointParameters Parâmetros específicos para fontes de conhecimento de SharePoint remotas: FilterExpression, ResourceMetadata e ContainerTypeId. Object Não Não
FilterExpression Uma expressão escrita no SharePoint KQL, que é usada para especificar sites e caminhos para o conteúdo. String Yes Não
ResourceMetadata Uma matriz de campos de metadados padrão: autor, nome do arquivo, data de criação, tipo de conteúdo e tipo de arquivo. Array Yes Não
ContainerTypeId ID do contêiner para a conexão SharePoint Embedded. Quando não especificado, SharePoint Online é usado. String Yes Não
Nome Description Tipo Editável Obrigatório
name O nome da fonte de conhecimento, que deve ser exclusivo na coleção de fontes de conhecimento e seguir as diretrizes de naming para objetos em Pesquisa de IA do Azure . String Não Yes
description Uma descrição da fonte de conhecimento. String Yes Não
encryption_key Uma chave gerenciada pelo cliente para criptografar informações confidenciais na fonte de conhecimento. Object Yes Não
remote_share_point_parameters Parâmetros específicos para fontes de conhecimento de SharePoint remotas: filter_expression, resource_metadata e container_type_id. Object Não Não
filter_expression Uma expressão escrita no SharePoint KQL, que é usada para especificar sites e caminhos para o conteúdo. String Yes Não
resource_metadata Uma matriz de campos de metadados padrão: autor, nome do arquivo, data de criação, tipo de conteúdo e tipo de arquivo. Array Yes Não
container_type_id ID do contêiner para a conexão SharePoint Embedded. Quando não especificado, SharePoint Online é usado. String Yes Não
Nome Description Tipo Editável Obrigatório
name O nome da fonte de conhecimento, que deve ser exclusivo na coleção de fontes de conhecimento e seguir as diretrizes de naming para objetos em Pesquisa de IA do Azure . String Não Yes
kind O tipo de fonte de conhecimento, que é remoteSharePoint neste caso. String Não Yes
description Uma descrição da fonte de conhecimento. String Yes Não
encryptionKey Uma chave gerenciada pelo cliente para criptografar informações confidenciais na fonte de conhecimento. Object Yes Não
remoteSharePointParameters Parâmetros específicos para fontes de conhecimento de SharePoint remotas: filterExpression, resourceMetadata e containerTypeId. Object Não Não
filterExpression Uma expressão escrita no SharePoint KQL, que é usada para especificar sites e caminhos para o conteúdo. String Yes Não
resourceMetadata Uma matriz de campos de metadados padrão: autor, nome do arquivo, data de criação, tipo de conteúdo e tipo de arquivo. Array Yes Não
containerTypeId ID do contêiner para a conexão SharePoint Embedded. Quando não especificado, SharePoint Online é usado. String Yes Não

Exemplos de expressão de filtro

Nem todas as propriedades SharePoint têm suporte no filterExpression. Para obter uma lista das propriedades com suporte, confira a Referência da API. Para propriedades que podem ser consultadas, consulte Queryable.

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

Example Expressão de filtro
Filtrar para um único site por ID "filterExpression": "SiteID:\"00aa00aa-bb11-cc22-dd33-44ee44ee44ee\""
Filtrar vários sites por ID "filterExpression": "SiteID:\"00aa00aa-bb11-cc22-dd33-44ee44ee44ee\" OR SiteID:\"11bb11bb-cc22-dd33-ee44-55ff55ff55ff\""
Filtrar para arquivos em um 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 arquivos de um tipo de arquivo específico "filterExpression": "FileExtension:\"docx\" OR FileExtension:\"pdf\" OR FileExtension:\"pptx\""
Filtrar para arquivos de um rótulo de proteção de informações específico "filterExpression": "InformationProtectionLabelId:\"f0ddcc93-d3c0-4993-b5cc-76b0a283e252\""

Atribuir a uma base de dados de conhecimento

Se você estiver satisfeito com a fonte de conhecimento, prossiga para a próxima etapa: especifique a fonte de conhecimento em uma base de dados de conhecimento.

Consultar uma base de dados de conhecimento

Depois que a base de dados de conhecimento for configurada, use a ação retrieve para consultar SharePoint conteúdo. A SharePoint remota tem comportamentos específicos da origem para filtragem de tempo de consulta, formulação de consulta, campos de resposta e imposição de permissões.

Aplicar um filtro KQL no momento da consulta

Você pode passar um FilterExpressionAddOn no KnowledgeSourceParams na solicitação de recuperação para aplicar um filtro KQL no momento da consulta. Se você especificar FilterExpressionAddOn na solicitação de recuperação e um FilterExpression na definição da fonte de conhecimento, os filtros serão combinados com o operador 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
);

Você pode passar um filter_expression_add_on no knowledge_source_params na solicitação de recuperação para aplicar um filtro KQL no momento da consulta. Se você especificar filter_expression_add_on na solicitação de recuperação e um filter_expression na definição da fonte de conhecimento, os filtros serão combinados com o operador 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,
)

Você pode passar um filterExpressionAddOn no knowledgeSourceParams na solicitação de recuperação para aplicar um filtro KQL no momento da consulta. Se você especificar filterExpressionAddOn na solicitação de recuperação e um filterExpression na definição da fonte de conhecimento, os filtros serão combinados com o operador 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

As consultas que fazem perguntas sobre o conteúdo em si são mais eficazes do que perguntas sobre onde um arquivo está localizado ou quando ele foi atualizado pela última vez. Por exemplo, "Where is the keynote doc for Ignite 2024" pode não retornar resultados porque o conteúdo em si não divulga sua localização. Um FilterExpression baseado em metadados é uma abordagem melhor para consultas de localização de arquivo ou específicas de data.

As consultas que fazem perguntas sobre o conteúdo em si são mais eficazes do que perguntas sobre onde um arquivo está localizado ou quando ele foi atualizado pela última vez. Por exemplo, "Where is the keynote doc for Ignite 2024" pode não retornar resultados porque o conteúdo em si não divulga sua localização. Um filter_expression baseado em metadados é uma abordagem melhor para consultas de localização de arquivo ou específicas de data.

As consultas que fazem perguntas sobre o conteúdo em si são mais eficazes do que perguntas sobre onde um arquivo está localizado ou quando ele foi atualizado pela última vez. Por exemplo, "Where is the keynote doc for Ignite 2024" pode não retornar resultados porque o conteúdo em si não divulga sua localização. Um filterExpression baseado em metadados é uma abordagem melhor para consultas de localização de arquivo ou específicas de data.

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

campos de resposta específicos do SharePoint

Os resultados do SharePoint remoto incluem campos que não aparecem para outros tipos de fonte de dados 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 de SharePoint remotas podem impor permissões de SharePoint no momento da consulta. Para habilitar essa filtragem, inclua o token de acesso do usuário final na solicitação de recuperação. O mecanismo de recuperação passa o token para a API de Recuperação de Copilot, que consulta SharePoint e retorna apenas o conteúdo ao qual o usuário tem acesso. Permissões do SharePoint e rótulos de confidencialidade do Microsoft Purview são honrados.

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

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

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

    Uma resposta de exemplo pode ser semelhante à seguinte:

     Knowledge Bases:
       - earth-knowledge-base
       - hotels-sample-knowledge-base
       - my-demo-knowledge-base
    
  2. Obtenha uma definição de base de conhecimento individual para verificar referências de fonte 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);
    

    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 atualize a base de dados de conhecimento para remover a fonte de conhecimento se você tiver 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 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.

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

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

    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 atualize a base de dados de conhecimento para remover a fonte de conhecimento se você tiver 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 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.

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

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

    ### Get a knowledge base definition
    GET {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}?api-version=2025-11-01-preview
    api-key: {{api-key}}
    

    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 atualize a base de dados de conhecimento removendo a fonte de conhecimento se você tiver várias 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}}