Crie uma base de conhecimento no Pesquisa de IA do Azure

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.

Nota

Esta funcionalidade de recuperação agêntica está geralmente disponível na API REST 2026-04-01 através de acesso programático. Os portais Azure e Microsoft Foundry continuam a fornecer acesso exclusivamente em pré-visualização a todas as funcionalidades de recuperação de dados através de agentes. Para orientações sobre migração, consulte Migrar código de recuperação agential para a versão mais recente.

Se optar por usar uma API REST de pré-visualização, pode aceder a funcionalidades que ainda não estão geralmente disponíveis para esta funcionalidade. As funcionalidades de pré-visualização são fornecidas sem um acordo de nível de serviço, não sendo recomendadas para cargas de trabalho de produção. Para mais informações, consulte Termos Suplementares de Utilização para Microsoft Azure Previews.

Importante

Estas funcionalidades e capacidades fazem parte da versão de pré-visualização de 2026-08-01 da API REST. A pré-visualização de 2026-08-01-está licenciada a si como parte da sua subscrição do Azure e está sujeita aos termos aplicáveis a "Pré-visualizações" nos Termos de Produto Microsoft, no Adendo de Proteção de Dados de Produtos e Serviços Microsoft ("DPA") e nos Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

A versão de pré-visualização 2026-08-01-preview suporta ligações a outros serviços Microsoft e a 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.

No Pesquisa de IA do Azure, uma base de conhecimento é um objeto de topo que orquestra a recuperação agentiva. Define quais as fontes de conhecimento a consultar e o comportamento padrão para as operações de recuperação. No momento da consulta, o método de recuperação dirige-se à base de conhecimento para executar o pipeline de recuperação configurado.

Uma base de conhecimento especifica:

  • Uma ou mais fontes de conhecimento que apontam para conteúdos pesquisáveis.

  • Um LLM opcional para planeamento de consultas, síntese de respostas ou resumo de conteúdos web. As tarefas suportadas variam consoante a versão da API e o tipo de fonte de conhecimento.

  • Propriedades personalizadas que controlam o encaminhamento, a seleção de origem e a encriptação dos objetos.

Suporte de utilização

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

Pré-requisitos

  • Pesquisa de IA do Azure em qualquer região que forneça recuperação agentica. Se estiver a usar uma identidade gerida para acesso baseado em funções a modelos implementados, o seu serviço de pesquisa deve estar no nível Básico ou superior.

  • Uma ou mais fontes de conhecimento. Utilize a versão 2026-08-01-preview da API para aceder a fontes de conhecimento em pré-visualização ou para utilizar um LLM com fontes de conhecimento que não sejam da Web. Utilize a versão da API 2026-04-01 para fontes de conhecimento de disponibilidade geral e recuperação extrativa mínima.

  • (Condicional) Azure OpenAI com uma implementação de LLM suportada. É necessário um LLM se a tua base de conhecimento incluir uma fonte de conhecimento web. Para outras fontes de conhecimento, um LLM é opcional na 2026-08-01-preview versão da API e não suportado na 2026-04-01 versão da API.

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

  • Se a base de conhecimento especificar um LLM, o serviço de pesquisa deve ter uma identidade gerida com permissões de usuário de Serviços Cognitivos no recurso Microsoft Foundry.

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

Modelos suportados

Use um dos seguintes LLMs do Azure OpenAI no Foundry Models. O Azure OpenAI determina a disponibilidade regional para a implementação que selecionar. Para instruções de implementação, consulte Deploy Microsoft Foundry Models no portal Foundry.

A família GPT-4 está obsoleta. Para orientações sobre o ciclo de vida dos modelos, datas de aposentação e estado atual, consulte Reforma e depreciação do modelo e Calendário de aposentação do modelo - Microsoft Foundry.

