Crie uma fonte de conhecimento sobre QI de Trabalho (pré-visualização)

Note

O Pesquisa de IA do Azure está disponível através do portal Azure, APIs REST e SDKs do Azure. Também sustenta o Foundry IQ, a camada de conhecimento gerida que transforma conteúdos empresariais em bases de conhecimento reutilizáveis e conscientes de permissões para agentes no portal Microsoft Foundry.

Importante

Estas funcionalidades fazem parte da API REST preview de 2026-05-01-. A 2026-05-01-preview é-lhe licenciada como parte da sua subscrição do Azure e está sujeita aos termos aplicáveis a "Previews" nos Termos dos Produtos Microsoft, na Adenda sobre a Proteção de Dados dos Produtos e Serviços Microsoft ("DPA") e nos Termos de Utilização Suplementares para as Pré-visualizações do Microsoft Azure.

A pré-visualização 2026-05-01 suporta ligações a outros serviços da Microsoft e serviços de terceiros. A utilização destes serviços está sujeita aos respetivos termos e pode resultar no processamento ou armazenamento de dados fora do limite de conformidade do Azure, bem como no fluxo de dados para o limite de conformidade do Azure.

Ao ligar-se ao Work IQ, pode incorrer em custos, e os dados podem ser enviados para fora do limite de conformidade com o Azure e processados de acordo com os termos de serviço e políticas de gestão de dados aplicáveis. É sua responsabilidade gerir se os seus dados irão fluir para além dos limites de conformidade e geográficos da sua organização e quaisquer implicações relacionadas, e garantir que as permissões, limites e aprovações apropriadas sejam providenciadas.

És responsável por rever e testar cuidadosamente as aplicações que constróis no contexto dos teus casos de uso específicos e por tomar todas as decisões e personalizações apropriadas. Isto inclui implementar as suas próprias mitigações de IA responsável, como metaprompts, filtros de conteúdo ou outros sistemas de segurança, e assegurar que as suas aplicações cumprem os padrões adequados de qualidade, fiabilidade, segurança e confiabilidade. Para mais informações, consulte a Nota de Transparência Pesquisa de IA do Azure.

Uma fonte de conhecimento do Work IQ (pré-visualização) liga o Work IQ a um pipeline de recuperação agêntica no Pesquisa de IA do Azure. As fontes de conhecimento são criadas de forma independente, referenciadas numa base de conhecimento e usadas como dados de base quando a base é consultada em tempo de execução.

O Work IQ revela inteligência organizacional a partir do seu conteúdo do Microsoft 365, incluindo documentos, emails, reuniões e atividades nas aplicações Microsoft 365.

Ao contrário das fontes de conhecimento indexadas, as fontes de conhecimento do Work IQ consultam dados em tempo real diretamente no momento da recuperação. Não é necessário um pipeline de ingestão. As consultas requerem um token de acesso do utilizador final, que o motor de recuperação utiliza para chamar o Work IQ em nome do chamador.

Warning

Nesta pré-visualização, uma fonte de conhecimento do Work IQ pode usar capacidades do Work IQ que realizam ações, não apenas recuperam informação. Use-o com cuidado, limite o acesso a aplicações e utilizadores de confiança, e reveja as permissões e controlos de governação do seu cenário antes de o ativar.

Suporte de utilização

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

Pré-requisitos

  • Um serviço Pesquisa de IA do Azure em qualquer região que forneça recuperação proativa.

  • Cada utilizador final que faça consultas através desta fonte de conhecimento deve possuir uma licença Microsoft 365 Copilot.

  • O serviço Pesquisa de IA do Azure, o ambiente Work IQ e os utilizadores finais devem estar no mesmo tenant Microsoft Entra. A recuperação entre locatários não é suportada.

  • Acesso aprovado à recuperação do Work IQ através do Pesquisa de IA do Azure. Para mais informações, consulte Solicitar acesso à pesquisa no Work IQ.

  • Permissões para criar fontes de conhecimento. Configure a autenticação sem chave com o papel de Contribuidor de Serviço de Pesquisa atribuído à sua conta de utilizador (recomendado) ou use uma chave API.

  • O pacote de pré-visualização mais recente Azure.Search.Documents: dotnet add package Azure.Search.Documents --prerelease
  • O pacote de pré-visualização mais recente azure-search-documents: pip install --pre azure-search-documents

Solicitar acesso à pesquisa do Work IQ

A recuperação do Work IQ através do Pesquisa de IA do Azure está desativada por defeito e requer um pedido aprovado pela Microsoft antes de ser utilizada.

