Criar um recurso de conhecimento para índice de pesquisa

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 do índice de pesquisa liga um índice existente do Pesquisa de IA do Azure, incluindo o respetivo texto indexado e vetores, a um pipeline de recuperação com agentes. 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.

Suporte de utilização

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

Pré-requisitos

  • Pacote obrigatório Azure.Search.Documents:

    • Para as funcionalidades 2026-08-01-preview, o pacote de pré-visualização mais recente: dotnet add package Azure.Search.Documents --prerelease

    • Para as funcionalidades de 2026-04-01, o pacote estável mais recente: dotnet add package Azure.Search.Documents

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

  • Pacote obrigatório azure-search-documents:

    • Para as funcionalidades 2026-08-01-preview, o pacote de pré-visualização mais recente: pip install --pre azure-search-documents

    • Para as funcionalidades de 2026-04-01, o pacote estável mais recente: pip install azure-search-documents

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

  • Versão obrigatória da API REST do Serviço de Pesquisa:

  • Para autenticação sem chave, inclua um token Microsoft Entra ID no Authorization cabeçalho de cada pedido HTTP.

Limitations

A recuperação agential não faz com que os pedidos de recuperação respeitem os perfis de pontuação do índice subjacente, incluindo defaultScoringProfile. As respostas de Retrieve não apresentam @search.rerankerBoostedScore.

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 de índice de pesquisa. Note que a fonte de conhecimento especifica um único nome de índice e quais os campos do índice a incluir na consulta.

{
  "name": "my-search-index-ks",
  "kind": "searchIndex",
  "description": "A sample search index knowledge source.",
  "encryptionKey": null,
  "searchIndexParameters": {
    "searchIndexName": "my-search-index",
    "semanticConfigurationName": null,
    "sourceDataFields": [],
    "searchFields": []
  }
}

Criar uma fonte de conhecimento

Execute o código seguinte para criar uma fonte de conhecimento de índice de pesquisa.

Nota

A partir da versão 2026-05-01-preview da API, semanticConfigurationName é opcional nas fontes de conhecimento do índice de pesquisa. Versões anteriores da API ainda requerem semanticConfigurationName. Se a sua fonte de conhecimento precisar de suportar versões mais antigas e mais recentes da API, continue a especificar semanticConfigurationName.

// Create a search index knowledge source
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Identity;

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

var indexKnowledgeSource = new SearchIndexKnowledgeSource(
    name: knowledgeSourceName,
    searchIndexParameters: new SearchIndexKnowledgeSourceParameters(searchIndexName: indexName)
    {
        SearchFields = { new SearchIndexFieldReference(name: "page_chunk") },
        SourceDataFields = { new SearchIndexFieldReference(name: "id"), new SearchIndexFieldReference(name: "page_chunk"), new SearchIndexFieldReference(name: "page_number") }
    }
);

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

Referência:SearchIndexClient, SearchIndexKnowledgeSource

# Create a search index knowledge source
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import SearchIndexKnowledgeSource, SearchIndexKnowledgeSourceParameters, SearchIndexFieldReference

index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())

knowledge_source = SearchIndexKnowledgeSource(
    name = "my-search-index-ks",
    description= "This knowledge source pulls from an existing index designed for agentic retrieval.",
    encryption_key = None,
    search_index_parameters = SearchIndexKnowledgeSourceParameters(
        search_index_name = "search_index_name",
        source_data_fields = [
            SearchIndexFieldReference(name="description"),
            SearchIndexFieldReference(name="category"),
        ],
        search_fields = [
            SearchIndexFieldReference(name="id")
        ],
    )
)

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

Referência:SearchIndexClient

### Create a search index knowledge source
PUT {{search-endpoint}}/knowledgesources/my-search-index-ks?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
Content-Type: application/json

{
    "name": "my-search-index-ks",
    "kind": "searchIndex",
    "description": "This knowledge source pulls from an existing index designed for agentic retrieval.",
    "encryptionKey": null,
    "searchIndexParameters": {
        "searchIndexName": "<index-name>",
        "sourceDataFields": [
          { "name": "description" },
          { "name": "category" }
        ]
    }
}

Referência:Fontes de Conhecimento - Criar ou Atualizar

Persistir um filtro base numa fonte de conhecimento (pré-visualização)

A partir da versão 2026-05-01-preview da API, uma origem de conhecimento de um índice de pesquisa pode manter um filtro predefinido através da propriedade baseFilter. baseFilter Use quando a mesma expressão de filtro deve aplicar-se a todos os pedidos de recuperação que utilizam a fonte de conhecimento, para que os chamadores não tenham de repetir o filtro em todas as chamadas.

O exemplo seguinte armazena um filtro de base numa fonte de conhecimento de um índice de pesquisa.