Model Versões de API suportadas
gpt-4o (preterido) 2025-11-01-pré-visualização, 2026-05-01-prévia, 2026-08-01-pré-visualização
gpt-4o-mini (preterido) 2025-11-01-pré-visualização, 2026-05-01-prévia, 2026-08-01-pré-visualização
gpt-4.1 (preterido) 2025-11-01-pré-visualização, 2026-05-01-prévia, 2026-08-01-pré-visualização
gpt-4.1-mini (preterido) 2025-11-01-pré-visualização, 2026-05-01-prévia, 2026-08-01-pré-visualização
gpt-4.1-nano (preterido) 2025-11-01-pré-visualização, 2026-05-01-prévia, 2026-08-01-pré-visualização
gpt-5 2025-11-01-pré-visualização, 2026-05-01-prévia, 2026-08-01-pré-visualização
gpt-5-mini 2025-11-01-pré-visualização, 2026-05-01-prévia, 2026-08-01-pré-visualização
gpt-5-nano 2025-11-01-pré-visualização, 2026-05-01-prévia, 2026-08-01-pré-visualização
gpt-5.1 2026-05-01-pré-visualização, 2026-08-01-preview
gpt-5.2 2026-05-01-pré-visualização, 2026-08-01-preview
gpt-5.4 2026-05-01-pré-visualização, 2026-08-01-preview
gpt-5.4-mini 2026-05-01-pré-visualização, 2026-08-01-preview
gpt-5.4-nano 2026-05-01-pré-visualização, 2026-08-01-preview
gpt-5.5 2026-08-01-preview
gpt-5.6-sol 2026-08-01-preview
gpt-5.6-terra 2026-08-01-preview
gpt-5.6-luna 2026-08-01-preview

Configurar acesso

O Pesquisa de IA do Azure precisa de acesso ao LLM através do Azure OpenAI no Foundry Models. Recomendamos o Microsoft Entra ID para autenticação e acesso baseado em funções para autorização. Para atribuir funções, deve ser Proprietário ou Administrador de Acesso ao Utilizador. Se não conseguires usar funções, utiliza autenticação baseada em chaves.

  1. Ativar o controlo de acesso baseado em funções no Pesquisa de IA do Azure.

  2. Configure Pesquisa de IA do Azure para usar uma identidade gerida.

  3. No seu fornecedor modelo, atribua Utilizador de Serviços Cognitivos à identidade gerida do seu serviço de pesquisa. Se estiveres a testar localmente, atribui o mesmo papel à tua conta de utilizador.

  4. Para testes locais, siga as etapas de Quickstart: Ligar-se sem chaves para iniciar sessão numa subscrição específica e a um tenant específico. Use DefaultAzureCredential em vez de AzureKeyCredential em cada pedido, o que deve ser semelhante ao exemplo seguinte.

    // Authenticate using roles
    using Azure.Search.Documents.Indexes;
    using Azure.Identity;
    
    var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
    
  1. Ativar o controlo de acesso baseado em funções no Pesquisa de IA do Azure.

  2. Configure Pesquisa de IA do Azure para usar uma identidade gerida.

  3. No seu fornecedor modelo, atribua Utilizador de Serviços Cognitivos à identidade gerida do seu serviço de pesquisa. Se estiveres a testar localmente, atribui o mesmo papel à tua conta de utilizador.

  4. Para testes locais, siga as etapas de Quickstart: Ligar-se sem chaves para iniciar sessão numa subscrição específica e a um tenant específico. Use DefaultAzureCredential em vez de AzureKeyCredential em cada pedido, o que deve ser semelhante ao exemplo seguinte.

    # Authenticate using roles
    from azure.identity import DefaultAzureCredential
    index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())
    
  1. Ativar o controlo de acesso baseado em funções no Pesquisa de IA do Azure.

  2. Configure Pesquisa de IA do Azure para usar uma identidade gerida.

  3. No seu fornecedor modelo, atribua Utilizador de Serviços Cognitivos à identidade gerida do seu serviço de pesquisa. Se estiveres a testar localmente, atribui o mesmo papel à tua conta de utilizador.

  4. Para testes locais, siga os passos em Quickstart: Ligue-se sem chaves para obter um token de acesso pessoal para uma subscrição e um locatário específicos. Especifique o seu token de acesso em cada pedido, o que deve ser semelhante ao exemplo seguinte.

    # List indexes using roles
    GET {{search-endpoint}}/indexes?api-version=2026-04-01
    Content-Type: application/json
    Authorization: Bearer {{search-access-token}}
    

Importante

Os excertos de código neste artigo utilizam autenticação sem chave. Para usar uma chave API em vez disso, atualize cada pedido em conformidade. Num pedido que especifica ambas as abordagens, a chave API tem prioridade.

Verifique se existem bases de conhecimento existentes

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

Execute o seguinte código para listar as bases de conhecimento existentes por nome. A lista inclui todas as bases de conhecimento do seu serviço de pesquisa, independentemente da versão da API que usou para as criar.

// List knowledge bases by name
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

# List knowledge bases by name
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient

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

for kb in index_client.list_knowledge_bases():
    print(f"  - {kb.name}")

