Skapa en arbets-IQ-kunskapskälla (förhandsversion)

Note

Azure AI-sökning är tillgängligt via Azure-portalen, REST-API:er och Azure-SDK:er. Den ligger också till grund för Foundry IQ, det hanterade kunskapsskiktet som omvandlar företagsinnehåll till återanvändbara, behörighetsmedvetna kunskapsbaser för agenter i Microsoft Foundry-portalen.

Important

Dessa funktioner och denna funktionalitet är en del av REST API-versionen 2026-08-01-preview. Förhandsversionen av 2026-08-01 är licensierad till dig som en del av din Azure-prenumeration och omfattas av de villkor som gäller för "förhandsversioner" i Microsoft Produktvillkor, Microsoft Products and Services Data Protection Addendum ("DPA") och tilläggsvillkoren för användning för Microsoft Azure förhandsversioner.

Förhandsversionen av 2026-08-01 stöder anslutningar till andra Microsoft-tjänster- och tredjepartstjänster. Användningen av dessa tjänster omfattas av deras respektive villkor och kan resultera i databearbetning eller lagring utanför Azure efterlevnadsgräns, samt data som flödar till Azure efterlevnadsgräns.

När du ansluter till Work IQ kan det medföra kostnader och data kan skickas utanför Azure efterlevnadsgräns och bearbetas enligt tillämpliga tjänstvillkor och principer för datahantering. Det är ditt ansvar att hantera om dina data flödar utanför organisationens efterlevnad och geografiska gränser och eventuella relaterade konsekvenser samt att lämpliga behörigheter, gränser och godkännanden etableras.

Du ansvarar för att noggrant granska och testa program som du skapar i samband med dina specifika användningsfall och fatta alla lämpliga beslut och anpassningar. Det här ansvaret omfattar implementering av dina egna ansvarsfulla AI-åtgärder, till exempel metaprompter, innehållsfilter eller andra säkerhetssystem, och att se till att dina program uppfyller lämpliga kvalitets-, tillförlitlighets-, säkerhets- och tillförlitlighetsstandarder. Mer information finns i Azure AI-sökning Transparency Note.

En Work IQ-kunskapskälla (förhandsversion) ansluter Work IQ till en pipeline för agentisk hämtning i Azure AI-sökning. Kunskapskällor skapas oberoende av varandra, refereras i en kunskapsbas och används som grunddata när kunskapsbasen efterfrågas vid körning.

Arbets-IQ innehåller organisationsinformation från ditt Microsoft 365 innehåll, inklusive dokument, e-postmeddelanden, möten och aktiviteter i Microsoft 365 appar.

Till skillnad från indexerade kunskapskällor hämtar Work IQ:s kunskapskällor data i realtid direkt när informationen hämtas. Ingen inmatningspipeline behövs. Frågor kräver en användaråtkomsttoken som utfärdats för din Microsoft Entra appregistrering. Azure AI-sökning utbyter denna token mot en delegerad Arbets-IQ-token och anropar Arbets-IQ för användarens räkning.

Varning

I den här förhandsversionen kan en kunskapskälla i Work IQ använda Work IQ-funktioner som kan utföra åtgärder, inte bara hämtar information. Använd det med försiktighet, begränsa åtkomsten till betrodda program och användare och granska ditt scenarios behörigheter och styrningskontroller innan du aktiverar det.

Användningsstöd

Azure Portal Microsoft Foundry-portalen .NET SDK Python SDK Java SDK JavaScript SDK REST API
✔️ ✔️ ✔️

Förutsättningar

  • Det senaste Azure.Search.Documents förhandsversionspaketet: dotnet add package Azure.Search.Documents --prerelease

  • För nyckellös autentisering, paketet Azure.Identity: dotnet add package Azure.Identity

  • Det senaste azure-search-documents förhandsversionspaketet: pip install --pre azure-search-documents

  • För nyckellös autentisering, paketet azure-identity: pip install azure-identity

Datastyrning och efterlevnad

Innan du aktiverar hämtning i Work IQ bör du läsa igenom Data, integritet och säkerhet för Microsoft 365 Copilot.

Dataanvändning och sekretess

Uppmaningar, svar och data som nås via Microsoft Graph används inte för att träna grundläggande språkmodeller.

Åtkomstkontroll

Arbets-IQ tillämpar Microsoft 365 behörigheter för varje begäran. Hämtning returnerar endast organisationsdata som den inloggade användaren har behörighet att komma åt.

Datahemvist och efterlevnad

Granska Microsoft 365 dokumentationen för de åtaganden om datahemvist, sekretess, säkerhet och efterlevnad som gäller för din organisation och ditt scenario.

Konfigurera Microsoft Entra-autentisering

