Créer une source de connaissances Work IQ (version préliminaire)

Note

Recherche Azure AI est disponible via le portail Azure, les API REST et les SDK Azure. Il sous-tend également Foundry IQ, la couche de connaissances managée qui transforme le contenu d’entreprise en bases de connaissances réutilisables et prenant en charge les autorisations pour les agents dans le portail Microsoft Foundry.

Important

Ces fonctionnalités font partie de l’API REST 2026-08-01-preview. La préversion 2026-08-01 vous est concédée sous licence dans le cadre de votre abonnement Azure et est soumise aux conditions applicables aux « préversions » dans les Microsoft Conditions d’utilisation du produit, l’addenda sur la protection des données des produits et des services Microsoft (« DPA ») et les conditions d’utilisation supplémentaires pour les préversions Microsoft Azure.

La préversion 2026-08-01 prend en charge les connexions à d’autres services Microsoft et à des services tiers. L’utilisation de ces services est soumise à leurs conditions respectives et peut entraîner le traitement ou le stockage des données en dehors de la limite de conformité Azure, ainsi que des données entrant dans la limite de conformité Azure.

Lorsque vous vous connectez à Work IQ, vous risquez d’entraîner des coûts et des données peuvent être envoyées en dehors de la limite de conformité Azure et traitées en fonction des conditions de service et des stratégies de gestion des données applicables. Il est de votre responsabilité de gérer si vos flux de données se trouvent en dehors des limites géographiques et de conformité de votre organisation et de toutes les implications connexes, et que les autorisations, les limites et les approbations appropriées sont approvisionnées.

Vous êtes responsable de l’examen et du test des applications que vous créez dans le contexte de vos cas d’usage spécifiques et de prendre toutes les décisions et personnalisations appropriées. Cette responsabilité inclut l’implémentation de vos propres atténuations d’IA responsables, telles que les métaprompts, les filtres de contenu ou d’autres systèmes de sécurité, et la garantie que vos applications répondent aux normes de qualité, de fiabilité, de sécurité et de fiabilité appropriées. Pour plus d’informations, consultez la note de transparence Recherche Azure AI.

Une source de connaissances Work IQ (préversion) connecte Work IQ à un pipeline de récupération agentique dans Recherche Azure AI. Les sources de connaissances sont créées indépendamment, référencées dans une base de connaissances et utilisées comme données de base lorsque la base de connaissances est interrogée lors de l’exécution.

Work IQ expose l’intelligence organisationnelle à partir de votre contenu Microsoft 365, y compris les documents, les e-mails, les réunions et l’activité dans les applications Microsoft 365.

Contrairement aux sources de connaissances indexées, les sources de connaissances Work IQ interrogent directement les données actives au moment de la récupération. Aucun pipeline d’ingestion n’est nécessaire. Les requêtes nécessitent un jeton d’accès utilisateur émis pour votre inscription d’application Microsoft Entra. Recherche Azure AI échange ce jeton pour un jeton Work IQ délégué et appelle Work IQ au nom de l'utilisateur.

Warning

Dans cette préversion, une source de connaissances Work IQ peut utiliser des fonctionnalités Work IQ qui effectuent des actions, et non seulement récupérer des informations. Utilisez-le avec soin, limitez l’accès aux applications et utilisateurs approuvés, puis passez en revue les autorisations et les contrôles de gouvernance de votre scénario avant de l’activer.

Assistance à l'utilisation

portail Azure portail Microsoft Foundry Kit de développement logiciel (SDK) .NET Kit de développement logiciel (SDK) Python SDK Java SDK JavaScript REST API
✔️ ✔️ ✔️

Prerequisites

  • Le dernier paquet Azure.Search.Documents (préversion) : dotnet add package Azure.Search.Documents --prerelease

  • Pour l’authentification sans clé, le Azure.Identity package : dotnet add package Azure.Identity

  • Le dernier paquet azure-search-documents (préversion) : pip install --pre azure-search-documents

  • Pour l’authentification sans clé, le azure-identity package : pip install azure-identity

Gouvernance et conformité des données

Avant d’activer la récupération Work IQ, passez en revue les données, la confidentialité et la sécurité pour Microsoft 365 Copilot.

Utilisation et confidentialité des données

Les invites, les réponses et les données accessibles via Microsoft Graph ne sont pas utilisées pour former des modèles de langage de base.

Contrôle d’accès

Work IQ applique les autorisations Microsoft 365 à chaque requête. La récupération retourne uniquement les données organisationnelles auxquelles l’utilisateur connecté a l’autorisation d’accéder.

Résidence et conformité des données

Passez en revue la documentation Microsoft 365 sur la résidence des données, la confidentialité, la sécurité et les engagements de conformité qui s’appliquent à votre organisation et à votre scénario.

Configurer l’authentification Microsoft Entra

