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.
Note
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
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.
Una fuente de conocimientos indexada de Azure SQL (versión preliminar) ingiere filas de Azure SQL Database o Azure SQL Managed Instance 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.
A diferencia de los orígenes de conocimiento basados en archivos, como Azure Blob Storage y OneLake, cada fila SQL se trata como un documento lógico. Puede controlar el esquema de índice a través de asignaciones de columnas explícitas en lugar de usar un esquema de documento fijo.
Al crear un origen de conocimiento de Azure SQL indexado, especifique un origen de datos SQL, asignaciones de columnas opcionales y modelos opcionales para generar automáticamente los siguientes objetos Búsqueda de Azure AI:
- Origen de datos que representa la tabla o vista SQL.
- Un índice cuyos campos se obtienen de las asociaciones de columnas.
- Conjunto de aptitudes que genera inserciones. El servicio crea un conjunto de aptitudes solo cuando se especifica
embeddingColumns. - Indexador que usa los objetos anteriores para controlar la canalización de ingesta.
El indexador generado se ajusta al indexador Azure SQL, cuyos requisitos previos, directivas de detección de cambios y limitaciones también se aplican a los orígenes de conocimiento de Azure SQL indexados. Para obtener más información, consulte la documentación del indexador Azure SQL.
Soporte para el uso
| Azure Portal | Portal de Microsoft Foundry | SDK de .NET | SDK de Python | SDK de Java | SDK de JavaScript | REST API |
|---|---|---|---|---|---|---|
| ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Prerrequisitos
Un servicio de Búsqueda de Azure AI en cualquier región que proporcione recuperación mediante agentes.
Finalización de los requisitos previos del indexador Azure SQL, incluidos:
Un Azure SQL Database o Azure SQL Managed Instance con una tabla o vista desde la que ingerir datos.
Clave principal con un solo valor en la tabla o vista de origen.
Para las vistas, una columna adecuada para detección de cambios de marca de agua de límite superior. Recomendamos encarecidamente usar una columna
rowversion.
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.
Si especifica
embeddingColumns, el servicio de búsqueda debe tener una identidad administrada con permisos de Cognitive Services User en el recurso de Microsoft Foundry que hospeda el modelo de incrustación.Si establece
networkAccessModeenprivate, complete los siguientes requisitos:Cree y apruebe un enlace privado compartido al servidor SQL con el identificador de grupo
sqlServer. Para Instancia administrada de SQL, use el identificador de grupomanagedInstance.Use la autenticación de SQL o la autenticación de identidad administrada. Para la identidad administrada, conceda a la identidad los roles necesarios de Azure y de base de datos, y use una cadena de conexión con
Database=<database-name>y el identificador de recurso del servidor SQL o de la instancia administrada de SQL. EstablezcaingestionParameters.identitysolo para una identidad asignada por el usuario. Si lo omite, el indexador usa la identidad asignada por el sistema del servicio de búsqueda.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.
El paquete de versión preliminar
Azure.Search.Documentsmás reciente:dotnet add package Azure.Search.Documents --prereleasePara la autenticación sin claves, el
Azure.Identitypaquete:dotnet add package Azure.Identity
El paquete de versión preliminar
azure-search-documentsmás reciente:pip install --pre azure-search-documentsPara la autenticación sin claves, el
azure-identitypaquete:pip install azure-identity
La versión 2026-08-01-preview de la API REST del servicio de búsqueda.
Para la autenticación sin claves, incluya un token de Microsoft Entra ID en el
Authorizationencabezado de cada solicitud HTTP.
Limitaciones y consideraciones
- Una fuente de conocimiento puede ingerir datos de exactamente una tabla o una vista.
- La tabla o vista de origen debe tener una clave principal con un solo valor. No se admiten claves compuestas.
- La clave principal se detecta automáticamente y no se puede invalidar.
-
contentExtractionModeadmite solo"minimal". - No se admite la extracción de imágenes ni la verbalización de imágenes.
- No se admite la sincronización en tiempo real. El indexador generado se basa en una programación.
- No se admite la recuperación de SQL en tiempo real. La fuente de conocimiento está indizada, no es remota.
Preparación del indexador generado
Un Azure SQL origen de conocimiento indexado crea automáticamente un indexador para impulsar la ingesta. Revise los detalles siguientes antes de crear el origen de conocimiento.
Detección de cambios
El indexador generado usa la detección de cambios estándar del indexador de Azure SQL:
Tablas: El servicio aplica el seguimiento de cambios integrado de SQL automáticamente. Habilite el seguimiento de cambios de SQL en la tabla de origen antes de crear el origen de conocimiento.
Vistas: el servicio aplica detección de cambios de marcas de agua de límite superior. Especifique la columna que se va a usar en
highWaterMarkColumn. Se recomienda encarecidamente una columnarowversion. Para detectar eliminaciones en una vista, incluya una columna de marcador de eliminación lógica en la vista, como se describe en Directiva de detección de eliminaciones mediante columna de eliminación lógica.
Autenticación
El indexador generado admite dos opciones de autenticación:
SQL authentication: Proporcione un nombre de usuario y una contraseña en el cadena de conexión.
Autenticación de identidad administrada: Use una identidad administrada asignada por el sistema o asignada por el usuario que tenga Azure RBAC y roles de nivel de base de datos en el recurso SQL.
Para conocer los formatos de cadena de conexión, los requisitos de rol y los pasos de configuración, consulte los requisitos previos del indexador de Azure SQL y Conexión mediante una identidad administrada.
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 Azure SQL indexado.
{
"name": "indexedsqlks",
"kind": "indexedSql",
"description": "Sample indexed Azure SQL knowledge source.",
"encryptionKey": null,
"indexedSqlParameters": {
"connectionString": "<sql-connection-string>",
"tableOrView": "dbo.tbl_hotels",
"contentColumns": [
{ "name": "hotelName", "sourceField": "HotelName", "searchFieldType": "Edm.String" },
{ "name": "description", "sourceField": "Description", "searchFieldType": "Edm.String" }
],
"embeddingColumns": [
{ "name": "descriptionVector", "sourceField": "Description" }
],
"ingestionParameters": {
"contentExtractionMode": "minimal",
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "<aoai-endpoint>",
"deploymentId": "text-embedding-3-large",
"modelName": "text-embedding-3-large"
}
},
"createdResources": {
"datasource": "indexedsqlks-datasource",
"indexer": "indexedsqlks-indexer",
"skillset": "indexedsqlks-skillset",
"index": "indexedsqlks-index"
}
}
}
}
Creación de un origen de conocimiento
Ejecute el código siguiente para crear un origen de conocimiento Azure SQL indexado.
using Azure.Identity;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.KnowledgeBases.Models;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
var embeddingParams = new AzureOpenAIVectorizerParameters
{
ResourceUri = new Uri(aoaiEndpoint),
DeploymentName = aoaiEmbeddingDeployment,
ModelName = aoaiEmbeddingModel
};
var ingestionParams = new KnowledgeSourceIngestionParameters
{
NetworkAccessMode = KnowledgeSourceNetworkAccessMode.Public,
ContentExtractionMode = "minimal",
EmbeddingModel = new KnowledgeSourceAzureOpenAIVectorizer
{
AzureOpenAIParameters = embeddingParams
}
};
var sqlParams = new IndexedSqlKnowledgeSourceParameters(
connectionString: sqlConnectionString,
tableOrView: "dbo.tbl_hotels")
{
ContentColumns =
{
new ContentColumnMapping("hotelName", "HotelName", "Edm.String"),
new ContentColumnMapping("description", "Description", "Edm.String")
},
EmbeddingColumns =
{
new EmbeddingColumnMapping("descriptionVector", "Description")
},
IngestionParameters = ingestionParams
};
var knowledgeSource = new IndexedSqlKnowledgeSource(
name: "indexedsqlks",
indexedSqlParameters: sqlParams)
{
Description = "Indexed Azure SQL knowledge source."
};
await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);
Console.WriteLine($"Knowledge source '{knowledgeSource.Name}' created or updated successfully.");
Reference:SearchIndexClient, IndexedSqlKnowledgeSource
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
AzureOpenAIVectorizerParameters,
ContentColumnMapping,
EmbeddingColumnMapping,
IndexedSqlKnowledgeSource,
IndexedSqlKnowledgeSourceParameters,
)
from azure.search.documents.knowledgebases.models import (
KnowledgeSourceAzureOpenAIVectorizer,
KnowledgeSourceIngestionParameters,
KnowledgeSourceNetworkAccessMode,
)
index_client = SearchIndexClient(endpoint="<search-endpoint>", credential=DefaultAzureCredential())
embedding_params = AzureOpenAIVectorizerParameters(
resource_url="<aoai-endpoint>",
deployment_name="<aoai-embedding-deployment>",
model_name="<aoai-embedding-model>",
)
ingestion_params = KnowledgeSourceIngestionParameters(
network_access_mode=KnowledgeSourceNetworkAccessMode.PUBLIC,
content_extraction_mode="minimal",
embedding_model=KnowledgeSourceAzureOpenAIVectorizer(
azure_open_ai_parameters=embedding_params
),
)
knowledge_source = IndexedSqlKnowledgeSource(
name="indexedsqlks",
description="Indexed Azure SQL knowledge source.",
indexed_sql_parameters=IndexedSqlKnowledgeSourceParameters(
connection_string="Server=tcp:{server}.database.windows.net,1433;Database={db};...;",
table_or_view="dbo.tbl_hotels",
content_columns=[
ContentColumnMapping(
name="hotelName",
source_field="HotelName",
search_field_type="Edm.String",
),
ContentColumnMapping(
name="description",
source_field="Description",
search_field_type="Edm.String",
),
],
embedding_columns=[
EmbeddingColumnMapping(
name="descriptionVector",
source_field="Description",
)
],
ingestion_parameters=ingestion_params,
),
)
index_client.create_or_update_knowledge_source(knowledge_source=knowledge_source)
print(f"Knowledge source '{knowledge_source.name}' created or updated successfully.")
Reference:SearchIndexClient
### Create an indexed Azure SQL knowledge source
PUT {{search-endpoint}}/knowledgesources/indexedsqlks?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
Content-Type: application/json
{
"name": "indexedsqlks",
"kind": "indexedSql",
"description": "Indexed Azure SQL knowledge source.",
"indexedSqlParameters": {
"connectionString": "Server=tcp:{server}.database.windows.net,1433;Database={db};...;",
"tableOrView": "dbo.tbl_hotels",
"contentColumns": [
{ "name": "hotelName", "sourceField": "HotelName", "searchFieldType": "Edm.String" },
{ "name": "description", "sourceField": "Description", "searchFieldType": "Edm.String" }
],
"embeddingColumns": [
{ "name": "descriptionVector", "sourceField": "Description" }
],
"ingestionParameters": {
"networkAccessMode": "public",
"contentExtractionMode": "minimal",
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{aoai-endpoint}}",
"deploymentId": "{{aoai-embedding-deployment}}",
"modelName": "{{aoai-embedding-model}}"
}
}
}
}
}
Referencia:Orígenes de conocimiento: crear o actualizar
Use indexedSqlParameters para identificar la tabla o vista SQL para ingerir y definir las asignaciones de columnas que se convierten en campos del índice generado. Para las vistas, especifica la columna de marca máxima utilizada para la detección de cambios.
Asignación de columnas
Use contentColumns para asignar columnas de texto SQL a campos que se pueden buscar en el índice Búsqueda de Azure AI generado. Cada asignación de columnas de contenido especifica el campo del índice de destino, la columna SQL de origen y el tipo de campo de Búsqueda de Azure AI. Para contentColumns, utilice Edm.String.
Asignación de inserciones
Use embeddingColumns para asignar columnas de texto SQL a campos vectoriales generados. Especifique un modelo de inserción en ingestionParameters al usar columnas de inserción.
Para las fuentes de conocimiento de Azure SQL indexadas, contentExtractionMode debe ser "minimal" porque la ingesta de datos de SQL se basa en filas y no extrae contenido de documentos binarios. La extracción y la verbalización de imágenes no son compatibles, por lo que chatCompletionModel, assetStore, aiServices y la configuración relacionada con las imágenes no tienen ningún efecto.
Reglas de asignación de valores por defecto y de validación
Los valores predeterminados siguientes se aplican al crear un origen de conocimiento Azure SQL indexado.
Si omite
contentColumns, el servicio asigna automáticamente columnas SQL que se pueden representar de forma segura como texto a los campos del índice generado, mediante una asignación de 1:1 dondeEdm.Stringes igualnameasourceField.Si omite
embeddingColumns, el servicio no crea campos vectoriales y no configura una aptitud de inserción.embeddingColumnses independiente decontentColumns. Para que los vectores se correspondan con texto recuperable, incluya la misma columna SQL en ambas matrices.La clave principal de la tabla o vista de origen se detecta automáticamente. No se admiten invalidaciones explícitas y el origen debe tener una clave principal con un solo valor.
Restricción de la ingesta a una red privada
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 Azure SQL indexado. 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 SQL Database o SQL Managed Instance y las dependencias de Azure admitidas, como Azure modelos de 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.
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
}
}
Note
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
Una vez configurada 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.
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