Creación de un origen de conocimiento de Work IQ (versión preliminar)

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.

Al conectarse a Work IQ, puede incurrir en costos y es posible que los datos se envíen fuera del límite de cumplimiento de Azure y se procesen según los términos de servicio y las directivas de control de datos aplicables. Es su responsabilidad gestionar si sus datos se transfieren fuera de los límites de cumplimiento normativo y geográficos de su organización, así como cualquier implicación asociada, y garantizar que se establezcan 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. Esta responsabilidad incluye la implementación de sus propias mitigaciones de inteligencia artificial responsable, 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 de Work IQ (versión preliminar) conecta Work IQ a 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.

Work IQ extrae inteligencia organizativa a partir del contenido de Microsoft 365, incluidos los documentos, los correos electrónicos, las reuniones y la actividad en las aplicaciones de Microsoft 365.

A diferencia de los orígenes de conocimiento indexados, los orígenes de conocimiento de Work IQ consultan datos activos directamente en tiempo de recuperación. No se necesita ninguna canalización de ingesta. Las consultas requieren un token de acceso de usuario emitido para el registro de la aplicación de Microsoft Entra. Búsqueda de Azure AI intercambia ese token para un token de Work IQ delegado y llama a Work IQ en nombre del usuario.

Advertencia

En esta versión preliminar, un origen de conocimiento de Work IQ podría usar funcionalidades de Work IQ que realizan acciones, no solo recuperar información. Úselo con cuidado, limite el acceso a aplicaciones y usuarios de confianza y revise los permisos y controles de gobernanza de su escenario antes de habilitarlo.

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

  • El paquete de versión preliminar Azure.Search.Documents más reciente: dotnet add package Azure.Search.Documents --prerelease

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

  • El paquete de versión preliminar azure-search-documents más reciente: pip install --pre azure-search-documents

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

Gobernanza y cumplimiento de datos

Antes de habilitar la recuperación de Work IQ, revise Datos, Privacidad y Seguridad para Microsoft 365 Copilot.

Uso y privacidad de los datos

Los mensajes, las respuestas y los datos a los que se accede a través de Microsoft Graph no se usan para entrenar modelos de lenguaje de base.

Control de acceso

Work IQ aplica los permisos de Microsoft 365 en cada solicitud. La recuperación devuelve solo los datos de la organización a los que el usuario que ha iniciado sesión tiene permiso para acceder.

Residencia de datos y cumplimiento

Revise la documentación de Microsoft 365 para conocer los compromisos de residencia, privacidad, seguridad y cumplimiento de datos que se aplican a su organización y escenario.

Configurar la autenticación de Microsoft Entra

A partir de la versión de la API 2026-08-01-preview, cada fuente de conocimiento de Work IQ utiliza un registro de aplicación de Microsoft Entra propiedad del cliente para la autenticación. En el momento de la consulta, la autenticación funciona de la siguiente manera:

  1. La aplicación cliente inicia sesión en el usuario y envía una aserción de usuario a Búsqueda de Azure AI.
  2. La identidad administrada del servicio de búsqueda se autentica como la aplicación propiedad del cliente mediante una credencial federada.
  3. Búsqueda de Azure AI intercambia la aserción del usuario por un token delegado de Work IQ y llama a Work IQ en nombre del usuario que ha iniciado sesión.

No se almacena ningún secreto de cliente en el origen de conocimiento de Work IQ. Configure la aplicación y sus permisos una vez y, a continuación, cree una credencial federada para cada identidad de servicio de búsqueda que use la aplicación.

Configuración del registro de aplicaciones de Work IQ