Referência:SearchIndexClient

# List knowledge bases
GET {{search-endpoint}}/knowledgebases?api-version={{api-version}}&$select=name
Content-Type: application/json
Authorization: Bearer {{search-access-token}}

Referência:Bases de Conhecimento - Lista

Também pode devolver uma única base 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 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

# Get a knowledge base definition
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
import json

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

kb = index_client.get_knowledge_base("<knowledge-base-name>")
print(json.dumps(kb.as_dict(), indent = 2))

Referência:SearchIndexClient

# Get knowledge base
GET {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}}
Content-Type: application/json
Authorization: Bearer {{search-access-token}}

Referência:Bases de Conhecimento - Obter

O JSON seguinte é uma resposta de exemplo para uma base de conhecimento.

{
  "name": "my-kb",
  "description": "A sample knowledge base.",
  "retrievalInstructions": null,
  "answerInstructions": null,
  "outputMode": null,
  "knowledgeSources": [
    {
      "name": "my-blob-ks"
    }
  ],
  "models": [],
  "encryptionKey": null,
  "retrievalReasoningEffort": {
    "kind": "low"
  }
}

Nota

O esquema de resposta reflete a versão da API que usou para criar a base de conhecimento. Uma base de conhecimento criada com a versão da API de disponibilidade geral 2026-04-01 devolve uma definição mais restrita do que a versão 2026-08-01-preview. Para mais informações sobre as propriedades que cada versão suporta, consulte Criar uma base de conhecimento.

Crie uma base de conhecimento

Importante

A 2026-04-01 versão da API aceita apenas tipos de fonte de conhecimento geralmente disponíveis e suporta uma recuperação mínima e extrativa. Não suporta capacidades apenas de pré-visualização, como planeamento de consultas, síntese de respostas e esforço de raciocínio configurável. Para usufruir de todas as funcionalidades, use o 2026-08-01-preview.

Uma base de conhecimento liga uma ou mais fontes de conhecimento (conteúdo pesquisável) a um LLM opcional do Azure OpenAI em Foundry Models. As propriedades que defines estabelecem os valores padrão para a execução da consulta e a resposta de recuperação.

Depois de criar uma base de conhecimento, pode atualizar as suas propriedades a qualquer momento. Se a base de conhecimento estiver em uso, as atualizações entram em vigor na próxima recuperação.

// Create a knowledge base
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.KnowledgeBases.Models;
using Azure.Identity;

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

var aoaiParams = new AzureOpenAIVectorizerParameters
{
    ResourceUri = new Uri(aoaiEndpoint),
    DeploymentName = aoaiGptDeployment,
    ModelName = aoaiGptModel,
};

var knowledgeBase = new KnowledgeBase(
    name: "my-kb",
    knowledgeSources: new KnowledgeSourceReference[]
    {
        new KnowledgeSourceReference("hotels-ks"),
        new KnowledgeSourceReference("earth-at-night-ks")
    }
)
{
    Description = "This knowledge base handles questions directed at two unrelated sample indexes.",
    RetrievalInstructions = "Use the hotels knowledge source for queries about where to stay, otherwise use the earth at night knowledge source.",
    AnswerInstructions = "Answer in two concise sentences.",
    OutputMode = KnowledgeRetrievalOutputMode.AnswerSynthesis,
    Models = { new KnowledgeBaseAzureOpenAIModel(azureOpenAIParameters: aoaiParams) },
    RetrievalReasoningEffort = new KnowledgeRetrievalAutoReasoningEffort()
};

await indexClient.CreateOrUpdateKnowledgeBaseAsync(knowledgeBase);
Console.WriteLine($"Knowledge base '{knowledgeBase.Name}' created or updated successfully.");

Referência:SearchIndexClient, KnowledgeBase

# Create a knowledge base
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
    AzureOpenAIVectorizerParameters,
    KnowledgeBase,
    KnowledgeBaseAzureOpenAIModel,
    KnowledgeSourceReference,
)
from azure.search.documents.knowledgebases.models import (
    KnowledgeRetrievalAutoReasoningEffort,
    KnowledgeRetrievalOutputMode,
)

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

aoai_params = AzureOpenAIVectorizerParameters(
    resource_url = "<aoai-endpoint>",
    deployment_name = "<aoai-gpt-deployment>",
    model_name = "<aoai-gpt-model>",
)