À compter de la version de l’API2026-08-01-preview, chaque source de connaissances Work IQ utilise une inscription d’application Microsoft Entra appartenant au client pour l’authentification. Au moment de la requête, l’authentification fonctionne comme suit :

  1. L’application cliente connecte l’utilisateur et envoie une assertion utilisateur à Recherche Azure AI.
  2. L’identité managée du service de recherche s’authentifie en tant qu’application appartenant au client via des informations d’identification fédérées.
  3. Recherche Azure AI échange l’assertion de l’utilisateur pour un jeton Work IQ délégué et appelle Work IQ pour le compte de l’utilisateur connecté.

Aucun secret client n’est stocké dans la source de connaissances Work IQ. Configurez l’application et ses autorisations une seule fois, puis créez des informations d’identification fédérées pour chaque identité de service de recherche qui utilise l’application.

Configurer l’inscription de l’application Work IQ

Pour configurer l’application appartenant au client que Recherche Azure AI utilise pour appeler Work IQ :

  1. Enregistrez une application dans le locataire Microsoft Entra où vous souhaitez gérer le consentement pour Work IQ. Pour les types de comptes pris en charge, sélectionnez Comptes dans cet annuaire organisationnel uniquement.

  2. Sur la page Vue d’ensemble de l’inscription de l’application, copiez l’ID d’application (client) et l’ID d’annuaire (locataire). Vous avez besoin de l’ID d’application pour configurer l’authentification Work IQ et de l’ID du locataire pour vous connecter au locataire contenant l’enregistrement de l’application.

  3. Dans la page Exposer une API de l’inscription de l’application, ajoutez l’étendue déléguée requise nommée exactement access_as_user. Utilisez ce nom en minuscules ; ne le remplacez pas par un autre nom de portée. L’étendue complète est api://<application-client-id>/access_as_user.

  4. Dans la page Autorisations d’API de l’inscription d’application, sélectionnez Ajouter une API d’autorisation>que mon organisation utilise.

  5. Recherchez Work IQ (ID d’applicationfdcc1f02-fc51-4226-8753-f668596af7f7), sélectionnez Autorisations> déléguéesWorkIQAgent.Ask, puis sélectionnez Ajouter des autorisations.

  6. Demandez à un administrateur disposant d’un rôle autorisé à accorder le consentement, indiqué dans les prérequis, de sélectionner Accorder le consentement de l’administrateur pour [votre locataire] sur la même page. Ce consentement permet à l’application d’échanger une assertion utilisateur pour un jeton Work IQ délégué.

Configurer l’identité du service de recherche

Pour configurer l’identité que Recherche Azure AI utilise pour s’authentifier en tant qu’application Work IQ :

  1. Activez une identité managée affectée par le système sur votre service de recherche. Si vous ne pouvez pas utiliser une identité affectée par le système, configurez exactement une identité affectée par l’utilisateur. Un service de recherche avec plusieurs identités attribuées par l’utilisateur et aucune identité attribuée par le système n’est pas pris en charge.

  2. Dans la page Identité du service de recherche, copiez l’ID d’objet (principal). Les informations d’identification fédérées utilisent cette valeur comme subject.

  3. Accédez à Microsoft Entra ID>Overview et copiez l’ID de locataire. L’information d’identification fédérée utilise cette valeur dans l’URL issuer correspondante.

Créer des informations d’identification fédérées

Pour créer des informations d’identification fédérées pour l’identité du service de recherche :

  1. Créez un fichier nommé credential.json. Remplacez <search-service-name>, <search-service-tenant-id>et <search-service-principal-id> par des valeurs pour votre service de recherche.

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

    Le nom des informations d’identification doit être unique sur l’inscription de l’application. La valeur subject doit correspondre exactement à l’identifiant du principal de l’identité managée. Une incompatibilité s’affiche lorsque vous interrogez, et non lorsque vous créez la source de connaissances.

  2. Connectez-vous au Azure CLI avec le locataire qui contient l’inscription de l’application.

    az login --tenant <app-tenant-id> --allow-no-subscriptions
    
  3. Créez les informations d’identification fédérées.

    az ad app federated-credential create --id <application-client-id> --parameters credential.json --query id --output tsv
    
  4. Copiez la sortie de la commande. Utilisez cette valeur pour federatedCredentialId lorsque vous créez la source de connaissances Work IQ.

Chaque information d’identification fédérée fait confiance à l’ID principal d’une identité managée. Si une autre identité d’un service de recherche utilise l’enregistrement d’application, répétez cette procédure avec un nom d’identification unique ainsi que les ID de locataire et de principal de service de cette identité. Utilisez l’ID d’informations d’identification correspondant sur chaque source de connaissances Work IQ.

Configurer l’application cliente