Para configurar la aplicación propiedad del cliente que Búsqueda de Azure AI usa para llamar a Work IQ:

  1. Registre una aplicación en el inquilino de Microsoft Entra donde quiera administrar el consentimiento de Work IQ. En Tipos de cuenta admitidos, seleccione Solo cuentas en este directorio organizativo.

  2. En la página Información general del registro de la aplicación, copie el identificador de aplicación (cliente) y el identificador de directorio (inquilino). Necesita el id. de la aplicación para configurar la autenticación de Work IQ y el id. del tenant para iniciar sesión en el tenant que contiene el registro de la aplicación.

  3. En la página Exponer una API del registro de la aplicación, agregue el ámbito delegado necesario denominado exactamente access_as_user. Use este nombre en minúsculas; no sustituya otro nombre de ámbito. El ámbito completo es api://<application-client-id>/access_as_user.

  4. En la página Permisos de API del registro de aplicaciones, seleccione Agregar un permiso>API que usa mi organización.

  5. Busque Work IQ (id. fdcc1f02-fc51-4226-8753-f668596af7f7de aplicación), seleccione Permisos> delegadosWorkIQAgent.Ask y, a continuación, seleccione Agregar permisos.

  6. Haga que un administrador con un rol de consentimiento que aparezca en los requisitos previos seleccione Conceder consentimiento de administrador para [su inquilino] en la misma página. Este consentimiento permite a la aplicación intercambiar una aserción de usuario para un token delegado de Work IQ.

Configuración de la identidad del servicio de búsqueda

Para configurar la identidad que Búsqueda de Azure AI utiliza para autenticarse como su aplicación Work IQ:

  1. Habilite una identidad administrada asignada por el sistema en el servicio de búsqueda. Si no puede usar una identidad asignada por el sistema, configure exactamente una identidad asignada por el usuario. No se admite un servicio de búsqueda con varias identidades asignadas por el usuario y ninguna identidad asignada por el sistema.

  2. En la página Identidad del servicio de búsqueda, copie el identificador de objeto (principal). La credencial federada usa este valor como su subject.

  3. Vaya a Microsoft Entra ID>Información general y copie el identificador de inquilino. La credencial federada usa este valor en su issuer dirección URL.

Creación de una credencial federada

Para crear una credencial federada para la identidad del servicio de búsqueda:

  1. Cree un archivo llamado credential.json. Reemplace <search-service-name>, <search-service-tenant-id>y por <search-service-principal-id> los valores del servicio de búsqueda.

    {
      "name": "<search-service-name>-identity",
      "issuer": "https://login.microsoftonline.com/<search-service-tenant-id>/v2.0",
      "subject": "<search-service-principal-id>",
      "audiences": ["api://AzureADTokenExchange"]
    }
    

    El nombre de la credencial debe ser único en el registro de la aplicación. El valor subject debe coincidir exactamente con el identificador principal de la identidad administrada. Una falta de coincidencia aparece cuando se consulta, no cuando se crea el origen de conocimiento.

  2. Inicie sesión en el CLI de Azure con el tenant que contiene el registro de aplicaciones.

    az login --tenant <app-tenant-id> --allow-no-subscriptions
    
  3. Cree la credencial federada.

    az ad app federated-credential create --id <application-client-id> --parameters credential.json --query id --output tsv
    
  4. Copie la salida del comando. Utilice este valor para federatedCredentialId cuando cree la fuente de conocimiento de Work IQ.

Cada credencial federada confía en un identificador de entidad de seguridad de identidad administrada. Si otra identidad del servicio de búsqueda usa el registro de la aplicación, repita este procedimiento con un nombre de credencial único y los identificadores de inquilino y de entidad de seguridad de esa identidad. Use el identificador de credencial correspondiente en cada origen de conocimiento de Work IQ.

Configuración de la aplicación cliente

Para configurar la aplicación que inicia la sesión de los usuarios y envía solicitudes de recuperación:

  1. En la página Permisos de API de la aplicación cliente, seleccione Agregar unaAPI de permisos >que usa mi organización.

  2. Pegue el identificador de aplicación (cliente) que copió anteriormente en el cuadro de búsqueda y, a continuación, seleccione el registro de la aplicación Work IQ.

  3. Seleccione Permisos> delegadosaccess_as_user y, a continuación, seleccione Agregar permisos.

  4. Complete todos los consentimientos que exija la política de consentimiento del usuario de su inquilino. Si se requiere el consentimiento del administrador, haga clic en Conceder consentimiento del administrador para [su inquilino].

