Criar uma origem de conhecimento baseada em ficheiro (pré-visualização)

Note

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

Estas funcionalidades fazem parte da API REST preview de 2026-05-01-. A 2026-05-01-preview é-lhe licenciada como parte da sua subscrição do Azure e está sujeita aos termos aplicáveis a "Previews" nos Termos dos Produtos Microsoft, na Adenda sobre a Proteção de Dados dos Produtos e Serviços Microsoft ("DPA") e nos Termos de Utilização Suplementares para as Pré-visualizações do Microsoft Azure.

A pré-visualização 2026-05-01 suporta ligações a outros serviços da Microsoft e serviços de terceiros. A utilização destes serviços está sujeita aos respetivos termos e pode resultar no processamento ou armazenamento de dados fora do limite de conformidade do Azure, bem como no fluxo de dados para o limite de conformidade do Azure.

É sua responsabilidade gerir se os seus dados irão fluir para além dos limites de conformidade e geográficos da sua organização e quaisquer implicações relacionadas, e garantir que as permissões, limites e aprovações apropriadas sejam providenciadas.

És responsável por rever e testar cuidadosamente as aplicações que constróis no contexto dos teus casos de uso específicos e por tomar todas as decisões e personalizações apropriadas. Isto inclui implementar as suas próprias mitigações de IA responsável, como metaprompts, filtros de conteúdo ou outros sistemas de segurança, e assegurar que as suas aplicações cumprem os padrões adequados de qualidade, fiabilidade, segurança e confiabilidade. Para mais informações, consulte a Nota de Transparência Pesquisa de IA do Azure.

Uma fonte de conhecimento de ficheiros (pré-visualização) carrega conjuntos de ficheiros pequenos a médios diretamente para o Pesquisa de IA do Azure para recuperação agential. 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.

As fontes de conhecimento de ficheiros são úteis quando se pretende uma experiência de upload gerida em vez de provisionar Armazenamento do Azure, configurar o acesso e criar um pipeline de indexação sobre um contentor externo. O Pesquisa de IA do Azure processa ficheiros carregados para que o conteúdo extraído possa ser recuperado de uma base de conhecimento.

Uma fonte de conhecimento de ficheiros suporta até 100 ficheiros. Use uma fonte de conhecimento de blob quando os seus ficheiros já estiverem no Armazenamento de Blobs do Azure ou Azure Data Lake Storage Gen2, quando o seu conjunto de ficheiros ultrapassar ou provavelmente ultrapassar 100 ficheiros, ou quando precisar de ingestão programada. Use também uma fonte de conhecimento de blob quando quiser gerir blobs de origem com políticas de gestão do ciclo de vida do Armazenamento de Blobs do Azure ou quando precisar de permissões ao nível do documento (pré-visualização) baseadas em permissões no Armazenamento do Azure.

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 dedicado do Pesquisa de IA do Azure em qualquer região que disponibilize recuperação agêntica. As fontes de conhecimento baseadas em ficheiros não são suportadas em serviços de pesquisa sem servidor. Para mais informações sobre níveis dedicados, consulte Escolher um nível de serviço. Se precisar de utilização paga para além da autorização mensal gratuita, defina a knowledgeRetrieval propriedade de serviço como standard usando a Search Management REST API.

  • Ficheiros num formato suportado.

  • Permissões para criar fontes de conhecimento. Configure a autenticação sem chave com o papel de Contribuidor de Serviço de Pesquisa atribuído à sua conta de utilizador (recomendado) ou use uma chave API.

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

    • Se o recurso Foundry tiver o acesso à rede pública desativado, crie um openai_accountlink privado partilhado do serviço de pesquisa para o recurso Foundry e mantenha ativada a definição Permitir serviços Azure do recurso na lista de serviços confiáveis.
  • O pacote de pré-visualização mais recente Azure.Search.Documents: dotnet add package Azure.Search.Documents --prerelease
  • O pacote de pré-visualização mais recente azure-search-documents: pip install --pre azure-search-documents

Formatos suportados e limites

São suportados os seguintes tipos de ficheiros.

Categoria Extensions
Text .txt, .md, .html, .json, .csv
Código .c, .cs, .cpp.java, , .py, , .js.ts.php.rb.sh
Documentos .pdf, .docx, .pptx, .doc

Os seguintes limites aplicam-se às fontes de conhecimento dos ficheiros.

Limit Value
Tamanho máximo do ficheiro por upload 50 MB
Número máximo de ficheiros por fonte de conhecimento de ficheiros 100

Se configurares a fonte de conhecimento do ficheiro para dividir ou vetorizar conteúdo carregado, também se aplicam limites de modelo e processamento a jusante.

Note

  • Carregar o mesmo nome de ficheiro não substitui um ficheiro existente. Para mais informações, consulte Carregar ficheiros.
  • O índice de pesquisa gerado armazena o conteúdo carregado. Para limites totais de armazenamento por escalão de preço, veja Limites de Serviço.

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 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
api-key: {{api-key}}