Från och med 2026-08-01-preview API-versionen använder varje Work IQ-kunskapskälla en kundägd Microsoft Entra appregistrering för autentisering. Vid frågetillfället fungerar autentiseringen på följande sätt:

  1. Klientappen loggar in användaren och skickar ett användarintyg till Azure AI-sökning.
  2. Söktjänstens hanterade identitet autentiseras som den kundägda appen via en federerad autentiseringsuppgift.
  3. Azure AI-sökning utbyter användarintyget mot en delegerad Work IQ-token och anropar Work IQ å den inloggade användarens vägnar.

Ingen klienthemlighet lagras i kunskapskällan Work IQ. Konfigurera appen och dess behörigheter en gång och skapa sedan en federerad autentiseringsuppgift för varje söktjänstidentitet som använder appen.

Konfigurera registrering av Work IQ-appen

Så här konfigurerar du den kundägda app som Azure AI-sökning använder för att anropa Arbets-IQ:

  1. Registrera en applikation i Microsoft Entra-klientorganisationen där du vill hantera samtycke för Work IQ. För Kontotyper som stöds väljer du Endast konton i den här organisationskatalogen.

  2. På appregistreringens sida Översikt kopierar du Program-ID (klient) och Katalog-ID (klientorganisation). Du behöver program-ID:t för att konfigurera Work IQ-autentisering och klientorganisations-ID:t för att logga in på klientorganisationen som innehåller appregistreringen.

  3. På sidan Exponera ett API för appregistrering lägger du till det obligatoriska delegerade omfånget med namnet exakt access_as_user. Använd det här gemena namnet; ersätt inte ett annat omfångsnamn. Det fullständiga omfånget är api://<application-client-id>/access_as_user.

  4. På appregistreringens sida API-behörigheter väljer du Lägg till en behörighet>API:er som min organisation använder.

  5. Sök efter Arbets-IQ (program-ID fdcc1f02-fc51-4226-8753-f668596af7f7), välj Delegerade behörigheter>WorkIQAgent.Ask och välj sedan Lägg till behörigheter.

  6. Låt en administratör med en medgivanderoll som anges i förhandskraven välja Bevilja administratörsmedgivande för [din klient] på samma sida. Det här samtycket gör det möjligt för appen att byta ut ett användarintyg mot en delegerad Work IQ-token.

Konfigurera söktjänstidentiteten

Så här konfigurerar du den identitet som Azure AI-sökning använder för att autentisera som din Work IQ-app:

  1. Aktivera en systemtilldelad hanterad identitet i söktjänsten. Om du inte kan använda en systemtilldelad identitet konfigurerar du exakt en användartilldelad identitet. En söktjänst med flera användartilldelade identiteter och ingen systemtilldelad identitet stöds inte.

  2. På söktjänstens identitetssida kopierar du objekt-ID:t (huvudnamn). Den federerade autentiseringsuppgiften använder det här värdet som dess subject.

  3. Gå till Microsoft Entra ID>Översikt och kopiera klientorganisations-ID:t. Den federerade autentiseringsuppgiften använder det här värdet i sin issuer URL.

Skapa en federerad autentiseringsuppgift

Så här skapar du en federerad autentiseringsuppgift för söktjänstens identitet:

  1. Skapa en fil som heter credential.json. Ersätt <search-service-name>, <search-service-tenant-id>och <search-service-principal-id> med värden för söktjänsten.

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

    Namnet på autentiseringsuppgifterna måste vara unikt för appregistreringen. Värdet subject måste matcha huvud-ID:t för den hanterade identiteten exakt. Ett matchningsfel uppstår när du frågar, inte när du skapar kunskapskällan.

  2. Logga in i Azure CLI med den klientorganisation som innehåller appregistreringen.

    az login --tenant <app-tenant-id> --allow-no-subscriptions
    
  3. Skapa federerade autentiseringsuppgifter.

    az ad app federated-credential create --id <application-client-id> --parameters credential.json --query id --output tsv
    
  4. Kopiera kommandoutdata. Använd det här värdet för federatedCredentialId när du skapar kunskapskällan Work IQ.

Varje federerad autentiseringsuppgift litar på ett huvud-ID för hanterad identitet. Om en annan söktjänstidentitet använder appregistreringen upprepar du den här proceduren med ett unikt autentiseringsnamn och identitetens klient- och huvudnamns-ID. Använd motsvarande autentiserings-ID för varje arbets-IQ-kunskapskälla.

Konfigurera klientappen

