Creación de una base de conocimiento en Búsqueda de Azure AI

Nota

Búsqueda de Azure AI está disponible a través del portal de Azure, las API REST y los SDK de Azure. También respalda Foundry IQ, la capa de conocimiento administrada que transforma el contenido empresarial en bases de conocimiento reutilizables y compatibles con permisos para agentes en el portal de Microsoft Foundry.

Nota

Esta característica de recuperación agente está disponible con carácter general en la API REST 2026-04-01 a través del acceso mediante programación. El portal de Azure y el portal de Microsoft Foundry continúan proporcionando acceso solo para vista previa a todas las funcionalidades de recuperación basada en agentes. Para obtener instrucciones sobre la migración, consulte Migración del código de recuperación agente a la versión más reciente.

Si decide usar una API REST en versión preliminar, puede acceder a las funcionalidades que aún no están disponibles con carácter general para esta característica. Las características en versión preliminar se proporcionan sin un contrato de nivel de servicio y no se recomiendan para cargas de trabajo de producción. Para más información, consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure.

Importante

Estas características y funcionalidades forman parte de la API REST 2026-08-01-preview. El 2026-08-01-preview tiene licencia para usted como parte de su suscripción de Azure y está sujeto a los términos aplicables a "versiones preliminares" en los términos del producto de Microsoft, el complemento de protección de datos de productos y servicios de Microsoft ("DPA") y los términos de uso complementarios para las versiones preliminares de Microsoft Azure.

La 2026-08-01-preview admite conexiones a otros servicios de Microsoft y de terceros. El uso de estos servicios está sujeto a sus respectivos términos y podría dar lugar a procesamiento o almacenamiento de datos fuera del límite de cumplimiento de Azure, así como a los datos que fluyen a los límites de cumplimiento de Azure.

Es su responsabilidad gestionar si sus datos saldrán fuera de los límites geográficos y de cumplimiento normativo de su organización, así como cualquier implicación relacionada, y garantizar que se hayan establecido los permisos, límites y aprobaciones adecuados.

Es responsable de revisar y probar cuidadosamente las aplicaciones que compile en el contexto de sus casos de uso específicos y de tomar todas las decisiones y personalizaciones adecuadas. Esto incluye implementar sus propias mitigaciones de IA responsables, como metaprompts, filtros de contenido u otros sistemas de seguridad, y garantizar que las aplicaciones cumplan los estándares de calidad, confiabilidad, seguridad y confiabilidad adecuados. Para obtener más información, consulte la nota de transparencia Búsqueda de Azure AI.

En Búsqueda de Azure AI, una base de conocimiento es un objeto de nivel superior que organiza la recuperación agéntica. Define los orígenes de conocimiento que se van a consultar y el comportamiento predeterminado de las operaciones de recuperación. En el momento de la consulta, el método retrieve tiene como destino la base de conocimiento para ejecutar la canalización de recuperación configurada.

Una base de conocimiento especifica:

  • Uno o varios orígenes de conocimiento que apuntan al contenido que se puede buscar.

  • Un LLM opcional para el planeamiento de consultas, la síntesis de respuestas o el resumen de contenido web. Las tareas admitidas varían según la versión de API y el tipo de origen de conocimiento.

  • Propiedades personalizadas que controlan el enrutamiento, la selección de origen y el cifrado de objetos.

Soporte para el uso

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

Requisitos previos

  • Búsqueda de Azure AI en cualquier región que proporcione recuperación agentiva. Si usa una identidad administrada para el acceso basado en roles a los modelos implementados, el servicio de búsqueda debe estar en el nivel Básico o superior.

  • Uno o varios orígenes de conocimiento. Use la versión de la 2026-08-01-preview API para acceder a orígenes de conocimiento en versión preliminar o para usar un LLM con orígenes de conocimiento no web. Use la versión de la 2026-04-01 API para orígenes de conocimiento disponibles con carácter general y recuperación extractiva mínima.

  • (Condicional) Azure OpenAI con una implementación de LLM compatible. Se requiere un LLM si la base de conocimiento incluye un origen de conocimiento web. Para otros orígenes de conocimiento, un LLM es opcional en la versión de la 2026-08-01-preview API y no se admite en la versión de la 2026-04-01 API.

  • Permiso para crear bases de conocimiento. Configure la autenticación sin clave con el rol Colaborador del servicio de búsqueda asignado a su cuenta de usuario (recomendado) o use una clave de API de administrador.

  • Si la base de conocimiento especifica un LLM, el servicio de búsqueda debe tener una identidad administrada con permisos de Cognitive Services User en el recurso Microsoft Foundry.

  • Paquete Azure.Search.Documents requerido:

    • Para las características de 2026-08-01-preview, el paquete de versión preliminar más reciente: dotnet add package Azure.Search.Documents --prerelease

    • Para las características de 2026-04-01, el paquete estable más reciente: dotnet add package Azure.Search.Documents

  • Para la autenticación sin claves, el Azure.Identity paquete: dotnet add package Azure.Identity

  • Paquete azure-search-documents requerido:

    • Para las funciones de 2026-08-01-preview, el paquete preliminar más reciente: pip install --pre azure-search-documents

    • Para las funciones de 2026-04-01, el paquete estable más reciente: pip install azure-search-documents

  • Para la autenticación sin claves, el azure-identity paquete: pip install azure-identity

  • Versión necesaria de la API REST del servicio search:

  • Para la autenticación sin claves, incluya un token de Microsoft Entra ID en el Authorization encabezado de cada solicitud HTTP.