La aplicación cliente ahora puede solicitar una aserción de usuario para el registro de la aplicación Work IQ. El access_as_user permiso no concede a la aplicación cliente acceso directo a Work IQ.

Valores de autenticación

Al crear un origen de conocimiento de Work IQ, utilice los siguientes valores entraAppAuthentication de la configuración de su aplicación de Microsoft Entra. Cada valor que proporcione debe ser un GUID.

Propiedad Obligatorio Value
applicationId Id. de aplicación (cliente) del registro de la aplicación Work IQ.
federatedCredentialId Identificador de objeto de la credencial federada que ha creado en la aplicación. No es el nombre de la credencial y no es el identificador de la entidad de servicio de búsqueda.
tenantId No Identificador de directorio (inquilino) del registro de la aplicación. Omita esta propiedad cuando el registro de aplicaciones y el servicio de búsqueda estén en el mismo inquilino. Si están en inquilinos diferentes, esta propiedad es necesaria.

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 Work IQ.

{
  "name": "my-workiq-ks",
  "kind": "workIQ",
  "description": "A sample Work IQ knowledge source.",
  "workIQParameters": {
    "entraAppAuthentication": {
      "applicationId": "11111111-1111-1111-1111-111111111111",
      "federatedCredentialId": "22222222-2222-2222-2222-222222222222",
      "tenantId": null
    }
  },
  "encryptionKey": null
}

Creación de un origen de conocimiento

Ejecute el código siguiente para crear un origen de conocimiento de Work IQ.

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

Uri searchEndpoint =
    new("https://<search-service-name>.search.windows.net");
var credential = new DefaultAzureCredential();
var indexClient = new SearchIndexClient(searchEndpoint, credential);

var entraAuthentication = new EntraAppAuthentication(
    Guid.Parse("<application-client-id>"),
    Guid.Parse("<federated-credential-id>"));
var knowledgeSource = new WorkIQKnowledgeSource(
    "my-workiq-ks",
    new WorkIQKnowledgeSourceParameters(entraAuthentication))
{
    Description = "A sample Work IQ knowledge source."
};

KnowledgeSource createdSource =
    await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);
Console.WriteLine($"Created knowledge source '{createdSource.Name}'.");

Reference:SearchIndexClient, WorkIQKnowledgeSource

from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
    EntraAppAuthentication,
    WorkIQKnowledgeSource,
    WorkIQKnowledgeSourceParameters,
)

endpoint = "https://<search-service-name>.search.windows.net"
credential = DefaultAzureCredential()

knowledge_source = WorkIQKnowledgeSource(
    name="my-workiq-ks",
    description="A sample Work IQ knowledge source.",
    work_iq_parameters=WorkIQKnowledgeSourceParameters(
        entra_app_authentication=EntraAppAuthentication(
            application_id="<application-client-id>",
            federated_credential_id="<federated-credential-id>",
        )
    ),
)

with SearchIndexClient(endpoint, credential) as index_client:
    created_source = index_client.create_or_update_knowledge_source(
        knowledge_source
    )
print(f"Created knowledge source '{created_source.name}'.")

Reference:SearchIndexClient, WorkIQKnowledgeSource

@search-endpoint = <search-endpoint> // Example: https://my-service.search.windows.net
@search-access-token = <search-access-token> // Run: az account get-access-token --scope https://search.azure.com/.default --query accessToken -o tsv

### Create a Work IQ knowledge source
PUT {{search-endpoint}}/knowledgesources/my-workiq-ks?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
Content-Type: application/json
Prefer: return=representation

{
  "name": "my-workiq-ks",
  "kind": "workIQ",
  "description": "A sample Work IQ knowledge source.",
  "workIQParameters": {
    "entraAppAuthentication": {
      "applicationId": "<application-client-id>",
      "federatedCredentialId": "<federated-credential-id>"
    }
  }
}

Referencia:Orígenes de conocimiento: crear o actualizar

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 contenido de Work IQ. Esta fuente de conocimientos tiene características únicas de respuesta y cumplimiento de permisos en tiempo de consulta.

Importante

El IQ de trabajo puede tardar entre 40 y 60 segundos o más en responder. Para evitar errores de tiempo de espera, establezca maxRuntimeInSeconds en la solicitud de recuperación en 120 o superior.