Så här konfigurerar du appen som loggar in användare och skickar hämtningsbegäranden:

  1. På klientappens sida API-behörigheter väljer du Lägg till en behörighet>API:er som min organisation använder.

  2. Klistra in Program-ID:t (klient) som du kopierade tidigare i sökrutan och välj sedan Work IQ-appregistreringen.

  3. Välj Delegerade behörigheter>access_as_user och välj sedan Lägg till behörigheter.

  4. Genomför eventuella samtycken som krävs enligt din klientorganisations policy för användarsamtycke. Om administratörsmedgivande krävs måste en administratör välja Bevilja administratörsmedgivande för [din klientorganisation].

Klientappen kan nu begära ett användarintyg för Work IQ-appregistreringen. Behörigheten access_as_user ger inte klientappen direkt åtkomst till Work IQ.

Autentiseringsvärden

När du skapar en arbets-IQ-kunskapskälla använder du följande entraAppAuthentication värden från din Microsoft Entra appkonfiguration. Varje värde som du anger måste vara ett GUID.

Property Obligatoriskt Value
applicationId Ja Program-ID (klient) för din Arbets-IQ-appregistrering.
federatedCredentialId Ja Objekt-ID för de federerade autentiseringsuppgifter som du skapade i appen. Det är inte autentiseringsuppgiftens namn och det är inte söktjänstens tjänsthuvud-ID.
tenantId No Katalog-ID (klientorganisation) för appregistreringen. Utelämna den här egenskapen när appregistrerings- och söktjänsten finns i samma klientorganisation. Om de finns i olika klientorganisationer krävs den här egenskapen.

Sök efter befintliga kunskapskällor

En kunskapskälla är ett återanvändbart objekt på toppnivå. Att känna till befintliga kunskapskällor är användbart för återanvändning eller namngivning av nya objekt.

Kör följande kod för att lista kunskapskällor efter namn och typ.

// 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}");
}

Referens: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})")

Referens:SearchIndexClient

### List knowledge sources by name and type
GET {{search-url}}/knowledgesources?api-version={{api-version}}&$select=name,kind
Authorization: Bearer {{token}}

Referens:Kunskapskällor – lista

Du kan också returnera en enda kunskapskälla efter namn för att granska dess JSON-definition.

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));

Referens: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))

Referens:SearchIndexClient

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

Referens:Kunskapskällor – Hämta

Följande JSON är ett exempelsvar för en arbets-IQ-kunskapskälla.

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

Skapa en kunskapskälla

Kör följande kod för att skapa en arbets-IQ-kunskapskälla.

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}'.");

Referens: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}'.")

Referens: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>"
    }
  }
}

Referens:Kunskapskällor – Skapa eller uppdatera

Tilldelas till en kunskapsbas

Om du är nöjd med kunskapskällan lägger du till den i en kunskapsbas.

Sök i en kunskapsbas

När kunskapsbasen har konfigurerats, anropar du funktionen Hämta eller MCP-slutpunkten för att söka i Work IQ-innehåll. Den här kunskapskällan har unikt framtvingande av behörigheter vid frågetillfället och unika svarskarakteristika.

Important

Det kan ta 40–60 sekunder eller mer att svara på arbets-IQ. För att undvika timeout-fel anger du maxRuntimeInSeconds på begäran om hämtning till 120 eller högre.

Framtvinga behörigheter vid frågetillfället

Från och med API-versionen 2026-08-01-preview använder kunskapskällorna i Work IQ ett tokenflöde av typen on-behalf-of (OBO) via din kundägda Microsoft Entra-appregistrering. Förutom att autentisera hämtningsbegäran till Azure AI-sökning måste klienten också tillhandahålla ett användarintyg för appens målgrupp för den inloggade användaren.

Klientappen måste logga in användaren och hämta användarpåståendet. Hur du skaffar försäkran beror på appens plattform och språk. Använd Microsofts autentiseringsbibliotek (MSAL) och auktoriseringskodflödet med proof key for Code Exchange (PKCE) för att begära det exakta omfånget api://<application-client-id>/access_as_user.

Innan du skickar användarförsäkran, bekräfta att:

  • aud identifierar din Work IQ-appregistrering.
  • scp innehåller access_as_user.
  • oid och tid identifierar den inloggade användaren och appens klientorganisation.

Skicka båda autentiseringsuppgifterna i samma hämtningsbegäran, som du ser i följande exempel. Använd en Azure AI-sökning-token eller API-nyckel för tjänstautentisering. Skicka det råa användarintyget i rubriken x-ms-query-work-iq-source-authorization, inte 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);

Referens: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)

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

Referens:Kunskapshämtning – Hämta

En lyckad begäran returnerar 200 OK. Bekräfta att activity innehåller en post vars type är workIQ och vars knowledgeSourceName matchar din Work IQ-kunskapskälla. Kontrollera också att references innehåller en post för workIQ.

I följande tabell visas vanliga konfigurationsfel.