Para pedir acesso:

  1. Registe o flag de funcionalidade EnableFoundryIQWithWorkIQ na tua subscrição Azure.

    az feature register --namespace Microsoft.Search --name EnableFoundryIQWithWorkIQ --subscription "<your-subscription-guid>"
    
  2. Volte a registar o fornecedor de recursos Microsoft.Search.

    az provider register -n Microsoft.Search --subscription "<your-subscription-guid>"
    
  3. Peça a um administrador do Microsoft Entra do seu tenant que submeta o formulário de pedido de acesso ao Work IQ.

  4. Espere que a Microsoft ative o acesso após rever e aprovar o pedido.

    Dica

    Registar uma funcionalidade de pré-visualização requer o papel incorporado Proprietário ou Contribuidor na subscrição, que é um papel separado do administrador de Microsoft Entra que submete o formulário. As duas responsabilidades podem ser desempenhadas por pessoas diferentes na sua organização. Para mais informações sobre o mecanismo de registo, consulte Configurar funcionalidades de pré-visualização em Azure subscrição.

Governação e conformidade de dados

A Work IQ opera inteiramente dentro dos limites de confiança do Microsoft 365. Aplicam-se os seguintes compromissos quando encaminha pedidos de agentes através do Work IQ.

Residência dos dados

O Work IQ recupera dados do tenant Microsoft 365 da sua organização. Os dados não saem do seu locatário nem cruzam fronteiras regionais durante a obtenção. A localização dos dados segue a configuração de residência dos dados de inquilino do Microsoft 365, não a região do serviço Pesquisa de IA do Azure. Para mais detalhes, consulte Dados, Privacidade e Segurança para Microsoft 365 Copilot.

Privacidade e tratamento de dados

Todos os pedidos Work IQ são regidos por Dados, Privacidade e Segurança para Microsoft 365 Copilot. Compromissos principais:

  • A Work IQ não utiliza conteúdos de clientes para treinar ou melhorar modelos de IA subjacentes.

Controle de acesso e permissões

O Work IQ aplica automaticamente as permissões do Microsoft 365 em todos os pedidos. Os agentes só podem aceder a dados que o utilizador iniciado já está autorizado a ver. Não é possível elevar o privilégio.

  • O controlo de acesso baseado em funções, as etiquetas de sensibilidade e as barreiras de informação definidas no Microsoft 365 são respeitados.

Certificações de conformidade

A Work IQ herda as certificações de conformidade do Microsoft 365. Para mais detalhes, consulte Dados, Privacidade e Segurança para Microsoft 365 Copilot.

Verifique se há fontes de conhecimento existentes

Uma fonte de conhecimento é um objeto reutilizável de nível superior. Conhecer as fontes de conhecimento existentes é útil tanto para reutilizar como para nomear novos objetos.

Execute o seguinte código para listar as 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}");
}

Referência: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})")

Referência:SearchIndexClient

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

Referência:Fontes de Conhecimento - Lista

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

Referência: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))

Referência:SearchIndexClient

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

Referência:Fontes de Conhecimento - Obter

O JSON seguinte é um exemplo de resposta para uma fonte de conhecimento sobre QI de trabalho.

{
  "name": "my-workiq-ks",
  "kind": "workIQ",
  "description": "A sample Work IQ knowledge source.",
  "encryptionKey": null
}

Criar uma fonte de conhecimento

Execute o código seguinte para criar uma fonte de conhecimento Work IQ.

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

Uri searchEndpoint = new Uri("<search-service-url>");
AzureKeyCredential credential = new AzureKeyCredential("<api-key>");
var indexClient = new SearchIndexClient(searchEndpoint, credential);

var knowledgeSource = new WorkIQKnowledgeSource(name: "my-workiq-ks")
{
    Description = "A sample Work IQ knowledge source."
};

await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);
Console.WriteLine($"Knowledge source '{knowledgeSource.Name}' created or updated successfully.");

Referência:SearchIndexClient

from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import WorkIQKnowledgeSource

index_client = SearchIndexClient(
    endpoint="<search-service-url>",
    credential=AzureKeyCredential("<api-key>")
)

knowledge_source = WorkIQKnowledgeSource(
    name="my-workiq-ks",
    description="A sample Work IQ knowledge source."
)

index_client.create_or_update_knowledge_source(knowledge_source=knowledge_source)
print(f"Knowledge source '{knowledge_source.name}' created or updated successfully.")

Referência:SearchIndexClient

### Create a Work IQ knowledge source
PUT {{search-url}}/knowledgesources/my-workiq-ks?api-version=2026-05-01-preview
api-key: {{api-key}}
Content-Type: application/json

{
  "name": "my-workiq-ks",
  "kind": "workIQ",
  "description": "A sample Work IQ knowledge source."
}

Referência:Fontes de Conhecimento - Criar ou Atualizar

Atribuir a uma base de conhecimento

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

Consultar uma base de conhecimento

Depois de configurar a base de conhecimento, invoque a ação de recuperação ou o endpoint MCP para consultar o conteúdo do Work IQ. Esta fonte de conhecimento possui características únicas de aplicação de permissões em tempo de consulta e de resposta.

Importante

O QI de trabalho pode demorar 40–60 segundos ou mais a responder. Para evitar erros de tempo limite, defina maxRuntimeInSeconds no pedido de obtenção para 120 ou superior.