Aplicar autorizaciones en el momento de la consulta

A partir de la versión de la API 2026-08-01-preview, los orígenes de conocimiento de Work IQ usan un flujo de tokens en nombre de otro (OBO) a través del registro de la aplicación Microsoft Entra propiedad del cliente. Además de autenticar la solicitud de recuperación para Búsqueda de Azure AI, el cliente debe proporcionar una aserción de usuario de audiencia de la aplicación para el usuario que ha iniciado sesión.

La aplicación cliente debe autenticar al usuario y obtener la aserción de usuario. La forma en que adquiere la aserción depende de la plataforma y el idioma de la aplicación. Use Biblioteca de autenticación de Microsoft (MSAL) y el flujo de código de autorización con clave de prueba para intercambio de código (PKCE) para solicitar el alcance exacto api://<application-client-id>/access_as_user.

Antes de enviar la aserción de usuario, confirme que:

  • aud identifica el registro de tu aplicación Work IQ.
  • scp contiene access_as_user.
  • oid y tid identifican al usuario que ha iniciado sesión y al inquilino de la aplicación.

Envíe ambas credenciales en la misma solicitud de recuperación, como se muestra en el ejemplo siguiente. Use un token de Búsqueda de Azure AI o una clave de API para la autenticación del servicio. Pase la aserción de usuario sin procesar en el encabezado x-ms-query-work-iq-source-authorization, no en x-ms-query-source-authorization.

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

Uri searchEndpoint =
    new("https://<search-service-name>.search.windows.net");
string userAssertion = "<user-assertion>";
var credential = new DefaultAzureCredential();
var options = new SearchClientOptions();
options.Retry.NetworkTimeout = TimeSpan.FromSeconds(130);
var retrievalClient = new KnowledgeBaseRetrievalClient(
    searchEndpoint,
    "my-kb",
    credential,
    options);

var request = new KnowledgeBaseRetrievalRequest
{
    IncludeActivity = true,
    MaxRuntimeInSeconds = 120
};
request.Intents.Add(
    new KnowledgeRetrievalSemanticIntent("Find my project status."));
request.KnowledgeSourceParams.Add(
    new WorkIQKnowledgeSourceParams("my-workiq-ks")
    {
        IncludeReferences = true,
        IncludeReferenceSourceData = true
    });

var response = await retrievalClient.RetrieveAsync(
    request,
    querySourceAuthorization: null,
    queryWorkIQSourceAuthorization: userAssertion);
Console.WriteLine(response.Value);

Reference:KnowledgeBaseRetrievalClient, KnowledgeBaseRetrievalRequest

from azure.identity import DefaultAzureCredential
from azure.search.documents.knowledgebases import (
    KnowledgeBaseRetrievalClient,
)
from azure.search.documents.knowledgebases.models import (
    KnowledgeBaseRetrievalRequest,
    KnowledgeRetrievalSemanticIntent,
    WorkIQKnowledgeSourceParams,
)

endpoint = "https://<search-service-name>.search.windows.net"
user_assertion = "<user-assertion>"
credential = DefaultAzureCredential()

request = KnowledgeBaseRetrievalRequest(
    intents=[
        KnowledgeRetrievalSemanticIntent(
            search="Find my project status."
        )
    ],
    knowledge_source_params=[
        WorkIQKnowledgeSourceParams(
            knowledge_source_name="my-workiq-ks",
            include_references=True,
            include_reference_source_data=True,
        )
    ],
    include_activity=True,
    max_runtime_in_seconds=120,
)

with KnowledgeBaseRetrievalClient(
    endpoint,
    credential,
    knowledge_base_name="my-kb",
) as retrieval_client:
    response = retrieval_client.retrieve(
        request,
        query_work_iq_source_authorization=user_assertion,
        timeout=130,
    )

print(response)

Reference:KnowledgeBaseRetrievalClient, KnowledgeBaseRetrievalRequest

@search-endpoint = <search-endpoint>
@search-access-token = <search-access-token>
@user-assertion = <user-assertion>

