Consuma o agente de dados do Fabric dos serviços Microsoft Foundry (prévia)

O agente de dados no Microsoft Fabric transforma dados empresariais em sistemas de perguntas e respostas conversacionais. Ele permite que os usuários interajam com seus dados por meio de bate-papo, para descobrir insights acionáveis. Uma forma de consumir o agente de dados Fabric é através do Foundry Agent Service, um componente central do Microsoft Foundry. Através da integração dos agentes de dados Fabric com o Foundry, os seus agentes de IA do Azure podem aceder diretamente aos dados ricos, estruturados e semânticos disponíveis no Microsoft Fabric OneLake. Esta integração proporciona acesso imediato a dados empresariais de alta qualidade e capacita os seus agentes de IA Azure a gerar insights acionáveis e a otimizar fluxos de trabalho analíticos. As organizações podem então melhorar a tomada de decisão orientada por dados com o agente de dados Fabric como fonte poderosa de conhecimento nos seus ambientes de IA Azure.

Importante

Este recurso está em pré-visualização. Use a versão de pré-visualização mais recente do SDK de Python azure-ai-projects.

Importante

Quando configura agentes de dados Fabric para serem consumidos no Microsoft Foundry Service, as respostas devolvidas pelos agentes de dados Fabric podem ser enviadas para fora do limite de conformidade ou da região geográfica do Fabric, e processadas e/ou armazenadas de acordo com os termos aplicáveis(s) do(s) Serviço(s) Microsoft Foundry e as políticas de tratamento de dados.

Pré-requisitos

  • Os programadores e utilizadores finais no Foundry devem ter, pelo menos, a função de Controlo de Acesso Baseado em Funções (RBAC).

Como funciona

Agent Setup: No Agent Service, crie um novo agente e adicione Fabric data agent como uma das suas fontes de conhecimento. Para estabelecer esta ligação, precisas do ID do workspace e do ID do artefacto para o agente de dados do Fabric. A configuração permite que o seu agente de IA do Azure avalie as fontes disponíveis quando recebe uma consulta, para garantir que invoca a ferramenta correta para processar o pedido. Atualmente, só pode adicionar um agente de dados Fabric como fonte de conhecimento ao seu agente Azure AI.

Observação

O modelo que selecionas na configuração do Azure AI Agent é usado apenas para orquestração e geração de respostas do Azure AI agent. Não afeta o modelo que o agente de dados Fabric utiliza.

Processamento de Consultas: Quando um utilizador envia uma consulta a partir do playground Foundry, o Serviço de Agente determina se o agente de dados Fabric é a melhor ferramenta para a tarefa. Se for, o agente Azure AI:

  • Utiliza a identidade do utilizador final para gerar consultas seguras sobre as fontes de dados que o utilizador tem permissão para aceder a partir do agente de dados Fabric.
  • Invoca o Fabric para buscar e processar os dados, garantindo uma experiência fluida e automatizada.
  • Combina os resultados do agente de dados Fabric com a sua própria lógica para gerar respostas abrangentes. A autorização de passagem de identidade (On-Behalf-Of) protege este fluxo, garantindo uma segurança robusta e um controlo de acesso adequado em todos os dados empresariais.

Observação

O agente de dados do Fabric e os recursos do Foundry devem estar no mesmo inquilino, e tanto o Microsoft Fabric como o Foundry devem estar ligados com a mesma conta.

Adicione o Fabric data agent ao seu Azure AI Agent

Pode adicionar um agente de dados Fabric ao seu agente de IA do Azure, seja programaticamente ou através da interface de utilizador (UI). Para exemplos detalhados de código e instruções adicionais, consulte a documentação de integração do Azure AI Agent.

Adicionar agente de dados do Fabric através da UI

  • Navegue até o painel esquerdo. Sob Criar e Personalizar, selecione Agentes, conforme mostrado na captura de ecrã a seguir.

Captura de ecrã mostrando a página principal Azure Foundry.

Este passo mostra a lista dos seus agentes Azure AI existentes. Pode adicionar Fabric a um destes agentes, ou pode selecionar Novo Agente para criar um novo agente. A criação de um novo agente gera um ID de agente exclusivo e um nome padrão. Você pode alterar esse nome a qualquer momento. Para mais informações, consulte O que é Azure OpenAI no portal Foundry.

  • Inicie a adição de uma fonte de conhecimento: selecione o botão Adicionar, conforme mostrado na captura de tela a seguir.

Captura de ecrã a mostrar a adição do agente de dados Fabric como conhecimento.

Este passo abre um menu de tipos de fonte de conhecimento suportados.

  • Selecione Microsoft Fabric como Fonte: Da lista, escolha Microsoft Fabric, como mostrado na seguinte captura de ecrã:

Captura de ecrã mostrando a seleção de Fabric como fonte de conhecimento.