Aplicar permissões no momento da consulta

As fontes de conhecimento do Work IQ utilizam um fluxo de tokens em nome de (OBO). Passa o token de acesso do utilizador final no x-ms-query-source-authorization cabeçalho do pedido de recuperação. O token tem de ter como âmbito a audiência do Pesquisa de IA do Azure (https://search.azure.com/.default). O motor de obtenção troca este token por um token no âmbito do Work IQ e usa-o para efetuar consultas ao Work IQ em nome do utilizador final.

A autenticação padrão do Pesquisa de IA do Azure também é exigida no pedido de recuperação. O x-ms-query-source-authorization token é passado separadamente e não substitui a autenticação do serviço.

Para instruções sobre como passar o token, consulte Impor permissões no momento da consulta (pré-visualização).

Campos de resposta específicos do QI de trabalho

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

  • sourceData.extracts[].text: Passagens de texto fundamentadas do Work IQ.
  • attributions[].seeMoreWebUrl: Um link para o documento de origem em Microsoft 365.

O exemplo seguinte mostra uma resposta de recuperação contendo uma referência de fonte de conhecimento do Work IQ e o respetivo registo de atividade. Para orientações mais amplas sobre a interpretação das respostas de recuperação, consulte Rever a resposta.

Dica

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

{
  "response": [
      // ... Response omitted for brevity
  ],
  "activity": [
    {
      "type": "workIQ",
      "id": 0,
      "knowledgeSourceName": "my-workiq-ks",
      "queryTime": "2026-05-01T19:25:23.683Z",
      "count": 1,
      "elapsedMs": 1137,
      "workIQArguments": {
        "search": "my query"
      }
    },
    {
       // ... Additional activity records omitted for brevity       
    }
  ],
  "references": [
    {
      "type": "workIQ",
      "id": "83dd7d40",
      "activitySource": 0,
      "rerankerScore": 3.5,
      "attributions": [
        {
          "seeMoreWebUrl": "https://..."
        }
      ],
      "sourceData": {
        "extracts": [
          {
            "text": "Have your VPN username and password ready."
          }
        ]
      }
    },
    {
      // ... Additional references omitted for brevity
    }
  ]
}

Eliminar uma fonte de conhecimento

Antes de poder eliminar uma fonte de conhecimento, deve eliminar qualquer base de conhecimento que a faça referência ou atualizar a definição da base 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 eliminados. No entanto, se usou um índice existente para criar uma fonte de conhecimento, o seu índice não é eliminado.

Se tentar eliminar uma fonte de conhecimento que está em uso, a ação falha e devolve uma lista das bases de conhecimento afetadas.

Para eliminar uma fonte de conhecimento:

  1. Obtenha uma lista de todas as bases de conhecimento do 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}");
    }
    

    Referência:SearchIndexClient

    Um exemplo de resposta pode ter a seguinte aparência:

     {
         "@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 da 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);
    

    Referência:SearchIndexClient

    Um exemplo de resposta pode ter a seguinte aparência:

     {
       "Name": "earth-knowledge-base",
       "KnowledgeSources": [
         {
           "Name": "earth-knowledge-source"
         }
       ],
       "Models": [
         {}
       ],
       "RetrievalReasoningEffort": {},
       "OutputMode": {},
       "ETag": "\u00220x8DE278629D782B3\u0022",
       "EncryptionKey": null,
       "Description": null,
       "RetrievalInstructions": null,
       "AnswerInstructions": null
     }
    
  3. Ou apagas a base de conhecimento ou, se tiveres várias fontes de conhecimento, atualizas a base de conhecimento para remover a fonte. 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.");
    

    Referência:SearchIndexClient

  4. Exclua a fonte de conhecimento.

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

    Referência:SearchIndexClient

  1. Obtenha uma lista de todas as bases de conhecimento do 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}")
    

    Referência:SearchIndexClient

    Um exemplo de resposta pode ter a seguinte aparência:

     {
         "@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 da 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)
    

    Referência:SearchIndexClient

    Um exemplo de resposta pode ter a seguinte aparência:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks",
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Ou apagas a base de conhecimento ou, se tiveres várias fontes de conhecimento, atualizas a base de conhecimento para remover a fonte. 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.")
    

    Referência: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.")
    

    Referência:SearchIndexClient

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

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

    Referência:Bases de Conhecimento - Lista

    Um exemplo de resposta pode ter a seguinte aparência:

     {
         "@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 da 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}}
    api-key: {{api-key}}
    

    Referência:Bases de Conhecimento - Obter

    Um exemplo de resposta pode ter a seguinte aparência:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks",
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Ou apagas a base de conhecimento ou, se tiveres várias fontes de conhecimento, atualizas a base de conhecimento para remover a fonte. Este exemplo mostra a exclusão.

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

    Referência:Bases de Conhecimento - Eliminar

  4. Exclua a fonte de conhecimento.

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

    Referência:Fontes de Conhecimento - Eliminar