Criar uma fonte de conhecimento do Work IQ (versão prévia)

Note

Pesquisa de IA do Azure  está disponível por meio do portal Azure, APIs REST e SDKs do Azure. Ele também sustenta o IQ do Foundry, a camada de conhecimento gerenciado que transforma o conteúdo da empresa em bases de conhecimento reutilizáveis e com reconhecimento de permissão para agentes no portal do Microsoft Foundry.

Importante

Esses recursos e funcionalidades fazem parte da API REST 2026-08-01-preview. A versão prévia 2026-08-01 é licenciada para você como parte de sua assinatura de Azure e está sujeita aos termos aplicáveis a "Visualizações" nos Termos do Produto Microsoft, no Adendo de Proteção de Dados Microsoft Produtos e Serviços ("DPA" e nos Termos de Uso Complementares para visualizações de Microsoft Azure.

A versão prévia 2026-08-01 dá suporte a conexões com outros serviços de serviços Microsoft e de terceiros. O uso desses serviços está sujeito aos respectivos termos e pode resultar em processamento ou armazenamento de dados fora do limite de conformidade Azure, bem como dados que fluem para o limite de conformidade Azure.

Ao se conectar ao Work IQ, você pode gerar custos, e os dados podem ser enviados para fora do limite de conformidade do Azure e processados de acordo com os termos de serviço aplicáveis e as políticas de tratamento de dados. É sua responsabilidade gerenciar se os seus dados serão transferidos para fora dos limites geográficos e de conformidade da sua organização, bem como todas as implicações relacionadas, e garantir que as permissões, os limites e as aprovações adequados sejam estabelecidos.

Você é responsável por examinar e testar cuidadosamente os aplicativos que cria no contexto de seus casos de uso específicos e tomar todas as decisões e personalizações apropriadas. Essa responsabilidade inclui implementar suas próprias mitigações de IA responsáveis, como metaprompts, filtros de conteúdo ou outros sistemas de segurança, e garantir que seus aplicativos atendam aos padrões adequados de qualidade, confiabilidade, segurança e confiabilidade. Para obter mais informações, consulte a Pesquisa de IA do Azure  Nota de Transparência.

Uma fonte de conhecimento do Work IQ (versão prévia) conecta o Work IQ a um pipeline de recuperação por meio de agentes na Pesquisa de IA do Azure. As fontes de conhecimento são criadas de forma independente, referenciadas em uma base de dados de conhecimento e usadas como dados de aterramento quando a base de dados de conhecimento é consultada em runtime.

O Work IQ revela a inteligência organizacional a partir do seu conteúdo no Microsoft 365, incluindo documentos, e-mails, reuniões e atividades nos aplicativos do Microsoft 365.

Ao contrário das fontes de conhecimento indexadas, as fontes de conhecimento do Work IQ consultam dados dinâmicos diretamente no momento da recuperação. Não é necessário nenhum pipeline de ingestão. As consultas exigem um token de acesso do usuário emitido para o registro do aplicativo Microsoft Entra. O Pesquisa de IA do Azure  troca esse token por um token delegado do Work IQ e faz uma chamada ao Work IQ em nome do usuário.

Warning

Nesta prévia, uma fonte de conhecimento do Work IQ pode usar capacidades do Work IQ que executam ações, não apenas recuperam informações. Use-o com cuidado, limite o acesso a aplicativos e usuários confiáveis e examine as permissões e controles de governança do seu cenário antes de habilitá-lo.

Suporte de uso

Portal do Azure Portal Foundry da Microsoft SDK do .NET SDK do Python SDK do Java SDK do JavaScript REST API
✔️ ✔️ ✔️

Pré-requisitos

  • O pacote de versão prévia Azure.Search.Documents mais recente: dotnet add package Azure.Search.Documents --prerelease

  • Para autenticação sem chave, o Azure.Identity pacote: dotnet add package Azure.Identity

  • O pacote de versão prévia azure-search-documents mais recente: pip install --pre azure-search-documents

  • Para autenticação sem chave, o azure-identity pacote: pip install azure-identity

Governança e conformidade de dados

Antes de habilitar a recuperação do Work IQ, revise Dados, Privacidade e Segurança para o Microsoft 365 Copilot.

Uso e privacidade de dados

Prompts, respostas e dados acessados por meio do Microsoft Graph não são usados para treinar modelos fundamentais de linguagem.

Controle de acesso

O Work IQ aplica as permissões do Microsoft 365 a cada solicitação. A recuperação retorna apenas dados organizacionais que o usuário conectado tem permissão para acessar.

Residência e conformidade de dados

Examine a documentação do Microsoft 365 para os compromissos de residência, privacidade, segurança e conformidade de dados que se aplicam à sua organização e ao cenário.

Configurar a autenticação do Microsoft Entra

A partir da versão da 2026-08-01-preview API, cada fonte de conhecimento do Work IQ usa um registro de aplicativo Microsoft Entra de propriedade do cliente para autenticação. No momento da consulta, a autenticação funciona da seguinte maneira:

  1. O aplicativo cliente autentica o usuário e envia uma asserção do usuário para o Pesquisa de IA do Azure .
  2. A identidade gerenciada do serviço de pesquisa se autentica como o aplicativo de propriedade do cliente por meio de uma credencial federada.
  3. O Pesquisa de IA do Azure  troca a asserção do usuário por um token delegado do Work IQ e faz chamadas ao Work IQ em nome do usuário autenticado.

Nenhum segredo do cliente é armazenado na fonte de conhecimento do Work IQ. Configure o aplicativo e suas permissões uma vez e crie uma credencial federada para cada identidade do serviço de pesquisa que usa o aplicativo.

Configurar o registro do aplicativo Work IQ

Para configurar o aplicativo pertencente ao cliente que o Pesquisa de IA do Azure  usa para acessar o Work IQ:

  1. Registre um aplicativo no locatário do Microsoft Entra em que você deseja gerenciar o consentimento do Work IQ. Para tipos de conta com suporte, selecione contas somente neste diretório organizacional.

  2. Na página Visão geral do registro do aplicativo, copie a ID do Aplicativo (cliente) e a ID do Diretório (locatário). Você precisa da ID do aplicativo para configurar a autenticação do Work IQ e da ID do locatário para fazer login no locatário que contém o registro de aplicativo.

  3. Na página Expor uma API do registro do aplicativo, adicione o escopo delegado necessário chamado exatamente access_as_user. Use esse nome minúsculo; não substitua outro nome de escopo. O escopo completo é api://<application-client-id>/access_as_user.

  4. Na página Permissões de API do registro do aplicativo, selecione Adicionar uma permissão>APIs que minha organização usa.

  5. Pesquise por IQ de Trabalho (ID fdcc1f02-fc51-4226-8753-f668596af7f7do aplicativo), selecione Permissões> delegadasWorkIQAgent.Ask e, em seguida, selecione Adicionar permissões.

  6. Tenha um administrador com uma função de consentimento listada nos pré-requisitos, selecione Conceder consentimento do administrador para [seu locatário] na mesma página. Esse consentimento permite que o aplicativo troque uma asserção de usuário por um token delegado do Work IQ.

Configurar a identidade do serviço de pesquisa

Para configurar a identidade que o Pesquisa de IA do Azure  usa para se autenticar no seu aplicativo Work IQ:

  1. Habilite uma identidade gerenciada atribuída pelo sistema em seu serviço de pesquisa. Se você não puder usar uma identidade atribuída pelo sistema, configure exatamente uma identidade atribuída pelo usuário. Não há suporte para um serviço de pesquisa com várias identidades atribuídas pelo usuário e nenhuma identidade atribuída pelo sistema.

  2. Na página Identidade do serviço de pesquisa, copie a ID do objeto (principal). A credencial federada usa esse valor como seu subject.

  3. Vá para Microsoft Entra ID>Visão geral e copie a ID do locatário. A credencial federada usa esse valor em sua issuer URL.

Criar uma credencial federada

Para criar uma credencial federada para a identidade do serviço de pesquisa:

  1. Crie um arquivo chamado credential.json. Substitua <search-service-name>, <search-service-tenant-id>e <search-service-principal-id> por valores para o serviço de pesquisa.

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

    O nome da credencial deve ser exclusivo no registro do aplicativo. O valor subject deve corresponder exatamente ao ID do principal da identidade gerenciada. Uma incompatibilidade é exibida quando você consulta, não quando cria a fonte de conhecimento.

  2. Entre no CLI do Azure com o locatário que contém o registro do aplicativo.

    az login --tenant <app-tenant-id> --allow-no-subscriptions
    
  3. Crie a credencial federada.

    az ad app federated-credential create --id <application-client-id> --parameters credential.json --query id --output tsv
    
  4. Copie a saída do comando. Use este valor para federatedCredentialId ao criar a fonte de conhecimento do Work IQ.

Cada credencial federada confia em uma ID de entidade de identidade gerenciada. Se outra identidade do serviço de pesquisa usar o registro do aplicativo, repita este procedimento com um nome de credencial exclusivo e os IDs do locatário e da entidade de segurança dessa identidade. Use o ID de credencial correspondente em cada fonte de conhecimento do Work IQ.

Configurar o aplicativo cliente

Para configurar o aplicativo que autentica os usuários e envia solicitações de recuperação:

  1. Na página Permissões de API do aplicativo cliente, selecione Adicionar uma permissão>APIs que minha organização usa.

  2. Cole a ID do aplicativo (cliente) que você copiou anteriormente na caixa de pesquisa e selecione o registro do aplicativo Work IQ.

  3. Selecione permissões> delegadasaccess_as_user e, em seguida, selecione Adicionar permissões.

  4. Conceda todo consentimento exigido pela política de consentimento do usuário do seu locatário. Se o consentimento do administrador for necessário, faça com que um administrador selecione Conceder consentimento do administrador para [seu locatário].

O aplicativo cliente agora pode solicitar uma asserção do usuário para o registro do aplicativo Work IQ. A permissão access_as_user não concede ao aplicativo cliente acesso direto ao Work IQ.

Valores de autenticação

Ao criar uma fonte de conhecimento do Work IQ, use os valores a seguir entraAppAuthentication da configuração do aplicativo Microsoft Entra. Cada valor fornecido deve ser um GUID.

Propriedade Obrigatório Value
applicationId Sim ID do aplicativo (cliente) do registro de aplicativo do seu Work IQ.
federatedCredentialId Sim ID do objeto da credencial federada que você criou no aplicativo. Não é o nome da credencial e não é a ID da entidade de serviço de pesquisa.
tenantId No ID do diretório (locatário) do registro de aplicativo. Omita essa propriedade quando o serviço de registro e pesquisa do aplicativo estiver no mesmo locatário. Se eles estiverem em locatários diferentes, essa propriedade será necessária.

Verificar se há fontes de conhecimento existentes

Uma fonte de conhecimento é um objeto reutilizável de nível superior. Saber sobre fontes de conhecimento existentes é útil para reutilizar ou nomear novos objetos.

Execute o código a seguir para listar fontes de conhecimento por nome e 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

Você também pode retornar uma única fonte de conhecimento por nome para revisar sua definição de 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}}