Referência:Fontes de Conhecimento - Lista

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

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}}
api-key: {{api-key}}

Referência:Fontes de Conhecimento - Obter

O JSON seguinte é uma resposta de exemplo para uma fonte de conhecimento de ficheiros.

{
  "name": "my-file-ks",
  "kind": "file",
  "description": "A sample file knowledge source.",
  "encryptionKey": null,
  "fileParameters": {
    "ingestionParameters": {
      "contentExtractionMode": "minimal",
      "embeddingModel": {
        "kind": "azureOpenAI",
        "azureOpenAIParameters": {
          "resourceUri": "<REDACTED>",
          "deploymentId": "text-embedding-3-large",
          "modelName": "text-embedding-3-large"
        }
      }
    }
  }
}

Criar uma fonte de conhecimento

Crie uma fonte de conhecimento de ficheiro que especifique o modelo de embedding usado para vetorizar o conteúdo carregado.

using Azure;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;

var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));

var embeddingParams = new AzureOpenAIVectorizerParameters
{
    ResourceUri = new Uri(aoaiEndpoint),
    DeploymentName = aoaiEmbeddingDeployment,
    ModelName = aoaiEmbeddingModel
};

var ingestionParams = new KnowledgeSourceIngestionParameters
{
    ContentExtractionMode = "minimal",
    EmbeddingModel = new KnowledgeSourceAzureOpenAIVectorizer
    {
        AzureOpenAIParameters = embeddingParams
    }
};

var fileParams = new FileKnowledgeSourceParameters
{
    IngestionParameters = ingestionParams
};

var knowledgeSource = new FileKnowledgeSource(
    name: "my-file-ks",
    fileParameters: fileParams
)
{
    Description = "This knowledge source uses directly uploaded product manuals."
};

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

Referência:SearchIndexClient

from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
    AzureOpenAIVectorizerParameters,
    FileKnowledgeSource,
    FileKnowledgeSourceParameters,
)
from azure.search.documents.knowledgebases.models import (
    KnowledgeSourceAzureOpenAIVectorizer,
    KnowledgeSourceIngestionParameters,
)

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

embedding_params = AzureOpenAIVectorizerParameters(
    resource_url="aoai_endpoint",
    deployment_name="aoai_embedding_deployment",
    model_name="aoai_embedding_model",
)

ingestion_params = KnowledgeSourceIngestionParameters(
    content_extraction_mode="minimal",
    embedding_model=KnowledgeSourceAzureOpenAIVectorizer(
        azure_open_ai_parameters=embedding_params
    ),
)

knowledge_source = FileKnowledgeSource(
    name="my-file-ks",
    description="This knowledge source uses directly uploaded product manuals.",
    file_parameters=FileKnowledgeSourceParameters(ingestion_parameters=ingestion_params),
)

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

Referência:SearchIndexClient

PUT {{search-url}}/knowledgesources/my-file-ks?api-version=2026-05-01-preview
api-key: {{api-key}}
Content-Type: application/json
Prefer: return=representation

{
  "name": "my-file-ks",
  "kind": "file",
  "description": "This knowledge source uses directly uploaded product manuals.",
  "encryptionKey": null,
  "fileParameters": {
    "ingestionParameters": {
      "embeddingModel": {
        "kind": "azureOpenAI",
        "azureOpenAIParameters": {
          "resourceUri": "{{aoai-endpoint}}",
          "deploymentId": "{{aoai-embedding-deployment}}",
          "modelName": "{{aoai-embedding-model}}"
        }
      },
      "contentExtractionMode": "minimal"
    }
  }
}

Referência:Fontes de Conhecimento - Criar ou Atualizar

Carregar ficheiros

Depois de existir a fonte de conhecimento, carregue os ficheiros diretamente para ela. Cada upload é uma chamada síncrona: o Pesquisa de IA do Azure extrai conteúdo do ficheiro carregado, divide o conteúdo, cria embeddings quando necessário e prepara o conteúdo extraído para recuperação antes da chamada regressar. Não tens de configurar ou executar um pipeline de ingestão separado.

O fileName indicado é obtido do cabeçalho Content-Disposition: attachment; filename="..." no pedido de carregamento. Chamadas REST e o SDK .NET definem este cabeçalho diretamente, enquanto o SDK Python aceita um parâmetro filename e constrói o cabeçalho automaticamente. Se o cabeçalho não estiver definido, o serviço atribui um fileName gerado automaticamente.

using Azure;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;

var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));

string fileName = "installation-guide.pdf";
byte[] fileBytes = await File.ReadAllBytesAsync(fileName);
string contentDisposition = $"attachment; filename=\"{fileName}\"";