var knowledgeSource = new SearchIndexKnowledgeSource(
    name: "public-docs-ks",
    searchIndexParameters: new SearchIndexKnowledgeSourceParameters(searchIndexName: "public-docs-index")
    {
        BaseFilter = "isPublished eq true and accessScope eq 'public'"
    }
);

await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);

Referência:SearchIndexKnowledgeSourceParameters

knowledge_source = SearchIndexKnowledgeSource(
    name="public-docs-ks",
    search_index_parameters=SearchIndexKnowledgeSourceParameters(
        search_index_name="public-docs-index",
        base_filter="isPublished eq true and accessScope eq 'public'",
    ),
)

index_client.create_or_update_knowledge_source(knowledge_source)

Referência:SearchIndexKnowledgeSourceParameters

PUT {{search-endpoint}}/knowledgesources/public-docs-ks?api-version=2026-08-01-preview
Content-Type: application/json
Authorization: Bearer {{search-access-token}}

{
  "name": "public-docs-ks",
  "kind": "searchIndex",
  "searchIndexParameters": {
    "searchIndexName": "public-docs-index",
    "baseFilter": "isPublished eq true and accessScope eq 'public'"
  }
}

Referência:Fontes de Conhecimento - Criar ou Atualizar

No momento da recuperação, knowledgeSourceParams.filterAddOn adiciona restrições específicas do pedido ao filtro base armazenado:

var retrievalRequest = new KnowledgeBaseRetrievalRequest();
retrievalRequest.KnowledgeSourceParams.Add(
    new SearchIndexKnowledgeSourceParams("public-docs-ks")
    {
        FilterAddOn = "category eq 'Benefits'"
    }
);
request = KnowledgeBaseRetrievalRequest(
    knowledge_source_params=[
        SearchIndexKnowledgeSourceParams(
            knowledge_source_name="public-docs-ks",
            filter_add_on="category eq 'Benefits'",
        ),
    ],
)
{
  "knowledgeSourceParams": [
    {
      "knowledgeSourceName": "public-docs-ks",
      "kind": "searchIndex",
      "filterAddOn": "category eq 'Benefits'"
    }
  ]
}

O filtro efetivo é composto como:

baseFilter AND filterAddOn

Como os filtros são combinados com AND, filterAddOn só pode estreitar o filtro base persistente. Não pode substituí-lo nem ampliá-lo.

Configurar sugestões de consulta (pré-visualização)

A partir da versão 2026-08-01-preview da API, as sugestões de consulta orientam o modelo de planeamento de consultas para gerar filtros e reforços de classificação com base no pedido do utilizador. Guarde as sugestões predefinidas em searchIndexParameters.queryHints, que pode conter tanto filtros como reforços.

O exemplo seguinte armazena uma sugestão de filtro e um fieldValue boost numa origem de conhecimento para product-docs-index, que tem um campo filtrável productFamily e um campo pesquisável language.

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

var endpoint = new Uri("<search-endpoint>");
var indexClient = new SearchIndexClient(
    endpoint,
    new DefaultAzureCredential());

var queryHints = new SearchIndexKnowledgeSourceQueryHints();
queryHints.Filters.Add(
    new SearchIndexKnowledgeSourceFilterHint(
        "productFamily",
        ["Model-X100", "Model-X200"])
    {
        FilterInstructions =
            "Filter only when the user names a model."
    });

var languageBoost =
    new SearchIndexKnowledgeSourceFieldValueBoost(
        "language",
        2.0);
languageBoost.FieldValues.Add("en-US");
languageBoost.FieldValues.Add("ja-JP");
languageBoost.BoostInstructions =
    "Prefer the language requested by the user.";
queryHints.Boosts.Add(languageBoost);

var knowledgeSource = new SearchIndexKnowledgeSource(
    "product-docs-ks",
    new SearchIndexKnowledgeSourceParameters(
        "product-docs-index")
    {
        QueryHints = queryHints
    });

await indexClient.CreateOrUpdateKnowledgeSourceAsync(
    knowledgeSource);

Referência:SearchIndexKnowledgeSourceParameters

from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
    SearchIndexKnowledgeSource,
    SearchIndexKnowledgeSourceFieldValueBoost,
    SearchIndexKnowledgeSourceFilterHint,
    SearchIndexKnowledgeSourceParameters,
    SearchIndexKnowledgeSourceQueryHints,
)

endpoint = "<search-endpoint>"
index_client = SearchIndexClient(
    endpoint=endpoint,
    credential=DefaultAzureCredential(),
)

query_hints = SearchIndexKnowledgeSourceQueryHints(
    filters=[
        SearchIndexKnowledgeSourceFilterHint(
            field="productFamily",
            field_values=["Model-X100", "Model-X200"],
            filter_instructions=(
                "Filter only when the user names a model."
            ),
        )
    ],
    boosts=[
        SearchIndexKnowledgeSourceFieldValueBoost(
            field="language",
            field_values=["en-US", "ja-JP"],
            boost=2.0,
            boost_instructions=(
                "Prefer the language requested by the user."
            ),
        )
    ],
)