Modelos admitidos

Utilice uno de los siguientes modelos de lenguaje grande (LLM) de Azure OpenAI en Foundry Models. Azure OpenAI determina la disponibilidad regional de la implementación que seleccione. Para obtener instrucciones de implementación, consulte Deploy Microsoft Foundry Models en el portal de Foundry.

La familia GPT-4 está en desuso. Para obtener instrucciones sobre el ciclo de vida del modelo, fechas de retirada y estado actual, consulte Modelo de retirada y desuso y Programación de retirada de modelos: Microsoft Foundry.

Model Versiones de API admitidas
gpt-4o (en desuso) 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-4o-mini (en desuso) 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-4.1 (en desuso) 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-4.1-mini (en desuso) 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-4.1-nano (en desuso) 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-5 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-5-mini 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-5-nano 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-5.1 2026-05-01-preview, 2026-08-01-preview
gpt-5.2 2026-05-01-preview, 2026-08-01-preview
gpt-5.4 2026-05-01-preview, 2026-08-01-preview
gpt-5.4-mini 2026-05-01-preview, 2026-08-01-preview
gpt-5.4-nano 2026-05-01-preview, 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

Configuración del acceso

Búsqueda de Azure AI necesita acceso al LLM desde Azure OpenAI en Foundry Models. Se recomienda Microsoft Entra ID para la autenticación y el acceso basado en roles para la autorización. Para asignar roles, debe ser propietario o administrador de acceso de usuario. Si no puede usar roles, use la autenticación basada en claves en su lugar.

  1. Habilite el control de acceso basado en rol en Búsqueda de Azure AI.

  2. Configure Búsqueda de Azure AI para usar una identidad administrada.

  3. En el proveedor de modelos, asigne Usuario de Cognitive Services a la identidad administrada de su servicio de búsqueda. Si está probando localmente, asigne el mismo rol a la cuenta de usuario.

  4. Para las pruebas locales, siga los pasos descritos en Inicio rápido: Conexión sin claves para iniciar sesión en una suscripción e inquilino específicos. Use DefaultAzureCredential en lugar de AzureKeyCredential en cada solicitud, que debe ser similar al ejemplo siguiente.

    // Authenticate using roles
    using Azure.Search.Documents.Indexes;
    using Azure.Identity;
    
    var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
    
  1. Habilite el control de acceso basado en rol en Búsqueda de Azure AI.

  2. Configure Búsqueda de Azure AI para usar una identidad administrada.

  3. En el proveedor de modelos, asigne Usuario de Cognitive Services a la identidad administrada de su servicio de búsqueda. Si está probando localmente, asigne el mismo rol a la cuenta de usuario.

  4. Para las pruebas locales, siga los pasos descritos en Inicio rápido: Conexión sin claves para iniciar sesión en una suscripción e inquilino específicos. Use DefaultAzureCredential en lugar de AzureKeyCredential en cada solicitud, que debe ser similar al ejemplo siguiente.

    # Authenticate using roles
    from azure.identity import DefaultAzureCredential
    index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())
    
  1. Habilite el control de acceso basado en rol en Búsqueda de Azure AI.

  2. Configure Búsqueda de Azure AI para usar una identidad administrada.

  3. En el proveedor de modelos, asigne Usuario de Cognitive Services a la identidad administrada de su servicio de búsqueda. Si está probando localmente, asigne el mismo rol a la cuenta de usuario.

  4. Para las pruebas locales, siga los pasos descritos en Inicio rápido: Conexión sin claves para obtener un token de acceso personal para una suscripción e inquilino específicos. Especifique el token de acceso en cada solicitud, que debe ser similar al ejemplo siguiente.

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

Importante

Los fragmentos de código de este artículo usan la autenticación sin clave. Para usar una clave de API en su lugar, actualice cada solicitud en consecuencia. En una solicitud que especifica ambos enfoques, la clave de API tiene prioridad.

Comprobación de las bases de conocimiento existentes

Una base de conocimiento es un objeto reutilizable de nivel superior. Conocer las bases de conocimiento existentes resulta útil para reutilizar o asignar nombres a nuevos objetos.

Ejecute el código siguiente para enumerar las bases de conocimiento existentes por nombre. La lista incluye todas las bases de conocimiento del servicio de búsqueda, independientemente de la versión de API que usó para crearlas.

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