Com esta opção, o seu agente pode aceder ao agente de dados Fabric.

  • Crie uma ligação: Se já estabeleceu uma ligação a um agente de dados Fabric, pode reutilizar essa ligação para o seu novo Agente de IA Azure. Caso contrário, selecione Nova conexão para criar uma conexão, conforme mostrado na captura de tela a seguir:

Captura de ecrã a mostrar como criar uma nova ligação Fabric.

A janela Criar uma nova ligação Microsoft Fabric abre-se, como mostrado na seguinte captura de ecrã:

Captura de ecrã que mostra a criação de uma ligação.

Quando configurares a ligação, fornece os valores do agente de dados Fabric workspace-id e artifact-id como chaves personalizadas. Pode encontrar os valores workspace-id e artifact-id no endpoint publicado do agente de dados Fabric. O endpoint do teu agente de dados Fabric tem este formato: https://fabric.microsoft.com/groups/<workspace_id>/aiskills/<artifact-id>. Selecione a caixa de verificação É secreto.

Por fim, atribua um nome à tua ligação e escolhe se a disponibilizas a todos os projetos no Foundry ou se a restringes ao projeto atual.

Depois de selecionar Connect, o agente de dados Microsoft Fabric é adicionado como um recurso Knowledge, como mostrado na captura de ecrã seguinte:

Captura de ecrã que mostra como adicionar instruções.

Deve também fornecer instruções ao seu agente de IA do Azure sobre quando, como e em que condições usar o agente de dados Fabric. Do ponto de vista do agente de IA do Azure, o agente de dados Fabric é tratado como uma ferramenta Fabric, por isso pode referir-se a ele assim nas suas instruções.

Você também pode ajustar o modelo de implantação, adicionar Ações ou alterar as configurações do modelo com base nos requisitos do seu caso de uso. Quando o seu agente de IA Azure estiver totalmente configurado, selecione Experimentar no playground para testar o seu desempenho.

Adicionar Fabric agente de dados programaticamente: Os passos seguintes descrevem como adicionar um agente de dados Fabric programaticamente ao seu agente de IA Azure em Python. Para outras linguagens (C#, JavaScript), consulte este recurso.

Passo 1: Configurar variáveis de ambiente e importar o SDK

Defina as seguintes variáveis de ambiente antes de executar o código:

  • PROJECT_ENDPOINT: O endpoint do projeto Foundry, encontrado na página de Visão Geral do seu projeto Foundry.
  • MODEL_DEPLOYMENT_NAME: O nome de implementação do modelo, conforme listado em Modelos + endpoints no seu projeto Foundry.
  • FABRIC_CONNECTION_NAME: O nome da ligação Microsoft Fabric, tal como aparece na sua Foundry Connected resources.

Instale os SDKs de pré-visualização e importe os módulos:

pip install azure-identity
pip install --pre azure-ai-projects
import os
from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
from azure.ai.agents.models import FabricTool, ListSortOrder

Passo 2: Crie um agente com a ferramenta Microsoft Fabric ativada

Para disponibilizar a ferramenta Fabric Data Agent ao seu agente de IA do Azure, obtenha o ID da ligação a partir da ligação com nome no seu projeto Foundry e, em seguida, passe-o para FabricTool:

project_client = AIProjectClient(
    endpoint=os.environ["PROJECT_ENDPOINT"],
    credential=DefaultAzureCredential(),
)

# Look up the Fabric connection by name
conn_id = project_client.connections.get(os.environ["FABRIC_CONNECTION_NAME"]).id

# Initialize the Fabric tool with the connection ID
fabric = FabricTool(connection_id=conn_id)

with project_client:
    agents_client = project_client.agents

    agent = agents_client.create_agent(
        model=os.environ["MODEL_DEPLOYMENT_NAME"],
        name="my-agent",
        instructions="You are a helpful agent",
        tools=fabric.definitions,
    )
    print(f"Created agent, ID: {agent.id}")

Passo 3: Crie um tópico e envie uma mensagem

    # Create a thread for communication
    thread = agents_client.threads.create()
    print(f"Created thread, ID: {thread.id}")

    # Add a message to the thread
    message = agents_client.messages.create(
        thread_id=thread.id,
        role="user",
        content="What is the top sold product in Contoso last month?",
    )
    print(f"Created message, ID: {message.id}")

Passo 4: Execute o agente e leia a saída

Processe a execução e depois itere as mensagens para ler a resposta do agente:

    # Create and process the run with the Fabric tool
    run = agents_client.runs.create_and_process(thread_id=thread.id, agent_id=agent.id)
    print(f"Run finished with status: {run.status}")

    if run.status == "failed":
        print(f"Run failed: {run.last_error}")

    # Delete the agent when finished
    agents_client.delete_agent(agent.id)
    print("Deleted agent")

    # Fetch and print all messages in the thread
    messages = agents_client.messages.list(thread_id=thread.id, order=ListSortOrder.ASCENDING)
    for msg in messages:
        if msg.text_messages:
            last_text = msg.text_messages[-1]
            print(f"{msg.role}: {last_text.text.value}")