Status Orsak
400 Work IQ-auktoriseringshuvudet saknas eller har fel format, obligatoriska användaranspråk saknas eller så har söktjänsten ingen hanterad identitetskonfiguration som stöds.
206 eller 502 Work IQ-källan misslyckades eftersom tokenutbyte, medgivande, delegerad behörighet, federerade autentiseringsuppgifter, nedströmsauktorisering eller Work IQ-begäran misslyckades eller tidsgränsen översågs. Kontrollera källaktivitetsfelet. Ett 206 svar innebär att en annan källa lyckades. Ett 502 svar innebär att varje vald källa misslyckades eller att en nödvändig källa misslyckades.

Arbets-IQ-specifika svarsfält

Arbets-IQ-kunskapskällor returnerar resultat i matrisen references och frågediagnostiken i matrisen activity . Varje referenspost innehåller:

  • sourceData.parts[].text: Förankrade textavsnitt från Work IQ.
  • sourceData.parts[].data: Arbets-IQ-källhänvisningsdata. Källhänvisningsdelar har medietypen application/vnd.ms-workiq-reference.

Följande exempel visar ett svar på en hämtningsbegäran som innehåller en referens till en Work IQ-kunskapskälla och motsvarande aktivitetspost. Mer information om hur du tolkar hämtningssvar finns i Granska svaret.

Tip

Om du vill få sourceData för referenser anger du includeReferenceSourceData som true i posten för kunskapskällan i knowledgeSourceParams i hämtningsbegäran.

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

Ta bort en kunskapskälla

Innan du kan ta bort en kunskapskälla måste du ta bort alla kunskapsbaser som refererar till den eller uppdatera kunskapsbasdefinitionen för att ta bort referensen. För kunskapskällor som genererar en index- och indexeringspipeline tas även alla genererade objekt bort. Men om du använde ett befintligt index för att skapa en kunskapskälla tas inte ditt index bort.

Om du försöker ta bort en kunskapskälla som används misslyckas åtgärden och returnerar en lista över berörda kunskapsbaser.

Så här tar du bort en kunskapskälla:

  1. Hämta en lista över alla kunskapsbaser i söktjänsten.

    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}");
    }
    

    Referens:SearchIndexClient

    Ett exempelsvar kan se ut så här:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Hämta en individuell kunskapsbasdefinition för att söka efter referenser till kunskapskällor.

    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);
    

    Referens:SearchIndexClient

    Ett exempelsvar kan se ut så här:

     {
       "Name": "earth-knowledge-base",
       "KnowledgeSources": [
         {
           "Name": "earth-knowledge-source"
         }
       ],
       "Models": [
         {}
       ],
       "RetrievalReasoningEffort": {},
       "OutputMode": {},
       "ETag": "\u00220x8DE278629D782B3\u0022",
       "EncryptionKey": null,
       "Description": null,
       "RetrievalInstructions": null,
       "AnswerInstructions": null
     }
    
  3. Ta antingen bort kunskapsbasen eller, om du har flera kunskapskällor, uppdatera kunskapsbasen för att ta bort källan. Det här exemplet visar borttagning.

    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.");
    

    Referens:SearchIndexClient

  4. Ta bort kunskapskällan.

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

    Referens:SearchIndexClient

  1. Hämta en lista över alla kunskapsbaser i söktjänsten.

    # 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}")
    

    Referens:SearchIndexClient

    Ett exempelsvar kan se ut så här:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Hämta en individuell kunskapsbasdefinition för att söka efter referenser till kunskapskällor.

    # 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)
    

    Referens:SearchIndexClient

    Ett exempelsvar kan se ut så här:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks"
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Ta antingen bort kunskapsbasen eller, om du har flera kunskapskällor, uppdatera kunskapsbasen för att ta bort källan. Det här exemplet visar borttagning.

    # 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.")
    

    Referens:SearchIndexClient

  4. Ta bort kunskapskällan.

    # 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.")
    

    Referens:SearchIndexClient

  1. Hämta en lista över alla kunskapsbaser i söktjänsten.

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

    Referens:Kunskapsbaser – lista

    Ett exempelsvar kan se ut så här:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Hämta en individuell kunskapsbasdefinition för att söka efter referenser till kunskapskällor.

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

    Referens:Kunskapsbaser – Hämta

    Ett exempelsvar kan se ut så här:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks"
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Ta antingen bort kunskapsbasen eller, om du har flera kunskapskällor, uppdatera kunskapsbasen för att ta bort källan. Det här exemplet visar borttagning.

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

    Referens:Kunskapsbaser – Ta bort

  4. Ta bort kunskapskällan.

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

    Referens:Kunskapskällor – Ta bort