Reference: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}")

Reference:SearchIndexClient

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

Reference:Knowledge Bases - List

También puede devolver una base de conocimiento única por su nombre para revisar su definición 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);

Reference: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))

Reference:SearchIndexClient

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

Reference:Bases de Conocimiento - Obtener

El siguiente JSON es una respuesta de ejemplo para una base de conocimiento.

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

El esquema de respuesta refleja la versión de la API que usó para crear la base de conocimiento. Una base de conocimiento creada con la versión de la API 2026-04-01 disponible de forma general devuelve una definición más restringida que la 2026-08-01-preview. Para obtener más información sobre las propiedades que admite cada versión, consulte Creación de una base de conocimiento.

Creación de una base de conocimiento

Importante

La 2026-04-01 versión de la API solo acepta tipos de origen de conocimiento disponibles con carácter general y admite una recuperación extractiva mínima. No admite capacidades disponibles solo en versión preliminar, como la planificación de consultas, la síntesis de respuestas y el nivel de razonamiento configurable. Para disfrutar de todas las funciones, use el 2026-08-01-preview.

Una base de conocimiento conecta uno o varios orígenes de conocimiento (contenido que se puede buscar) a un LLM opcional desde Azure OpenAI en Foundry Models. Las propiedades establecidas establecen los valores predeterminados para la ejecución de consultas y la respuesta de recuperación.

Después de crear una base de conocimiento, puede actualizar sus propiedades en cualquier momento. Si la base de conocimiento está en uso, las actualizaciones surten efecto en la siguiente recuperación.

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

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

Reference: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"
    }
}

Reference:Knowledge Bases: Crear o actualizar

Configuración de límites de recuperación predeterminados (versión preliminar)

A partir de la versión de la 2026-08-01-preview API, puede usar el objeto opcional retrieveDefaults para almacenar los valores predeterminados de toda la solicitud en una base de conocimiento. Cada propiedad almacenada solo se aplica cuando una solicitud de recuperación omite el campo de solicitud correspondiente:

Propiedad almacenada Recuperar campo de solicitud
maxRuntimeInSeconds maxRuntimeInSeconds
maxOutputDocuments maxOutputDocuments
maxOutputSizeInTokens maxOutputSize

El presupuesto de tokens de salida usa distintos nombres de propiedad al almacenarse y al sobrescribirse. Establezca maxOutputSizeInTokens en retrieveDefaultsy use maxOutputSize en una solicitud de recuperación.

El valor efectivo de cada propiedad se determina de forma independiente en este orden:

  1. Valor correspondiente en la solicitud de recuperación.
  2. Valor del objeto de la base retrieveDefaults de conocimiento.
  3. El valor predeterminado del servicio cuando la propiedad no está presente en ninguno de los dos niveles.

En el ejemplo siguiente se usa un origen de conocimiento de índice de búsqueda existente denominado your-knowledge-source. Almacena un presupuesto de tiempo de ejecución de 45 segundos, un máximo de ocho documentos de salida y un presupuesto de salida 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);

Reference: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)

Reference: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
  }
}

Reference:Knowledge Bases: Crear o actualizar

Para invalidar estos valores almacenados con 20 segundos, un documento y 5000 tokens para una solicitud, consulte Comprobación de que la base de conocimiento recupere los valores predeterminados.

Configuración de CORS para llamadas de recuperación basadas en explorador (versión preliminar)

Importante

El uso compartido de recursos entre orígenes (CORS) permite a las aplicaciones basadas en explorador solicitar datos directamente desde el servicio. En función de la configuración de CORS, las páginas web externas pueden tener acceso o invocar el servicio y sus datos mediante el contexto del explorador del usuario. Este acceso puede crear amenazas de seguridad. Habilitar CORS es bajo su propia responsabilidad.

A partir de la versión de la API 2026-05-01-preview, una base de conocimientos puede definir corsOptions para aplicaciones basadas en navegador que invocan directamente desde JavaScript la acción de recuperación. La directiva CORS identifica qué orígenes del explorador pueden enviar solicitudes de recuperación a la base de conocimiento.

Cuando se omite corsOptions, la base de conocimiento no tiene ninguna directiva CORS y los exploradores bloquean las solicitudes de recuperación entre orígenes.

En el ejemplo siguiente se crea una base de conocimiento que permite recuperar solicitudes de un origen del explorador.

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

Reference: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)

Reference: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
  }
}

Consulta de una base de conocimiento

Después de crear una base de conocimiento, usa la acción retrieve o el endpoint de MCP para consultarla.

Eliminación de una base de conocimiento

Si ya no necesita la base de conocimiento o necesita recompilarla en el servicio de búsqueda, ejecute el código siguiente para eliminar el 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.");

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

Reference:SearchIndexClient

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

Referencia:Bases de Conocimiento - Eliminar