Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
Importante
Las características, funcionalidades o propiedades marcadas (versión preliminar) no están cubiertas por un contrato de nivel de servicio, no se recomiendan para cargas de trabajo de producción y pueden cambiar o restringirse antes de que estén disponibles con carácter general. Los términos de la versión preliminar Búsqueda de Azure AI se aplican a todas las funciones de vista previa, ya sea independiente o parte de una característica disponible con carácter general.
Una fuente de conocimientos de blobs ingiere contenido de Azure Blob Storage o ADLS Gen2 en una canalización de recuperación de agentes en Búsqueda de Azure AI. Los orígenes de conocimiento se crean de forma independiente, se hace referencia en una base de conocimiento y se usan como datos de base cuando se consulta la base de conocimiento en tiempo de ejecución.
Al crear un origen de conocimiento de blobs, especifique un origen de datos externo, modelos y propiedades para generar automáticamente los siguientes objetos Búsqueda de Azure AI:
- Origen de datos que representa un contenedor de blobs.
- Conjunto de habilidades que fragmenta y, opcionalmente, vectoriza el contenido multimodal del contenedor.
- Índice que almacena contenido enriquecido y cumple los criterios para la recuperación agencial.
- Indexador que emplea los objetos anteriores para impulsar la tubería de indexación y enriquecimiento.
El indexador generado se ajusta al indexador de blobs, cuyos requisitos previos, formatos de documento admitidos y limitaciones también se aplican a los orígenes de conocimiento de blobs. Para más información, consulte la documentación del indexador de blobs y los límites del indexador. Si el conjunto de aptitudes generado llama a un servicio externo, también se aplican los límites de entrada y servicio de esa aptitud.
Nota
Si se especifica el acceso de usuario en el nivel de documento (blob) en Azure Storage, un origen de conocimiento puede transferir los metadatos de permiso al contenido indexado en Búsqueda de Azure AI. Para obtener más información, consulte Metadatos de permisos de ADLS Gen2 (versión preliminar) o ámbitos de RBAC para blobs (versión preliminar).
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
Un servicio de Búsqueda de Azure AI en cualquier región que proporcione recuperación mediante agentes.
Una cuenta de Azure Blob Storage o Azure Data Lake Storage (ADLS) Gen2.
Un contenedor de blobs con tipos de contenido admitidos para el contenido de texto. Para la verbalización de imágenes opcional, el tipo de contenido admitido depende de si el modelo de finalización del chat puede analizar y describir el archivo de imagen.
Si
contentExtractionModeesstandard, use un recurso de Microsoft Foundry en una región admitida por Content Understanding en Foundry Tools con un punto de conexiónhttps://<resource-name>.services.ai.azure.com. El recurso debe tener una implementación de modelo de incrustación y, si habilitas la verbalización de imágenes, una implementación de modelo de chat multimodal.Permiso para crear orígenes de conocimiento. Configure la autenticación sin clave con los roles Colaborador del servicio de búsqueda y Colaborador de datos del índice de búsqueda asignados a su cuenta de usuario (recomendado) o use una clave de API de administrador.
Una identidad administrada para el servicio de búsqueda con Lector de datos de blobs de almacenamiento en el ámbito de la cuenta de almacenamiento de origen y Usuario de Cognitive Services en el recurso de Microsoft Foundry. Si configura un almacén de activos en una cuenta de almacenamiento diferente, asigne también Storage Blob Data Contributor en el ámbito de esa cuenta de almacenamiento. Si los contenedores de origen y de recursos comparten una cuenta, Colaborador de datos de Storage Blob proporciona tanto acceso de lectura al origen como acceso de lectura y escritura al almacén de recursos.
Si establece
networkAccessModeenprivate, complete los siguientes requisitos:Habilite una identidad administrada asignada por el sistema o asignada por el usuario en el servicio de búsqueda, concédale el rol Lector de datos de Storage Blob en la cuenta de almacenamiento y use un
ResourceId=/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>cadena de conexión. Para una identidad asignada por el usuario, establezca tambiéningestionParameters.identity.Cree y apruebe un enlace privado compartido para la cuenta de almacenamiento con el identificador de grupo
blob. Para ADLS Gen2, cree y apruebe ambos enlaces privados compartidos,blobydfs.Cree y apruebe un vínculo privado compartido para cada punto de conexión de modelo protegido. Use el identificador del grupo
openai_accountpara los puntos de conexión de Azure OpenAI yfoundry_accountpara los puntos de conexión del recurso de Foundry.
Paquete
Azure.Search.Documentsrequerido:Para las funciones de
2026-08-01-preview, el paquete preliminar más reciente:dotnet add package Azure.Search.Documents --prereleasePara las funciones de
2026-04-01, el paquete estable más reciente:dotnet add package Azure.Search.Documents
Para la autenticación sin claves, el
Azure.Identitypaquete:dotnet add package Azure.Identity
Paquete
azure-search-documentsrequerido:Para las funciones de
2026-08-01-preview, el paquete preliminar más reciente:pip install --pre azure-search-documentsPara 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-identitypaquete:pip install azure-identity
Versión necesaria de la API REST del servicio search:
Para las funciones en versión preliminar: 2026-08-01-preview
Para las características disponibles con carácter general: 2026-04-01
Para la autenticación sin claves, incluya un token de Microsoft Entra ID en el
Authorizationencabezado de cada solicitud HTTP.
Comprobación de orígenes de conocimiento existentes
Un origen de conocimiento es un objeto reutilizable de nivel superior. Conocer los orígenes de conocimiento existentes resulta útil para reutilizar o asignar nombres a nuevos objetos.
Ejecute el código siguiente para enumerar los orígenes de conocimiento por nombre y 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}");
}
Reference: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})")
Reference:SearchIndexClient
### List knowledge sources by name and type
GET {{search-url}}/knowledgesources?api-version={{api-version}}&$select=name,kind
Authorization: Bearer {{token}}
Reference:Knowledge Sources - List
También puede devolver un único origen de conocimiento por nombre para revisar la definición JSON de este.
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));
Reference: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))
Reference:SearchIndexClient
### Get a knowledge source definition
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}}
Authorization: Bearer {{token}}
Referencia:Orígenes de conocimiento - Obtener
El siguiente json es una respuesta de ejemplo para un origen de conocimiento de blobs.
{
"name": "my-blob-ks",
"kind": "azureBlob",
"description": "A sample blob knowledge source.",
"encryptionKey": null,
"azureBlobParameters": {
"connectionString": "<REDACTED>",
"containerName": "blobcontainer",
"folderPath": null,
"isADLSGen2": false,
"ingestionParameters": {
"disableImageVerbalization": false,
"ingestionPermissionOptions": [],
"contentExtractionMode": "standard",
"identity": null,
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "<REDACTED>",
"deploymentId": "text-embedding-3-large",
"modelName": "text-embedding-3-large",
"authIdentity": null
}
},
"chatCompletionModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "<aoai-endpoint>",
"deploymentId": "gpt-5-mini",
"modelName": "gpt-5-mini",
"authIdentity": null
}
},
"ingestionSchedule": null,
"assetStore": null,
"aiServices": {
"uri": "<aoai-endpoint>",
}
},
"createdResources": {
"datasource": "my-blob-ks-datasource",
"indexer": "my-blob-ks-indexer",
"skillset": "my-blob-ks-skillset",
"index": "my-blob-ks-index"
}
}
}
Nota
La información confidencial se redacta. Los recursos generados aparecen al final de la respuesta.
Creación de un origen de conocimiento
Ejecute el código siguiente para crear un origen de conocimiento de blobs.
// Create a blob knowledge source
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.KnowledgeBases.Models;
using Azure.Search.Documents.Models;
using Azure.Identity;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
var chatCompletionParams = new AzureOpenAIVectorizerParameters
{
ResourceUri = new Uri(aoaiEndpoint),
DeploymentName = aoaiGptDeployment,
ModelName = aoaiGptModel
};
var embeddingParams = new AzureOpenAIVectorizerParameters
{
ResourceUri = new Uri(aoaiEndpoint),
DeploymentName = aoaiEmbeddingDeployment,
ModelName = aoaiEmbeddingModel
};
var ingestionParams = new KnowledgeSourceIngestionParameters
{
NetworkAccessMode = KnowledgeSourceNetworkAccessMode.Public,
DisableImageVerbalization = false,
ChatCompletionModel = new KnowledgeBaseAzureOpenAIModel(azureOpenAIParameters: chatCompletionParams),
EmbeddingModel = new KnowledgeSourceAzureOpenAIVectorizer
{
AzureOpenAIParameters = embeddingParams
},
IngestionPermissionOptions = new List<KnowledgeSourceIngestionPermissionOption>
{
KnowledgeSourceIngestionPermissionOption.UserIds,
KnowledgeSourceIngestionPermissionOption.GroupIds
}
};
var blobParams = new AzureBlobKnowledgeSourceParameters(
connectionString: connectionString,
containerName: containerName
)
{
IsAdlsGen2 = false,
IngestionParameters = ingestionParams
};
var knowledgeSource = new AzureBlobKnowledgeSource(
name: "my-blob-ks",
azureBlobParameters: blobParams
)
{
Description = "This knowledge source pulls from a blob storage container."
};
await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);
Console.WriteLine($"Knowledge source '{knowledgeSource.Name}' created or updated successfully.");
Reference:SearchIndexClient, AzureBlobKnowledgeSource
# Create a blob knowledge source
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import AzureBlobKnowledgeSource, AzureBlobKnowledgeSourceParameters, KnowledgeBaseAzureOpenAIModel, AzureOpenAIVectorizerParameters, KnowledgeSourceAzureOpenAIVectorizer, KnowledgeSourceContentExtractionMode, KnowledgeSourceIngestionParameters
from azure.search.documents.knowledgebases.models import KnowledgeSourceNetworkAccessMode
index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())
knowledge_source = AzureBlobKnowledgeSource(
name = "my-blob-ks",
description = "This knowledge source pulls from a blob storage container.",
encryption_key = None,
azure_blob_parameters = AzureBlobKnowledgeSourceParameters(
connection_string = "blob_connection_string",
container_name = "blob_container_name",
folder_path = None,
is_adls_gen2 = False,
ingestion_parameters = KnowledgeSourceIngestionParameters(
network_access_mode = KnowledgeSourceNetworkAccessMode.PUBLIC,
identity = None,
disable_image_verbalization = False,
chat_completion_model = KnowledgeBaseAzureOpenAIModel(
azure_open_ai_parameters = AzureOpenAIVectorizerParameters(
resource_url = "<aoai-endpoint>",
deployment_name = "<aoai-gpt-deployment>",
model_name = "<aoai-gpt-model>",
)
),
embedding_model = KnowledgeSourceAzureOpenAIVectorizer(
azure_open_ai_parameters=AzureOpenAIVectorizerParameters(
resource_url = "<aoai-endpoint>",
deployment_name = "<aoai-embedding-deployment>",
model_name = "<aoai-embedding-model>",
)
),
content_extraction_mode = KnowledgeSourceContentExtractionMode.MINIMAL,
ingestion_schedule = None,
ingestion_permission_options = ["user_ids", "group_ids"]
)
)
)
index_client.create_or_update_knowledge_source(knowledge_source)
print(f"Knowledge source '{knowledge_source.name}' created or updated successfully.")
Reference:SearchIndexClient
### Create a blob knowledge source
PUT {{search-endpoint}}/knowledgesources/my-blob-ks?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
Content-Type: application/json
{
"name": "my-blob-ks",
"kind": "azureBlob",
"description": "This knowledge source pulls from a blob storage container.",
"encryptionKey": null,
"azureBlobParameters": {
"connectionString": "ResourceId=<storage-resource-id>",
"containerName": "<blob-container-name>",
"folderPath": null,
"isADLSGen2": false,
"ingestionParameters": {
"networkAccessMode": "public",
"identity": null,
"disableImageVerbalization": null,
"chatCompletionModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{aoai-endpoint}}",
"deploymentId": "{{aoai-gpt-deployment}}",
"modelName": "{{aoai-gpt-model}}"
}
},
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{aoai-endpoint}}",
"deploymentId": "{{aoai-embedding-deployment}}",
"modelName": "{{aoai-embedding-model}}"
}
},
"contentExtractionMode": "minimal",
"ingestionSchedule": null,
"ingestionPermissionOptions": ["userIds", "groupIds"]
}
}
}
Referencia:Orígenes de conocimiento: crear o actualizar
Nota
Para aplicar permisos de nivel de documento con ingestionPermissionOptions, use la versión de API 2026-08-01-preview. La versión de la API 2026-04-01 no admite esta característica.
Restricción de la ingesta a una red privada (versión preliminar)
A partir de la versión de la 2026-08-01-preview API, networkAccessMode controla el entorno de red en el que se ejecuta el indexador generado para un origen de conocimiento de blobs. Esta configuración solo afecta a la ingesta y no modifica las solicitudes ni las respuestas de recuperación de la base de conocimiento.
networkAccessMode tiene como valor predeterminado public, lo que conserva el comportamiento de red pública existente. Cuando networkAccessMode es private, el indexador generado se ejecuta en el entorno de ejecución privado. Usa vínculos privados compartidos aprobados para acceder a la conexión de origen de Azure Blob Storage o ADLS Gen2 y las dependencias de Azure compatibles, como Azure modelos openAI y recursos de Microsoft Foundry.
Para configurar y comprobar el acceso a la red privada:
Complete los requisitos previos de la red privada.
Establezca
privateennetworkAccessModeen la solicitud de creación de la fuente de conocimiento. Esta propiedad solo se puede establecer al crearla. Para cambiarlo más adelante, elimine y vuelva a crear el origen de conocimiento.Se puede producir un error en la creación si el nivel de servicio o el entorno de ejecución no admiten la ejecución privada o si no existe un vínculo privado compartido necesario.
Confirme que el indexador
executionEnvironmentgenerado esprivate.Confirme que se aprueba cada vínculo privado compartido necesario y tiene como destino la dependencia correcta. La creación correcta por sí sola no confirma la aprobación ni el destino de los vínculos.
Consulte el estado de la fuente de conocimiento hasta que
lastSynchronizationState.endTimetenga un valor. Confirme queitemsUpdatesFailedes0y compruebe el contenido de origen específico del conector. Se produce un error en la sincronización si no se puede acceder a una dependencia.
Uso de analizadores automáticos por idioma (versión preliminar)
A partir de la 2026-08-01-previewversión de la API, hay disponibles analizadores automáticos por idioma para fuentes de conocimiento de blob, OneLake indexado y SharePoint indexado. Cuando está habilitada, Búsqueda de Azure AI detecta el idioma de cada documento de origen y aplica automáticamente un analizador de idioma Microsoft coincidente. No se especifica un analizador en la definición del origen de conocimiento ni en una consulta.
Para habilitar analizadores automáticos por idioma, establezca contentExtractionMode en minimal y configure ingestionParameters.aiServices en la definición del origen de conocimiento.
Para la autenticación sin claves, omita aiServices.apiKey y asigne el rol de usuario de Cognitive Services en el recurso Microsoft Foundry a la identidad administrada del servicio de búsqueda. Para la autenticación basada en claves, establezca en aiServices.apiKey una clave válida para el recurso Foundry.
Se admiten los siguientes idiomas:
- Inglés
- Japanese
- Francés
- Español
- Alemán
- Neerlandés
- Italian
- Portugués (Brasil)
- Portugués europeo
- Chino simplificado
- Chino tradicional
- Korean
Para el contenido multilingüe, Búsqueda de Azure AI selecciona un analizador en función del idioma detectado predominante. Usa el analizador estándar cuando el idioma no es compatible o no es seguro.
Al habilitar analizadores automáticos por idioma, Búsqueda de Azure AI agrega campos de contenido específicos del idioma para cada idioma admitido al esquema de índice generado, tanto si los datos contienen documentos en esos idiomas como si no. Durante la ingesta, los documentos se dirigen al campo específico del idioma correspondiente según el idioma detectado.
Los campos de lenguaje sin usar no contienen contenido indizado y tienen un impacto mínimo en el almacenamiento, pero siguen formando parte del esquema de índice y cuentan para el límite de campos de índice. Tenga en cuenta los campos adicionales al planear el diseño del índice, el recuento de campos y los requisitos de almacenamiento. Para más información, consulte Límites de índice y Estimación y administración de la capacidad de un servicio de búsqueda.
La detección de idioma se factura después de la asignación gratuita de enriquecimiento con IA. Para obtener más información, consulte Enriquecimientos gratuitos.
Comprobación del estado de la ingesta
Ejecute el código siguiente para supervisar el progreso y el estado de la ingesta, incluidos el tipo de origen de conocimiento y los errores de indexación detallados para los orígenes de conocimiento que generan una canalización del indexador y rellenan un índice de búsqueda.
using Azure.Search.Documents.Indexes;
using System.Text.Json;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));
// Get knowledge source ingestion status
var statusResponse = await indexClient.GetKnowledgeSourceStatusAsync(knowledgeSourceName);
var status = statusResponse.Value;
// Serialize to JSON for display
var json = JsonSerializer.Serialize(status, new JsonSerializerOptions { WriteIndented = true });
Console.WriteLine(json);
Reference:SearchIndexClient
# Check knowledge source ingestion status
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"))
status = index_client.get_knowledge_source_status("knowledge_source_name")
print(json.dumps(status.as_dict(), indent=2))
Reference:SearchIndexClient
### Check knowledge source ingestion status
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}/status?api-version={{api-version}}
Authorization: Bearer {{token}}
Content-Type: application/json
Referencia:Fuentes de conocimiento - Obtener estado
Una respuesta para una solicitud que incluye parámetros de ingesta y que está ingeriendo contenido activamente podría ser similar al ejemplo siguiente.
{
"kind": "azureBlob",
"synchronizationStatus": "active",
"synchronizationInterval": "1d",
"currentSynchronizationState": {
"startTime": "2026-04-10T19:30:00Z",
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
"errors": [
{
"key": "Item id 1",
"docURL": "https://contoso.blob.core.windows.net/contracts/2024/Q4/doc-00023.csv",
"statusCode": 400,
"componentName": "DocumentExtraction.AzureBlob.MyDataSource",
"errorMessage": "Could not read the value of column 'foo' at index '0'.",
"details": "The file could not be parsed.",
"documentationLink": "https://go.microsoft.com/fwlink/?linkid=2049388"
}
]
},
"lastSynchronizationState": {
"status": "partialSuccess",
"startTime": "2026-04-09T19:30:00Z",
"endTime": "2026-04-09T19:40:01Z",
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
"errors": null
},
"statistics": {
"totalSynchronizations": 25,
"averageSynchronizationDuration": "00:15:20",
"averageItemsProcessedPerSynchronization": 500
}
}
Nota
La propiedad kind y la matriz currentSynchronizationState.errors[] con detalles de error a nivel de documento estarán disponibles a partir de la versión de API 2026-04-01. En el caso de versiones anteriores de la API, estos campos no se devuelven. El lastSynchronizationState.status campo también es nuevo en 2026-04-01.
Revisión de los objetos generados
Al crear este origen de conocimiento, Búsqueda de Azure AI genera automáticamente un origen de datos, un conjunto de aptitudes, un indexador y un índice. La respuesta de creación enumera cada objeto en createdResources.
Estos objetos se generan según una plantilla fija y sus nombres se basan en el nombre del origen de conocimiento. No se pueden cambiar los nombres de objeto. Evite editar estos objetos directamente, ya que los cambios pueden introducir errores o incompatibilidades que interrumpen la canalización del indexador.
Puede usar el portal de Azure para validar la creación de objetos. El flujo de trabajo es:
Compruebe si el indexador tiene mensajes correctos o erróneos. Los errores de conexión o cuota aparecen aquí.
Compruebe el origen de datos para comprobar la conexión con el almacén de datos. La conexión utiliza una cadena de conexión o una identidad administrada, según cómo hayas configurado el origen de conocimiento.
Compruebe el conjunto de habilidades para ver cómo se fragmenta su contenido y, opcionalmente, cómo se vectoriza.
Compruebe el índice para ver cómo se indexa y expone el contenido para la recuperación, incluidos los campos que se pueden buscar y filtrar y qué campos almacenan vectores para la búsqueda de similitud. Use el Explorador de búsqueda para ejecutar consultas en el índice generado.
Asignar a una base de conocimiento
Si está satisfecho con el origen de conocimiento, agréguelo a una base de conocimiento.
Consulta de una base de conocimiento
Después de configurar la base de conocimiento, llame a la acción de recuperación o al punto de conexión de MCP para consultar el origen de conocimiento. Elija la configuración que coincida con el escenario.
Aplicación de permisos de nivel de documento (versión preliminar)
Para aplicar permisos de nivel de documento, establezca ingestionPermissionOptions al crear este origen de conocimiento y, a continuación, incluya el token de acceso del usuario en la solicitud de recuperación. Para obtener más información, consulte Aplicar permisos en tiempo de consulta (versión preliminar).
Mostrar imágenes incrustadas en documentos (versión preliminar)
Para mostrar imágenes incrustadas en documentos (como diagramas o escaneos) en las respuestas de síntesis, configure assetStore en este origen de conocimiento y, a continuación, habilite la publicación de imágenes en la base de conocimiento. El servicio de imágenes no es compatible cuando se configura ingestionPermissionOptions. Para obtener más información, consulte Mostrar imágenes incrustadas en documentos en recuperación de agentes (versión preliminar).
Eliminación de un origen de conocimiento
Para poder eliminar un origen de conocimiento, debe eliminar cualquier base de conocimiento que haga referencia a ella o actualizar la definición de la base de conocimiento para quitar la referencia. En el caso de los orígenes de conocimiento que generan una canalización de índice e indexador, también se eliminan todos los objetos generados . Sin embargo, si usó un índice existente para crear un origen de conocimiento, el índice no se eliminará.
Si intenta eliminar un origen de conocimiento que está en uso, se produce un error en la acción y devuelve una lista de bases de conocimiento afectadas.
Para eliminar un origen de conocimiento:
Obtenga una lista de todas las bases de conocimiento del servicio de búsqueda.
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
Una respuesta de ejemplo podría ser similar a la siguiente:
{ "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)", "value": [ { "name": "my-kb" }, { "name": "my-kb-2" } ] }Obtenga una definición de base de conocimiento individual para comprobar si hay referencias de origen de conocimiento.
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
Una respuesta de ejemplo podría ser similar a la siguiente:
{ "Name": "earth-knowledge-base", "KnowledgeSources": [ { "Name": "earth-knowledge-source" } ], "Models": [ {} ], "RetrievalReasoningEffort": {}, "OutputMode": {}, "ETag": "\u00220x8DE278629D782B3\u0022", "EncryptionKey": null, "Description": null, "RetrievalInstructions": null, "AnswerInstructions": null }Elimine la base de conocimiento o, si tiene varios orígenes de conocimiento, actualice la base de conocimiento para quitar el origen. En este ejemplo se muestra la eliminación.
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
Elimine el origen de conocimiento.
await indexClient.DeleteKnowledgeSourceAsync(knowledgeSourceName); System.Console.WriteLine($"Knowledge source '{knowledgeSourceName}' deleted successfully.");Reference:SearchIndexClient
Obtenga una lista de todas las bases de conocimiento del servicio de búsqueda.
# 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}")Reference:SearchIndexClient
Una respuesta de ejemplo podría ser similar a la siguiente:
{ "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)", "value": [ { "name": "my-kb" }, { "name": "my-kb-2" } ] }Obtenga una definición de base de conocimiento individual para comprobar si hay referencias de origen de conocimiento.
# 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)Reference:SearchIndexClient
Una respuesta de ejemplo podría ser similar a la siguiente:
{ "name": "my-kb", "description": null, "retrievalInstructions": null, "answerInstructions": null, "outputMode": null, "knowledgeSources": [ { "name": "my-blob-ks" } ], "models": [], "encryptionKey": null, "retrievalReasoningEffort": { "kind": "low" } }Elimine la base de conocimiento o, si tiene varios orígenes de conocimiento, actualice la base de conocimiento para quitar el origen. En este ejemplo se muestra la eliminación.
# 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.")Reference:SearchIndexClient
Elimine el origen de conocimiento.
# 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.")Reference:SearchIndexClient
Obtenga una lista de todas las bases de conocimiento del servicio de búsqueda.
### Get knowledge bases GET {{search-url}}/knowledgebases?api-version={{api-version}}&$select=name Authorization: Bearer {{token}}Reference:Knowledge Bases - List
Una respuesta de ejemplo podría ser similar a la siguiente:
{ "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)", "value": [ { "name": "my-kb" }, { "name": "my-kb-2" } ] }Obtenga una definición de base de conocimiento individual para comprobar si hay referencias de origen de conocimiento.
### Get a knowledge base definition GET {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}} Authorization: Bearer {{token}}Reference:Bases de Conocimiento - Obtener
Una respuesta de ejemplo podría ser similar a la siguiente:
{ "name": "my-kb", "description": null, "retrievalInstructions": null, "answerInstructions": null, "outputMode": null, "knowledgeSources": [ { "name": "my-blob-ks" } ], "models": [], "encryptionKey": null, "retrievalReasoningEffort": { "kind": "low" } }Elimine la base de conocimiento o, si tiene varios orígenes de conocimiento, actualice la base de conocimiento para quitar el origen. En este ejemplo se muestra la eliminación.
### Delete a knowledge base DELETE {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}} Authorization: Bearer {{token}}Referencia:Bases de Conocimiento - Eliminar
Elimine el origen de conocimiento.
### Delete a knowledge source DELETE {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}} Authorization: Bearer {{token}}Referencia:Orígenes de conocimiento: Eliminar