knowledge_base = KnowledgeBase(
    name = "my-kb",
    description = "This knowledge base handles questions directed at two unrelated sample indexes.",
    retrieval_instructions = "Use the hotels knowledge source for queries about where to stay, otherwise use the earth at night knowledge source.",
    answer_instructions = "Answer in two concise sentences.",
    output_mode = KnowledgeRetrievalOutputMode.ANSWER_SYNTHESIS,
    knowledge_sources = [
        KnowledgeSourceReference(name = "hotels-ks"),
        KnowledgeSourceReference(name = "earth-at-night-ks"),
    ],
    models = [KnowledgeBaseAzureOpenAIModel(azure_open_ai_parameters = aoai_params)],
    encryption_key = None,
    retrieval_reasoning_effort = KnowledgeRetrievalAutoReasoningEffort(),
)

index_client.create_or_update_knowledge_base(knowledge_base)
print(f"Knowledge base '{knowledge_base.name}' created or updated successfully.")

Referência:SearchIndexClient, KnowledgeBase

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

{
    "name" : "my-kb",
    "description": "This knowledge base handles questions directed at two unrelated sample indexes.",
    "retrievalInstructions": "Use the hotels knowledge source for queries about where to stay, otherwise use the earth at night knowledge source.",
    "answerInstructions": "Answer in two concise sentences.",
    "outputMode": "answerSynthesis",
    "knowledgeSources": [
        {
            "name": "hotels-ks"
        },
        {
            "name": "earth-at-night-ks"
        }
    ],
    "models" : [
        {
            "kind": "azureOpenAI",
            "azureOpenAIParameters": {
                "resourceUri": "{{aoai-endpoint}}",
                "deploymentId": "gpt-5.4-mini",
                "modelName": "gpt-5.4-mini"
            }
        }
    ],
    "encryptionKey": null,
    "retrievalReasoningEffort": {
        "kind": "auto"
    }
}

Referência:Bases de Conhecimento - Criar ou Atualizar

Configurar limites predefinidos de obtenção (pré-visualização)

A partir da 2026-08-01-preview versão da API, pode usar o objeto opcional retrieveDefaults para armazenar os valores predefinidos de toda a solicitação numa base de conhecimento. Cada propriedade armazenada aplica-se apenas quando um pedido de recuperação omite o campo de pedido correspondente:

Propriedade armazenada Campo de pedido de recuperação
maxRuntimeInSeconds maxRuntimeInSeconds
maxOutputDocuments maxOutputDocuments
maxOutputSizeInTokens maxOutputSize

O orçamento de tokens de saída utiliza nomes de propriedades diferentes quando armazenados e sobrepostos. Defina maxOutputSizeInTokens em retrieveDefaults e use maxOutputSize num pedido de obtenção.

O valor efetivo de cada propriedade é determinado independentemente nesta ordem:

  1. O valor correspondente no pedido de obtenção.
  2. O valor no objeto retrieveDefaults da base de conhecimento.
  3. O serviço é padrão quando a propriedade está ausente em ambos os níveis.

O exemplo seguinte utiliza uma fonte de conhecimento de índice de pesquisa já existente chamada your-knowledge-source. Armazena um orçamento de execução de 45 segundos, um máximo de oito documentos de saída e um orçamento de 12.000 tokens.

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

string searchEndpoint = "<search-endpoint>";

var options = new SearchClientOptions(
    SearchClientOptions.ServiceVersion.V2026_08_01_Preview);
var indexClient = new SearchIndexClient(
    new Uri(searchEndpoint),
    new DefaultAzureCredential(),
    options);

var knowledgeBase = new KnowledgeBase(
    "your-knowledge-base",
    new[] { new KnowledgeSourceReference("your-knowledge-source") })
{
    Description = "A knowledge base for product support content.",
    RetrieveDefaults = new KnowledgeBaseRetrieveDefaults
    {
        MaxRuntimeInSeconds = 45,
        MaxOutputDocuments = 8,
        MaxOutputSizeInTokens = 12000
    }
};

await indexClient.CreateOrUpdateKnowledgeBaseAsync(knowledgeBase);

Referência:SearchIndexClient, SearchClientOptions.ServiceVersion, KnowledgeBase

from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
    KnowledgeBase,
    KnowledgeBaseRetrieveDefaults,
    KnowledgeSourceReference,
)

search_endpoint = "<search-endpoint>"
index_client = SearchIndexClient(
    endpoint=search_endpoint,
    credential=DefaultAzureCredential(),
    api_version="2026-08-01-preview",
)