Reference:Fontes de Conhecimento – Obter

O JSON a seguir é uma resposta de exemplo para uma fonte de conhecimento do 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
}

Criar uma fonte de conhecimento

Execute o código a seguir para criar uma fonte de conhecimento do 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>"
    }
  }
}

Reference:Knowledge Sources – Criar ou atualizar

Atribuir a uma base de dados de conhecimento

Se você estiver satisfeito com a fonte de conhecimento, adicione-a a uma base de dados de conhecimento.

Consultar uma base de dados de conhecimento

Depois que a base de conhecimento estiver configurada, chame a ação de recuperação ou o endpoint MCP para consultar o conteúdo do Work IQ. Esta fonte de conhecimento tem características exclusivas de aplicação de permissões em tempo de consulta e de resposta.

Importante

O Work IQ pode levar de 40 a 60 segundos, ou mais, para responder. Para evitar erros de tempo limite, defina maxRuntimeInSeconds na solicitação de recuperação como 120 ou superior.

Aplicar permissões no momento da consulta

A partir da versão 2026-08-01-preview da API, as fontes de conhecimento do Work IQ usam um fluxo de token OBO (on-behalf-of) por meio do registro de aplicativo do Microsoft Entra pertencente ao cliente. Além de autenticar a solicitação de recuperação para Pesquisa de IA do Azure , seu cliente deve fornecer uma declaração de usuário de audiência do aplicativo para o usuário conectado.