Pour configurer l’application qui connecte les utilisateurs et envoie des demandes de récupération :

  1. Dans la page Autorisations d’API de l’application cliente, sélectionnez Ajouter une API d’autorisation> quemon organisation utilise.

  2. Collez l’ID d’application (client) que vous avez copié précédemment dans la zone de recherche, puis sélectionnez l’inscription de l’application Work IQ.

  3. Sélectionnez Autorisations> déléguéesaccess_as_user, puis sélectionnez Ajouter des autorisations.

  4. Accordez tous les consentements requis par la stratégie de consentement utilisateur de votre locataire. Si le consentement de l’administrateur est requis, demandez à un administrateur de sélectionner Accorder le consentement administrateur pour [votre locataire].

L’application cliente peut désormais demander une assertion utilisateur pour l’inscription de l’application Work IQ. L’autorisation access_as_user n’accorde pas à l’application cliente un accès direct à Work IQ.

Valeurs d’authentification

Lorsque vous créez une source de connaissances Work IQ, utilisez les valeurs suivantes entraAppAuthentication à partir de la configuration de votre application Microsoft Entra. Chaque valeur que vous fournissez doit être un GUID.

Propriété Required Value
applicationId Oui ID d’application (client) de votre inscription d’application Work IQ.
federatedCredentialId Oui ID d’objet des informations d’identification fédérées que vous avez créées sur l’application. Ce n’est pas le nom des informations d’identification et n’est pas l’ID du principal du service de recherche.
tenantId Non ID d’annuaire (locataire) de l’enregistrement de l’application. Omettez cette propriété lorsque l’enregistrement de l’application et le service de recherche se trouvent dans le même locataire. S’ils appartiennent à des tenants différents, cette propriété est obligatoire.

Rechercher les sources de connaissances existantes

Une source de connaissances est un objet réutilisable de niveau supérieur. Connaître les sources de connaissances existantes est utile pour réutiliser ou nommer de nouveaux objets.

Exécutez le code suivant pour répertorier les sources de connaissances par nom et par type.

// 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}}

Référence :Sources de connaissances - Liste

Vous pouvez également retourner une source de connaissances unique par nom pour passer en revue sa définition JSON.

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

Référence :Sources de connaissances - Obtenir

Le code JSON suivant est un exemple de réponse pour une source de connaissances 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
}

Créer une source de connaissances

Exécutez le code suivant pour créer une source de connaissances 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>"
    }
  }
}

Référence :Sources de connaissances - Créer ou mettre à jour

Attribuer à une base de connaissances

Si vous êtes satisfait de la source de connaissances, ajoutez-la à une base de connaissances.

Interroger une base de connaissances

Une fois la base de connaissances configurée, appelez l’action de récupération ou le point de terminaison MCP pour interroger le contenu Work IQ. Cette source de connaissances présente une application des autorisations lors de l’exécution de la requête et des caractéristiques de réponse uniques.

Important

Work IQ peut prendre 40 à 60 secondes ou plus à répondre. Pour éviter les erreurs de délai d’expiration, définissez maxRuntimeInSeconds dans la requête de récupération sur 120 ou plus.

Appliquer des autorisations au moment de la requête

À partir de la version 2026-08-01-preview de l’API, les sources de connaissances Work IQ utilisent un flux de jetons on-behalf-of (OBO) via votre inscription d’application Microsoft Entra détenue par le client. Outre l’authentification de la demande de récupération à Recherche Azure AI, votre client doit fournir une assertion d’utilisateur d’audience d’application pour l’utilisateur connecté.

Votre application cliente doit se connecter à l’utilisateur et acquérir l’assertion de l’utilisateur. La façon dont vous obtenez l’assertion dépend de la plateforme et du langage de l’application. Utilisez Microsoft Authentication Library (MSAL) et le flux de code d’autorisation avec Proof Key for Code Exchange (PKCE) pour demander l’étendue api://<application-client-id>/access_as_userexacte.

Avant d’envoyer l’assertion de l’utilisateur, vérifiez que :

  • aud identifie l’enregistrement de votre application Work IQ.
  • scp contient access_as_user.
  • oid et tid identifient l’utilisateur connecté et le locataire de l’application.

Envoyez les deux informations d’identification dans la même demande de récupération, comme illustré dans l’exemple suivant. Utilisez un jeton Recherche Azure AI ou une clé API pour l’authentification du service. Transmettez l’assertion utilisateur brute dans l’en-tête x-ms-query-work-iq-source-authorization , et non 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
}

Référence :Récupération des connaissances - Récupérer

Une requête réussie retourne 200 OK. Vérifiez que activity contient une entrée dont type est workIQ et dont knowledgeSourceName correspond à votre source de connaissances Work IQ. Vérifiez également que references contient une entrée workIQ.

Le tableau suivant répertorie les échecs de configuration courants.