### Query a knowledge base with a Work IQ knowledge source
POST {{search-endpoint}}/knowledgebases/my-kb/retrieve?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
x-ms-query-work-iq-source-authorization: {{user-assertion}}
Content-Type: application/json

{
  "messages": [{
    "role": "user",
    "content": [{
      "type": "text",
      "text": "Find my project status."
    }]
  }],
  "knowledgeSourceParams": [{
    "knowledgeSourceName": "my-workiq-ks",
    "kind": "workIQ",
    "includeReferences": true,
    "includeReferenceSourceData": true
  }],
  "includeActivity": true,
  "maxRuntimeInSeconds": 120
}

Referencia:Recuperación de Conocimiento - Recuperar

Una solicitud exitosa devuelve 200 OK. Confirme que activity contiene una entrada cuya propiedad type es workIQ y cuyo knowledgeSourceName coincide con su fuente de conocimiento de Work IQ. Confirme también que references contiene una workIQ entrada.

En la tabla siguiente se enumeran los errores de configuración comunes.

Situación Causa
400 Falta el encabezado de autorización de Work IQ o tiene un formato incorrecto, las notificaciones de usuario necesarias están ausentes o el servicio de búsqueda no tiene una configuración de identidad administrada compatible.
206 o 502 El origen de Work IQ falló porque el intercambio de tokens, el consentimiento, el permiso delegado, la credencial federada, la autorización de un servicio posterior o la solicitud de Work IQ fallaron o superaron el tiempo de espera. Revise el error de la actividad de origen. Una respuesta 206 significa que otro origen tuvo éxito. Una respuesta 502 significa que todas las fuentes seleccionadas fallaron o que falló una fuente obligatoria.

Campos de respuesta específicos de WORK IQ

Las fuentes de conocimiento de Work IQ devuelven resultados en la matriz references y diagnósticos de la consulta en la matriz activity. Cada entrada de referencia contiene:

  • sourceData.parts[].text: pasajes de texto fundamentados de Work IQ.
  • sourceData.parts[].data: datos de citas de Work IQ. Las partes de la cita tienen el tipo de medio application/vnd.ms-workiq-reference.

En el ejemplo siguiente se muestra una respuesta de recuperación que contiene una referencia de origen de conocimiento de Work IQ y su registro de actividad correspondiente. Para obtener instrucciones más amplias sobre cómo interpretar las respuestas de recuperación, consulte Revisión de la respuesta.

Tip

Para recibir sourceData para referencias, establezca includeReferenceSourceData en true en la entrada de la fuente de conocimientos dentro de knowledgeSourceParams en la solicitud de recuperación.

{
  "response": [],
  "activity": [
    {
      "type": "workIQ",
      "id": 0,
      "knowledgeSourceName": "my-workiq-ks",
      "queryTime": "2026-08-01T19:25:23.683Z",
      "count": 1,
      "elapsedMs": 1137,
      "workIQArguments": {
        "search": "my query"
      }
    }
  ],
  "references": [
    {
      "type": "workIQ",
      "id": "83dd7d40",
      "activitySource": 0,
      "rerankerScore": 3.5,
      "sourceData": {
        "parts": [
          {
            "text": "Have your VPN username and password ready."
          },
          {
            "data": {
              "1-abc123": {
                "targetLink": "https://contoso.sharepoint.com/doc.docx",
                "isCitedInResponse": true,
                "isSourceFiltered": false
              }
            },
            "mediaType": "application/vnd.ms-workiq-reference"
          }
        ]
      }
    }
  ]
}

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:

  1. 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"
         }
         ]
     }
    
  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
     }
    
  3. 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

  4. Elimine el origen de conocimiento.

    await indexClient.DeleteKnowledgeSourceAsync(knowledgeSourceName);
    System.Console.WriteLine($"Knowledge source '{knowledgeSourceName}' deleted successfully.");
    

    Reference:SearchIndexClient

  1. 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"
         }
         ]
     }
    
  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"
       }
     }
    
  3. 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

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

  1. 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"
         }
         ]
     }
    
  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"
       }
     }
    
  3. 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

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