knowledge_source = SearchIndexKnowledgeSource(
    name="product-docs-ks",
    search_index_parameters=SearchIndexKnowledgeSourceParameters(
        search_index_name="product-docs-index",
        query_hints=query_hints,
    ),
)

index_client.create_or_update_knowledge_source(knowledge_source)

Referência:SearchIndexKnowledgeSourceParameters

PUT {{search-endpoint}}/knowledgesources('product-docs-ks')?api-version=2026-08-01-preview
Content-Type: application/json
Authorization: Bearer {{search-access-token}}

{
  "name": "product-docs-ks",
  "kind": "searchIndex",
  "searchIndexParameters": {
    "searchIndexName": "product-docs-index",
    "queryHints": {
      "filters": [{
        "field": "productFamily",
        "fieldValues": ["Model-X100", "Model-X200"],
        "filterInstructions": "Filter only when the user names a model."
      }],
      "boosts": [{
        "kind": "fieldValue",
        "field": "language",
        "fieldValues": ["en-US", "ja-JP"],
        "boost": 2.0,
        "boostInstructions": "Prefer the language requested by the user."
      }]
    }
  }
}

Referência:Fontes de Conhecimento - Criar ou Atualizar

Configure cada dica de acordo com os seguintes requisitos:

Hint Requisitos de campo fieldValues Comportamento Limites de recolha
Filter field deve identificar um campo de índice filtrável. Required. Liste o conjunto exaustivo de valores permitidos. Se o pedido não corresponder a um valor listado, o planeador é instruído a não filtrar nesse campo. Até cinco dicas com campos distintos. Cada valor pode conter até 128 caracteres, e todos os valores de uma dica podem conter até 2.048 caracteres no total.
fieldValue Reforço field deve identificar um campo pesquisável que utilize uma linguagem, padrão ou analisador padrão. Exemplos opcionais. Se os omitir, use boostInstructions para explicar que valor selecionar na solicitação. Até cinco dicas com campos distintos. Cada dica pode conter até 20 valores, com 128 caracteres por valor e 1.024 caracteres no total.
multiWordExpression Reforço Omite field. O índice deve conter pelo menos um campo pesquisável que utilize uma linguagem, padrão ou analisador padrão. Exemplos opcionais de frases específicas de domínio. Uma pista. Pode conter até 20 valores, combinando 128 caracteres por valor e 1.024 caracteres.

Para qualquer tipo de boost, boost é necessário e deve ser um número finito maior que 1.0. Valores mais elevados dão mais influência aos documentos correspondentes na classificação sem excluir outros documentos. Limite cada opcional filterInstructions ou boostInstructions valor a 1.024 caracteres.

Use um multiWordExpression reforço para frases específicas de domínio cujo significado não seja captado pelas palavras individuais. Forneça frases de exemplo em fieldValues, ou omita-as e deixe que boostInstructions e o pedido do utilizador orientem a seleção das frases:

{
  "boosts": [{
    "kind": "multiWordExpression",
    "fieldValues": ["deferred tax", "wash sale"],
    "boost": 3.0,
    "boostInstructions": "Boost domain terms used as complete phrases."
  }]
}

Ao definir sugestões de consulta, tenha em mente os seguintes comportamentos:

  • As dicas são o melhor esforço, por isso o modelo pode não gerar um filtro ou boost para cada pedido. Para as restrições obrigatórias, como limites de autorização, utilize controlo de acesso ao nível do documento ou um filtro determinístico .

  • As sugestões precisam de planeamento de consultas baseado em modelos, por isso não são aplicadas quando o esforço de raciocínio para recuperação é minimal. Noutros níveis de esforço, um modelo da família GPT-4o ou GPT-4.1 devolve HTTP 400 quando o objeto armazenado queryHints contém um filtro. O serviço verifica os filtros armazenados antes de aplicar queryHintOverrides, por isso um override vazio ou apenas boosts não contorna esta validação. Os boosts fieldValue e multiWordExpression armazenados, por si só, não ativam a validação.

  • Os filtros gerados combinam-se com baseFilter e filterAddOn usando AND. Um boost gerado reescreve a consulta na sintaxe completa do Lucene, preservando os termos originais.

  • As dicas de consulta usam valores indexados como base. Eles não configuram analisadores nem ativam a deteção de linguagem. Os language valores nestes exemplos são metadados de índice comuns.

Para substituir as dicas de consulta armazenadas para um único pedido de obtenção e verificar o filtro ou reforço gerado, veja Substituir as dicas de consulta armazenadas durante a consulta (pré-visualização).

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

    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