Seu aplicativo cliente deve autenticar o usuário e obter a asserção do usuário. A maneira como você adquire a declaração depende da plataforma e do idioma do aplicativo. Use a Biblioteca de Autenticação da Microsoft (MSAL) e o fluxo de código de autorização com Chave de Prova para Troca de Código (PKCE) para solicitar o escopo exato api://<application-client-id>/access_as_user.

Antes de enviar a declaração de usuário, confirme se:

  • aud identifica o cadastro do seu aplicativo Work IQ.
  • scp contém access_as_user.
  • oid e tid identificam o usuário conectado e o locatário do aplicativo.

Envie ambas as credenciais na mesma solicitação de recuperação, conforme mostrado no exemplo a seguir. Use um token Pesquisa de IA do Azure  ou uma chave de API para autenticação de serviço. Passe a asserção bruta do usuário no cabeçalho x-ms-query-work-iq-source-authorization, não 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
}

Referência:Recuperação de Conhecimento – Recuperar

Uma solicitação bem-sucedida retorna 200 OK. Confirme que activity contém uma entrada cuja type é workIQ e cujo knowledgeSourceName corresponde à sua fonte de conhecimento do Work IQ. Confirme também que references contém uma workIQ entrada.

A tabela a seguir lista falhas comuns de configuração.

