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.
Importante
Estas características y funcionalidades forman parte de la API REST 2026-05-01-preview. La versión preliminar 2026-05-01-preview se le concede bajo licencia como parte de su suscripción de Azure y está sujeta a los términos aplicables a las "Versiones preliminares" establecidos en los Microsoft Product Terms, el Microsoft Products and Services Data Protection Addendum ("DPA") y los Términos de uso complementarios para las versiones preliminares de Microsoft Azure.
La 2026-05-01-preview admite conexiones a otros servicios de Microsoft y a servicios 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.
Un origen de conocimiento indexado de Azure SQL (versión preliminar) ingiere filas de Azure SQL Database o Azure SQL Managed Instance en una canalización de recuperación agéntica de 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. El esquema de índice se controla por el cliente a través de asignaciones de columnas explícitas en lugar de 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.
Permisos 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 la cuenta de usuario (recomendado) o use una clave de API.
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.
- El paquete de versión preliminar
Azure.Search.Documentsmás reciente:dotnet add package Azure.Search.Documents --prerelease
- El paquete de versión preliminar
azure-search-documentsmás reciente:pip install --pre azure-search-documents
- La versión 2026-05-01-preview de las API REST del servicio de búsqueda.
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 la 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 obtener información sobre los formatos de cadena de conexión, los requisitos de los roles y los pasos de configuración, consulte los requisitos previos del indexador de Azure SQL y Conectarse 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
api-key: {{api-key}}
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}}
api-key: {{api-key}}
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 database 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": "<Foundry resource endpoint URI>",
"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;
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 AzureKeyCredential(apiKey));
var embeddingParams = new AzureOpenAIVectorizerParameters
{
ResourceUri = new Uri(aoaiEndpoint),
DeploymentName = aoaiEmbeddingDeployment,
ModelName = aoaiEmbeddingModel,
ApiKey = aoaiKey
};
var ingestionParams = new KnowledgeSourceIngestionParameters
{
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.core.credentials import AzureKeyCredential
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,
)
index_client = SearchIndexClient(endpoint="search_url", credential=AzureKeyCredential("api_key"))
embedding_params = AzureOpenAIVectorizerParameters(
resource_url="aoai_endpoint",
deployment_name="aoai_embedding_deployment",
model_name="aoai_embedding_model",
api_key="aoai_key",
)
ingestion_params = KnowledgeSourceIngestionParameters(
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-url}}/knowledgesources/indexedsqlks?api-version=2026-05-01-preview
api-key: {{api-key}}
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": {
"contentExtractionMode": "minimal",
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{aoai-endpoint}}",
"deploymentId": "{{aoai-embedding-deployment}}",
"modelName": "{{aoai-embedding-model}}",
"apiKey": "{{aoai-key}}"
}
}
}
}
}
Referencia:Orígenes de conocimiento: crear o actualizar
Propiedades específicas del origen
Las siguientes propiedades se aplican a los orígenes de conocimiento de Azure SQL indexados.
| Propiedad | Description | Tipo | Editable | Obligatorio |
|---|---|---|---|---|
name |
El nombre de la fuente de conocimiento. El nombre debe ser único dentro de la colección de fuentes de conocimiento y seguir las directrices de nomenclatura para objetos de Búsqueda de Azure AI. | String | Sí | Sí |
kind |
El tipo de origen de conocimiento, que es indexedSql en este caso. |
String | No | Sí |
description |
Descripción del origen de conocimiento. | String | Sí | No |
encryptionKey |
Clave administrada por el cliente para cifrar información confidencial tanto en el origen de conocimiento como en los objetos generados. | Objeto | Sí | No |
indexedSqlParameters |
Parámetros específicos de los orígenes de conocimiento de Azure SQL indexados, que se describen en la sección siguiente. | Objeto | Sí |
indexedSqlParameters propiedades
Las siguientes propiedades son específicas del objeto indexedSqlParameters de un origen de conocimiento Azure SQL indexado.
| Propiedad | Description | Tipo | Editable | Obligatorio |
|---|---|---|---|---|
connectionString |
Una cadena de conexión de autenticación SQL o de identidad administrada para Azure SQL Database o Azure SQL Managed Instance. Para conocer los formatos de credenciales admitidos, consulte los requisitos previos del indexador Azure SQL. | String | No | Sí |
tableOrView |
Nombre completo de la tabla o vista SQL que se va a importar, especificado en formato schema.objectName. Una fuente de conocimiento extrae datos exactamente de una sola tabla o de una sola vista. |
String | No | Sí |
highWaterMarkColumn |
Obligatorio cuando tableOrView hace referencia a una vista. Nombre de la columna utilizada para la detección de cambios de marcas de agua de límite superior. Recomendamos encarecidamente usar una columna rowversion. Para obtener más información, consulte Directiva de detección de cambios de marcas de agua de límite superior. |
String | No | Condicional |
contentColumns |
Matriz de asignaciones de columnas que define qué columnas SQL se tratan como contenido de texto que se puede buscar en el índice generado. Cada asignación debe usar Edm.String como searchFieldType. |
Array | No | No |
embeddingColumns |
Matriz de asignaciones de inserción que define qué columnas SQL se usan para generar campos vectoriales. | Array | No | No |
ingestionParameters |
Un subconjunto de los parámetros de ingesta de la fuente de conocimiento estándar. | Objeto | No |
Asignación de columnas
contentColumns usa la siguiente estructura de asignación de columnas.
| Propiedad | Description | Tipo | Editable | Obligatorio |
|---|---|---|---|---|
name |
Nombre del campo tal como aparece en el índice Búsqueda de Azure AI generado. | String | No | Sí |
sourceField |
Columna SQL cuyo valor rellena el campo de destino. | String | No | Sí |
searchFieldType |
El tipo de campo de Búsqueda de Azure AI para el campo generado. Para contentColumns, debe ser Edm.String. |
String | No | Sí |
Asignación de inserciones
embeddingColumns usa la siguiente forma del mapeo de incrustación.
| Propiedad | Description | Tipo | Editable | Obligatorio |
|---|---|---|---|---|
name |
Nombre del campo de vector de destino que el servicio crea en el índice generado. Por ejemplo, podría ser descriptionVector. |
String | No | Sí |
sourceField |
Columna SQL cuyo contenido de texto se envía al modelo de inserción. | String | No | Sí |
ingestionParameters propiedades
En el caso de los orígenes de conocimiento de Azure SQL indexados, el esquema ingestionParameters existente no se modifica, pero solo se aplican las siguientes propiedades.
| Propiedad | Description | Tipo | Editable | Obligatorio |
|---|---|---|---|---|
contentExtractionMode |
Debe ser "minimal". No se admiten otros modos porque Azure SQL ingesta se basa en filas y no extrae contenido de documentos binarios. |
String | No | No |
embeddingModel |
Modelo de inserción de OpenAI Azure usado para vectorizar las columnas enumeradas en embeddingColumns. Solo se requiere cuando embeddingColumns se especifica. |
Objeto | Solo apiKey y deploymentId son editables |
Condicional |
identity |
Una identidad administrada asignada por el usuario opcional que se usa para autenticarse en Azure SQL y Azure OpenAI. | Objeto | Sí | No |
ingestionSchedule |
Una programación opcional que controla la frecuencia con la que se ejecuta el indexador generado. | Objeto | Sí | No |
La extracción de imágenes y la verbalización de imágenes no se admiten para orígenes de conocimiento de Azure SQL indexados, por lo que chatCompletionModel, assetStore, aiServices y la configuración relacionada con la imagen 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.
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}}
api-key: {{api-key}}
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 api-key: {{api-key}}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}} api-key: {{api-key}}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}} api-key: {{api-key}}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}} api-key: {{api-key}}Referencia:Orígenes de conocimiento: Eliminar