Status Cause
400 L’en-tête d’autorisation Work IQ est manquant ou mal formé, les revendications utilisateur requises sont absentes ou le service de recherche n’a pas de configuration d’identité managée prise en charge.
206 ou 502 La source Work IQ a échoué, car l’échange de jetons, le consentement, l’autorisation déléguée, les informations d’identification fédérées, l’autorisation en aval ou la demande Work IQ a échoué ou expiré. Inspectez l’erreur d’activité source. Une 206 réponse signifie qu’une autre source a réussi. Une 502 réponse signifie que chaque source sélectionnée a échoué ou qu’une source requise a échoué.

Champs de réponse spécifiques à Work IQ

Les sources de connaissances Work IQ renvoient les résultats dans le tableau references et les diagnostics de requête dans le tableau activity. Chaque entrée de référence contient :

  • sourceData.parts[].text: Passages de texte issus de Work IQ.
  • sourceData.parts[].data: Données de citation de Work IQ. Les éléments de citation ont le type de média application/vnd.ms-workiq-reference.

L’exemple suivant montre une réponse de récupération contenant une référence de source de connaissances Work IQ et son enregistrement d’activité correspondant. Pour obtenir des conseils plus larges sur l’interprétation des réponses de récupération, consultez Examiner la réponse.

Conseil / Astuce

Pour recevoir sourceData pour les références, définissez includeReferenceSourceData sur true dans l’entrée de source de connaissances de knowledgeSourceParams de la requête de récupération.

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

Supprimer une source de connaissances

Avant de pouvoir supprimer une source de connaissances, vous devez supprimer toute base de connaissances qui la référence ou mettre à jour la définition de la base de connaissances pour supprimer la référence. Pour les sources de connaissances qui génèrent un pipeline d’index et d’indexeur, tous les objets générés sont également supprimés . Toutefois, si vous avez utilisé un index existant pour créer une source de connaissances, votre index n’est pas supprimé.

Si vous essayez de supprimer une source de connaissances en cours d’utilisation, l’action échoue et retourne une liste de bases de connaissances affectées.

Pour supprimer une source de connaissances :

  1. Obtenez la liste de toutes les bases de connaissances sur votre service de recherche.

    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

    Un exemple de réponse peut ressembler à ce qui suit :

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Obtenez une définition de base de connaissances individuelle pour rechercher des références à la source de connaissances.

    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

    Un exemple de réponse peut ressembler à ce qui suit :

     {
       "Name": "earth-knowledge-base",
       "KnowledgeSources": [
         {
           "Name": "earth-knowledge-source"
         }
       ],
       "Models": [
         {}
       ],
       "RetrievalReasoningEffort": {},
       "OutputMode": {},
       "ETag": "\u00220x8DE278629D782B3\u0022",
       "EncryptionKey": null,
       "Description": null,
       "RetrievalInstructions": null,
       "AnswerInstructions": null
     }
    
  3. Supprimez la base de connaissances ou, si vous avez plusieurs sources de connaissances, mettez à jour la base de connaissances pour supprimer la source. Cet exemple montre la suppression.

    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. Supprimez la source de connaissances.

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

    Reference :SearchIndexClient

  1. Obtenez la liste de toutes les bases de connaissances sur votre service de recherche.

    # 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

    Un exemple de réponse peut ressembler à ce qui suit :

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Obtenez une définition de base de connaissances individuelle pour rechercher des références à la source de connaissances.

    # 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

    Un exemple de réponse peut ressembler à ce qui suit :

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks"
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Supprimez la base de connaissances ou, si vous avez plusieurs sources de connaissances, mettez à jour la base de connaissances pour supprimer la source. Cet exemple montre la suppression.

    # 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. Supprimez la source de connaissances.

    # 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. Obtenez la liste de toutes les bases de connaissances sur votre service de recherche.

    ### Get knowledge bases
    GET {{search-url}}/knowledgebases?api-version={{api-version}}&$select=name
    Authorization: Bearer {{token}}
    

    Référence :Bases de connaissances - Liste

    Un exemple de réponse peut ressembler à ce qui suit :

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Obtenez une définition de base de connaissances individuelle pour rechercher des références à la source de connaissances.

    ### Get a knowledge base definition
    GET {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}}
    Authorization: Bearer {{token}}
    

    Référence :Bases de connaissances - Obtenir

    Un exemple de réponse peut ressembler à ce qui suit :

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks"
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Supprimez la base de connaissances ou, si vous avez plusieurs sources de connaissances, mettez à jour la base de connaissances pour supprimer la source. Cet exemple montre la suppression.

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

    Référence :Bases de connaissances - Supprimer

  4. Supprimez la source de connaissances.

    ### Delete a knowledge source
    DELETE {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}}
    Authorization: Bearer {{token}}
    

    Référence :Sources de connaissances - Supprimer