Agente de dados Fabric de consumo do Microsoft Foundry Services (versão prévia)

Agente de dados no Microsoft Fabric transforma dados corporativos em sistemas de perguntas e respostas conversacionais. Ele permite que os usuários interajam com seus dados por meio do chat, para descobrir insights acionáveis. Uma maneira de consumir Fabric agente de dados é por meio do Foundry Agent Service, um componente principal do Microsoft Foundry. Por meio da integração de Fabric agentes de dados com o Foundry, seus agentes de IA Azure podem acessar diretamente os dados avançados, estruturados e semânticos disponíveis no Microsoft Fabric OneLake. Essa integração fornece acesso imediato a dados corporativos de alta qualidade e capacita seus agentes de IA Azure a gerar insights acionáveis e simplificar fluxos de trabalho analíticos. Em seguida, as organizações podem aprimorar a tomada de decisões orientada por dados com o agente de dados Fabric, como uma fonte poderosa de conhecimento em seus ambientes Azure AI.

Importante

Esse recurso está na versão prévia. Use a versão prévia mais recente do SDK azure-ai-projects Python.

Importante

Quando você configura agentes de dados do Fabric para serem usados no Microsoft Foundry Service, as respostas retornadas pelos agentes de dados do 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 do(s) Microsoft Foundry Service(s) e as políticas de tratamento de dados.

Pré-requisitos

  • Os desenvolvedores e os usuários finais no Foundry devem ter pelo menos a função AI Developer Role-Based Controle de Acesso (RBAC).

Como funciona

Configuração do Agente: No Serviço de Agente, crie um novo agente e adicione o agente de dados Fabric como uma de suas fontes de conhecimento. Para estabelecer essa conexão, você precisa da ID do workspace e da ID do artefato para o agente de dados Fabric. A configuração permite que seu agente de IA Azure avalie as fontes disponíveis quando receber uma consulta, para garantir que ele invoque a ferramenta correta para processar a solicitação. Atualmente, você só pode adicionar um agente de dados Fabric como uma fonte de conhecimento ao agente de IA do Azure.

Observação

O modelo que você seleciona na configuração do Azure AI Agent é usado apenas para orquestração do agente de IA e geração de respostas. Isso não afeta o modelo que Fabric agente de dados usa.

Query Processing: Quando um usuário envia uma consulta do playground do Foundry, o Serviço de Agente determina se o agente de dados Fabric é ou não a melhor ferramenta para a tarefa. Se estiver, o agente de IA do Azure:

  • Usa a identidade do usuário final para gerar consultas seguras nas fontes de dados que o usuário tem permissão para acessar de dentro do agente de dados Fabric.
  • Invoca Fabric para buscar e processar os dados, para garantir uma experiência automatizada e suave.
  • Combina os resultados de Fabric agente de dados com sua própria lógica para gerar respostas abrangentes. A autorização de Passagem de Identidade (On-Behalf-Of) protege esse fluxo, para garantir a segurança robusta e o controle de acesso adequado nos dados corporativos.

Observação

O agente de dados Fabric e os recursos do Foundry devem estar no mesmo locatário, e Microsoft Fabric e Foundry devem ser conectados com a mesma conta.

Adicionar Fabric agente de dados ao agente de IA do Azure

Você pode adicionar um agente de dados Fabric ao agente de IA Azure programaticamente ou com a UI. Para obter exemplos de código detalhados e instruções adicionais, consulte a documentação de integração do agente de IA do Azure.

Adicionar agente de dados do Fabric pela interface do usuário:

  • Navegue até o painel esquerdo. Em Compilar e Personalizar, selecione Agentes, conforme mostrado na seguinte captura de tela:

Screenshot mostrando a página principal Azure Foundry.

Esta etapa exibe a lista de seus agentes de IA Azure existentes. Você pode adicionar Fabric a um desses agentes ou selecionar New Agent para criar um novo agente. A criação do novo agente gera uma ID de agente exclusiva e um nome padrão. Você pode alterar esse nome a qualquer momento. Para obter mais informações, consulte O que é o Azure OpenAI no portal Foundry.

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

Screenshot exibindo adição do agente de dados do Fabric como conhecimento.

Esta etapa abre um menu de tipos de fonte de conhecimento com suporte.

  • Selecione Microsoft Fabric como a Origem: Na lista, escolha Microsoft Fabric, conforme mostrado na seguinte captura de tela:

Screenshot mostrando a seleção de Fabric como fonte de dados de conhecimento.

Com essa opção, seu agente pode acessar o agente de dados Fabric.

  • Crie uma conexão: se você estabeleceu anteriormente uma conexão com um agente de dados Fabric, poderá reutilizar essa conexão para o novo agente de IA do Azure. Caso contrário, selecione Nova Conexão para criar uma conexão, conforme mostrado na seguinte captura de tela:

Screenshot mostrando como criar uma nova conexão do Fabric.

A janela Criar uma nova conexão Microsoft Fabric é aberta, conforme mostrado na seguinte captura de tela:

Captura de tela mostrando a criação de uma conexão.

Ao configurar a conexão, forneça os valores workspace-id e artifact-id do agente de dados Fabric como chaves personalizadas. Você pode encontrar os valores workspace-id e artifact-id no endpoint do agente de dados do Fabric publicado. O ponto de extremidade do agente de dados Fabric tem esse formato: https://fabric.microsoft.com/groups/<workspace_id>/aiskills/<artifact-id>. Marque a caixa de seleção Is Secret .

Por fim, atribua um nome à sua conexão e escolha se deseja disponibilizá-lo a todos os projetos na Foundry ou restringi-lo ao projeto atual.

Depois de selecionar Connect, o agente de dados Microsoft Fabric será adicionado como um recurso Knowledge, conforme mostrado na captura de tela a seguir:

Captura de tela que mostra como adicionar instruções.

Você também deve fornecer instruções ao agente de IA do Azure sobre quando, como e sob quais condições usar o agente de dados Fabric. Do ponto de vista do agente de IA Azure, o agente de dados Fabric é tratado como uma ferramenta de Fabric, para que você possa se referir a ele como tal em suas instruções.

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

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

Etapa 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 do Foundry, encontrado na página Visão geral do seu projeto do Foundry.
  • MODEL_DEPLOYMENT_NAME: o nome da implantação do modelo, conforme listado em Modelos + pontos de extremidade no seu projeto do Foundry.
  • FABRIC_CONNECTION_NAME: O nome da conexão do Microsoft Fabric, conforme aparece nos recursos conectados do Foundry Recursos conectados.

Instale os SDKs de 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

Etapa 2: Criar um agente com a ferramenta Microsoft Fabric habilitada

Para disponibilizar a ferramenta do agente de dados Fabric para o agente de IA Azure, recupere a ID de conexão da conexão nomeada em seu projeto do Foundry e passe-a 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}")

Etapa 3: Criar um thread e enviar 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}")

Etapa 4: Executar o agente e ler a saída

Processe a execução e, em seguida, 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}")