knowledge_base = KnowledgeBase(
    name="your-knowledge-base",
    description="A knowledge base for product support content.",
    knowledge_sources=[
        KnowledgeSourceReference(name="your-knowledge-source"),
    ],
    retrieve_defaults=KnowledgeBaseRetrieveDefaults(
        max_runtime_in_seconds=45,
        max_output_documents=8,
        max_output_size_in_tokens=12000,
    ),
)

index_client.create_or_update_knowledge_base(knowledge_base)

Referência:SearchIndexClient, KnowledgeBase

PUT {{search-endpoint}}/knowledgebases/your-knowledge-base?api-version=2026-08-01-preview
Content-Type: application/json
Authorization: Bearer {{search-access-token}}

{
  "name": "your-knowledge-base",
  "description": "A knowledge base for product support content.",
  "knowledgeSources": [
    {
      "name": "your-knowledge-source"
    }
  ],
  "retrieveDefaults": {
    "maxRuntimeInSeconds": 45,
    "maxOutputDocuments": 8,
    "maxOutputSizeInTokens": 12000
  }
}

Referência:Bases de Conhecimento - Criar ou Atualizar

Para substituir estes valores guardados por 20 segundos, um documento e 5.000 tokens num pedido, consulte Verificar as predefinições de recuperação da base de conhecimento.

Configurar o CORS para chamadas de recuperação baseadas em navegador (pré-visualização)

Importante

A partilha de recursos entre origens (CORS) permite que aplicações baseadas em navegador solicitem dados diretamente ao serviço. Dependendo da configuração do seu CORS, páginas web externas podem aceder ou invocar o serviço e os seus dados usando o contexto do navegador do utilizador. Este acesso pode criar ameaças à segurança. Ativar o CORS é por sua conta e risco.

A partir da versão 2026-05-01-preview da API, uma base de conhecimento pode definir corsOptions para aplicações baseadas no navegador que chamam diretamente do JavaScript a operação de recuperação. A política CORS identifica quais as origens do navegador que podem enviar pedidos de recuperação para a base de conhecimento.

Quando se omite corsOptions, a base de conhecimento não tem política de CORS e os navegadores bloqueiam pedidos de recuperação entre origens.

O exemplo seguinte cria uma base de conhecimento que permite recuperar pedidos a partir de uma origem de navegador.

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

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

var knowledgeBase = new KnowledgeBase(
    name: "browser-chat-kb",
    knowledgeSources: new[] { new KnowledgeSourceReference("product-docs-ks") }
)
{
    Description = "A knowledge base that allows one browser app origin.",
    CorsOptions = new CorsOptions(new[] { "https://myapp.example.com" })
    {
        MaxAgeInSeconds = 300
    }
};

await indexClient.CreateOrUpdateKnowledgeBaseAsync(knowledgeBase);

Referência:CorsOptions, KnowledgeBase

from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
    CorsOptions,
    KnowledgeBase,
    KnowledgeSourceReference,
)

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

knowledge_base = KnowledgeBase(
    name="browser-chat-kb",
    description="A knowledge base that allows one browser app origin.",
    knowledge_sources=[KnowledgeSourceReference(name="product-docs-ks")],
    cors_options=CorsOptions(
        allowed_origins=["https://myapp.example.com"],
        max_age_in_seconds=300,
    ),
)

index_client.create_or_update_knowledge_base(knowledge_base)

Referência:CorsOptions, KnowledgeBase

PUT {{search-endpoint}}/knowledgebases/browser-chat-kb?api-version=2026-08-01-preview
Content-Type: application/json
Authorization: Bearer {{search-access-token}}

{
  "name": "browser-chat-kb",
  "description": "A knowledge base that allows one browser app origin.",
  "knowledgeSources": [
    {
      "name": "product-docs-ks"
    }
  ],
  "corsOptions": {
    "allowedOrigins": [
      "https://myapp.example.com"
    ],
    "maxAgeInSeconds": 300
  }
}

Consultar uma base de conhecimento

Depois de criares uma base de conhecimento, chama a ação retrieve ou o endpoint MCP para a consultares.

Apagar uma base de conhecimento

Se já não precisar da base de conhecimento ou precisar de a reconstruir no seu serviço de pesquisa, execute o código seguinte para eliminar o objeto.

// Delete a knowledge base
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

# Delete a knowledge base
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient

index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())
index_client.delete_knowledge_base("<knowledge-base-name>")
print(f"Knowledge base deleted successfully.")

Referência:SearchIndexClient

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

Referência:Bases de Conhecimento - Eliminar