Utilización de un agente de datos de Fabric con el SDK del cliente de Python (versión preliminar)

En este artículo se muestra cómo usar el SDK de cliente de Python para agregar un agente de datos de Fabric a aplicaciones web y otros clientes mediante la autenticación interactiva del explorador. Inicias sesión a través de un navegador con tus credenciales de Microsoft Entra ID y el agente de datos se ejecuta con tus permisos. Al agregar el agente de datos a aplicaciones externas, puede crear interfaces personalizadas, insertar información en flujos de trabajo existentes, automatizar informes y permitir que los usuarios ejecuten consultas de datos de lenguaje natural. Este enfoque proporciona funcionalidades del agente de datos mientras mantiene el control total de la experiencia del usuario y la arquitectura de la aplicación.

Importante

El código de este documento y el repositorio de cliente externo del agente de datos de Fabric usan openAI Assistants API (beta.assistants, beta.threads, beta.threads.runs), que OpenAI desusó con una fecha de cierre del 26 de agosto de 2026. El código actual sigue funcionando hasta el 26 de agosto de 2026 , pero planea migrar al punto de conexión de MCP antes de esta fecha.

Importante

Cuando se usa Python SDK de cliente para agregar un agente de datos de Fabric a aplicaciones web u otros clientes, es posible que las respuestas devueltas por Fabric agentes de datos se envíen fuera del límite de cumplimiento de Fabric o región geográfica. Los términos y directivas de control de datos de la aplicación web o cliente aplicables rigen cómo se procesan y almacenan estas respuestas.

Prerrequisitos

Configuración del entorno en VS Code

  1. Clone o descargue el repositorio del cliente externo de Fabric Data Agent. Después, ábralo en VS Code y ejecute el cliente de ejemplo.

  2. Cree y active un entorno virtual Python (recomendado) e instale las dependencias necesarias.

    python -m venv .venv
    
  3. Active el entorno virtual.

    .venv\Scripts\activate
    

Instalación de dependencias

Ejecute el siguiente comando para instalar dependencias:

pip install -r requirements.txt

Nota:

  • El paquete azure-identity incluido en requirements.txt le permite autenticarse con Microsoft Entra ID.
  • InteractiveBrowserCredentialen el azure-identity paquete se abre un explorador para que pueda iniciar sesión con una cuenta de Microsoft Entra ID. Úselo para el desarrollo local o las aplicaciones que permiten el inicio de sesión interactivo.

Configurar el cliente

Elija uno de estos métodos para establecer los valores necesarios (TENANT_ID y DATA_AGENT_URL):

Establezca los valores en su terminal. Reemplace el texto del marcador de posición entre corchetes angulares por sus propios valores.

export TENANT_ID=<your-azure-tenant-id>
export DATA_AGENT_URL=<your-fabric-data-agent-url>

Consulte la documentación para buscar la dirección URL del agente de datos publicado. Siga las instrucciones para buscar el identificador de inquilino.

Authenticate

Use la clase />

from azure.identity import InteractiveBrowserCredential
from fabric_data_agent_client import FabricDataAgentClient
credential = InteractiveBrowserCredential()

Creación del cliente del agente de datos

client = FabricDataAgentClient(credential=credential)

Nota:

  • El paquete fabric-data-agent-client proporciona el SDK de cliente para conectarse al agente de datos de Fabric.
  • El cliente Python usa la autenticación interactiva del explorador: al ejecutar el script, se abre el explorador predeterminado para que inicie sesión en el inquilino que hospeda el agente de datos Fabric.

Formular una pregunta al agente de datos

Después de autenticarse, interactúe con el agente de datos mediante el cliente Python.

response = client.ask("What were the total sales last quarter?")
print(f"Response: {response}")

El client.ask método envía la pregunta al agente de datos y devuelve un objeto con la respuesta. Puede ver los pasos que realizó el agente de datos y las consultas correspondientes que generó para obtener la respuesta.

run_details = client.get_run_details("What were the total sales last quarter?")
messages = run_details.get('messages', {}).get('data', [])
assistant_messages = [msg for msg in messages if msg.get('role') == 'assistant']

print("Answer:", assistant_messages[-1])

Opcional: Inspeccione los pasos y la consulta correspondiente.

Inspeccione los pasos que tomó el agente de datos para llegar a la respuesta, incluidos los errores durante la ejecución.

for step in run_details['run_steps']['data']:
        tool_name = "N/A"
        if 'step_details' in step and step['step_details'] and 'tool_calls' in step['step_details']:
            tool_calls = step['step_details']['tool_calls']
            if tool_calls and len(tool_calls) > 0 and 'function' in tool_calls[0]:
                tool_name = tool_calls[0]['function'].get('name', 'N/A')
        print(f"Step ID: {step.get('id')}, Type: {step.get('type')}, Status: {step.get('status')}, Tool Name: {tool_name}")
        if 'error' in step:
            print(f"  Error: {step['error']}")

Esta salida le ayuda a comprender cómo el agente generó su respuesta y proporciona transparencia al trabajar con los datos en el cliente de Python.