KnowledgeSourceFile uploadedFile = (await indexClient.UploadKnowledgeSourceFileAsync(
    "my-file-ks",
    contentDisposition,
    BinaryData.FromBytes(fileBytes))).Value;

Console.WriteLine($"Uploaded file ID: {uploadedFile.FileId}");

Referência:SearchIndexClient.UploadKnowledgeSourceFileAsync

from pathlib import Path

from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient

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

file_path = Path("installation-guide.pdf")
uploaded_file = index_client.upload_knowledge_source_file(
    "my-file-ks",
    file_path.read_bytes(),
    filename=file_path.name,
)
print(f"Uploaded file ID: {uploaded_file.file_id}")

Referência:SearchIndexClient.upload_knowledge_source_file

POST {{search-url}}/knowledgesources/my-file-ks/files?api-version=2026-05-01-preview
api-key: {{api-key}}
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="installation-guide.pdf"

<binary file content>

Referência:Fontes de Conhecimento - Carregar ficheiro

Note

O carregamento de um ficheiro não substitui um ficheiro existente, mesmo que reutilize o mesmo fileName. Cada upload bem-sucedido cria um novo ficheiro com o seu próprio fileId, pelo que a lista de ficheiros carregados pode conter múltiplas entradas que partilham um fileName.

Para substituir o conteúdo, apague o ficheiro fileId anterior antes de carregar o substituto.

Lista de ficheiros carregados

Lista ficheiros na fonte de conhecimento para inspecionar o conjunto de ficheiros carregado.

using Azure;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;

var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));

await foreach (KnowledgeSourceFile file in indexClient.GetKnowledgeSourceFilesAsync("my-file-ks"))
{
    Console.WriteLine($"{file.FileName} ({file.FileSizeBytes} bytes) error={file.ErrorMessage}");
}

Referência:SearchIndexClient.GetKnowledgeSourceFilesAsync

from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient

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

for file in index_client.list_knowledge_source_files("my-file-ks"):
    print(f"{file.file_name} ({file.file_size_bytes} bytes) error={file.error_message}")

Referência:SearchIndexClient.list_knowledge_source_files

GET {{search-url}}/knowledgesources/my-file-ks/files?api-version=2026-05-01-preview
api-key: {{api-key}}

Referência:Fontes de Conhecimento - Ficheiros de Lista

Uma resposta inclui metadados para cada ficheiro carregado. O errorMessage valor é null quando o upload é processado sem erro.

{
  "value": [
    {
      "fileId": "file-abc123",
      "fileName": "installation-guide.txt",
      "fileSizeBytes": 89,
      "createdAt": "2026-05-07T18:10:00Z",
      "lastUpdatedAt": "2026-05-07T18:14:00.803Z",
      "errorMessage": null
    }
  ]
}

Como os uploads são síncronos, um ficheiro está pronto para recuperação assim que a chamada de upload é bem-sucedida. Se o processamento falhar, a resposta ao carregamento e qualquer entrada posterior na lista incluem um valor não-nullerrorMessage. As causas comuns incluem tipos de ficheiros não suportados, falhas na extração, problemas de acesso ao modelo e limites de quotas.

Se ocorrer uma falha de acesso ao modelo e o recurso Foundry que aloja o modelo de incorporações utilizar rede privada, confirme que a openai_account ligação privada partilhada está aprovada e que a exceção para serviços fidedignos está ativada. Um bypass desativado retorna 403 Public access is disabled. Para detalhes de configuração, veja Pré-requisitos.

Eliminar ficheiros carregados

Apague ficheiros da fonte de conhecimento quando já não quiser que estejam disponíveis para recuperação.

using Azure;
using Azure.Search.Documents.Indexes;

var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));

await indexClient.DeleteKnowledgeSourceFileAsync("my-file-ks", "file-abc123");

Referência:SearchIndexClient.DeleteKnowledgeSourceFileAsync

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_file("my-file-ks", "file-abc123")

Referência:SearchIndexClient.delete_knowledge_source_file

DELETE {{search-url}}/knowledgesources/my-file-ks/files/file-abc123?api-version=2026-05-01-preview
api-key: {{api-key}}

Referência:Fontes de Conhecimento - Apagar ficheiro

Atribuir a uma base de conhecimento

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

Consultar uma base de conhecimento

Depois de a base de conhecimento estar configurada, chame a ação de recuperação ou o endpoint MCP para consultar a fonte de conhecimento.

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

    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.

    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

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

    Referência:SearchIndexClient

  4. Exclua 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

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

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

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

    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
    api-key: {{api-key}}
    

    Referência:Bases de Conhecimento - Lista

    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-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}}
    api-key: {{api-key}}
    

    Referência:Bases de Conhecimento - Obter

    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 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 a exclusão.

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

    Referência:Bases de Conhecimento - Eliminar

  4. Exclua a fonte de conhecimento.

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

    Referência:Fontes de Conhecimento - Eliminar