Status Cause
400 O cabeçalho de autorização do Work IQ está ausente ou malformado, as declarações do usuário necessárias estão ausentes ou o serviço de pesquisa não tem uma configuração de identidade gerenciada compatível.
206 ou 502 A origem do Work IQ falhou porque a troca de token, o consentimento, a permissão delegada, a credencial federada, a autorização em serviços downstream ou a solicitação do Work IQ falharam ou atingiram o tempo limite. Inspecione o erro da atividade de origem. Uma 206 resposta significa que outra fonte foi bem-sucedida. Uma 502 resposta significa que todas as fontes selecionadas falharam ou uma origem necessária falhou.

Campos de resposta específicos do Work IQ

As fontes de conhecimento do Work IQ retornam resultados na matriz references, e diagnósticos da consulta na matriz activity. Cada entrada de referência contém:

  • sourceData.parts[].text: passagens de texto baseadas no Work IQ.
  • sourceData.parts[].data: dados de citação do Work IQ. As partes da citação têm o tipo de mídia application/vnd.ms-workiq-reference.

O exemplo a seguir mostra uma resposta da operação de recuperação que contém uma referência a uma fonte de conhecimento do Work IQ e o registro de atividade correspondente. Para obter orientações mais amplas sobre como interpretar respostas de recuperação, consulte Examinar a resposta.

Dica

Para receber sourceData para referências, defina includeReferenceSourceData como true na entrada da fonte de conhecimento em knowledgeSourceParams na solicitação de recuperação.

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

Excluir uma fonte de conhecimento

Antes de excluir uma fonte de conhecimento, exclua qualquer base de dados de conhecimento que faça referência a ela ou atualize a definição da base de dados de conhecimento para remover a referência. Para fontes de conhecimento que geram um pipeline de índice e indexador, todos os objetos gerados também são excluídos . No entanto, se você usou um índice existente para criar uma fonte de conhecimento, seu índice não será excluído.

Se você tentar excluir uma fonte de conhecimento que está em uso, a ação falhará e retornará uma lista de bases de dados de conhecimento afetadas.

Para excluir uma fonte de conhecimento:

  1. Obtenha uma lista de todas as bases de dados de conhecimento em seu serviço de pesquisa.

    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

    Uma resposta de exemplo pode ser semelhante à seguinte:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Obtenha uma definição individual de base de conhecimento para verificar referências de fontes de conhecimento.

    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

    Uma resposta de exemplo pode ser semelhante à seguinte:

     {
       "Name": "earth-knowledge-base",
       "KnowledgeSources": [
         {
           "Name": "earth-knowledge-source"
         }
       ],
       "Models": [
         {}
       ],
       "RetrievalReasoningEffort": {},
       "OutputMode": {},
       "ETag": "\u00220x8DE278629D782B3\u0022",
       "EncryptionKey": null,
       "Description": null,
       "RetrievalInstructions": null,
       "AnswerInstructions": null
     }
    
  3. Exclua a base de dados de conhecimento ou, se você tiver várias fontes de conhecimento, atualize a base de dados de conhecimento para remover a origem. Este exemplo mostra a exclusão.

    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. Exclua a fonte de conhecimento.

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

    Reference:SearchIndexClient

  1. Obtenha uma lista de todas as bases de dados de conhecimento em seu serviço de pesquisa.

    # 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

    Uma resposta de exemplo pode ser semelhante à seguinte:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Obtenha uma definição individual de base de conhecimento para verificar referências de fontes de conhecimento.

    # 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

    Uma resposta de exemplo pode ser semelhante à seguinte:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks"
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Exclua a base de dados de conhecimento ou, se você tiver várias fontes de conhecimento, atualize a base de dados de conhecimento para remover a origem. Este exemplo mostra a exclusão.

    # 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. Exclua a fonte de conhecimento.

    # 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. Obtenha uma lista de todas as bases de dados de conhecimento em seu serviço de pesquisa.

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

    Referência:Bases de Dados de Conhecimento – Lista

    Uma resposta de exemplo pode ser semelhante à seguinte:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Obtenha uma definição individual de base de conhecimento para verificar referências de fontes de conhecimento.

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

    Referência:Bases de Conhecimento – Obter

    Uma resposta de exemplo pode ser semelhante à seguinte:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks"
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Exclua a base de dados de conhecimento ou, se você tiver várias fontes de conhecimento, atualize a base de dados de conhecimento para remover a origem. Este exemplo mostra a exclusão.

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

    Referência:Bases de Dados de Conhecimento – Excluir

  4. Exclua a fonte de conhecimento.

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

    Reference:Fontes de Conhecimento - Excluir