Verwenden Sie einen Fabric-Daten-Agenten mit dem Python-Client-SDK (Vorschau)

In diesem Artikel wird gezeigt, wie Sie mithilfe des Python-Client-SDKs einen Fabric Daten-Agent zu Web-Apps und anderen Clients mithilfe der interaktiven Browserauthentifizierung hinzufügen. Sie melden sich über einen Browser mit Ihren Microsoft Entra ID-Anmeldeinformationen an, und der Datenagent läuft mit Ihren Berechtigungen. Indem Sie den Daten-Agent zu externen Apps hinzufügen, können Sie benutzerdefinierte Schnittstellen erstellen, Einblicke in vorhandene Workflows einbetten, Berichte automatisieren und Benutzern das Ausführen von Datenabfragen in natürlicher Sprache ermöglichen. Dieser Ansatz bietet Ihnen Daten-Agent-Funktionen, während Sie die vollständige Kontrolle über die Benutzererfahrung und die App-Architektur behalten.

Von Bedeutung

Der Code in diesem Dokument und im Fabric Data Agent External Client repository verwenden die OpenAI Assistants API (beta.assistants, beta.threads, beta.threads.runs), die OpenAI als veraltet eingestuft hat und für die der 26. August 2026 als Abschaltdatum festgelegt wurde. Der aktuelle Code funktioniert bis zum 26. August 2026 weiterhin, plant jedoch die Migration zum MCP-Endpunkt vor diesem Datum.

Von Bedeutung

Wenn Sie das Python-Client-SDK verwenden, um Web-Apps oder anderen Clients einen Fabric-Daten-Agent hinzuzufügen, könnten Antworten, die von Fabric-Daten-Agenten zurückgegeben werden, außerhalb der Compliance-Grenze oder der geografischen Region von Fabric gesendet werden. Die geltenden Web-App- oder Clientbedingungen und Datenverarbeitungsrichtlinien steuern, wie diese Antworten verarbeitet und gespeichert werden.

Voraussetzungen

Einrichten Ihrer Umgebung in VS Code

  1. Klonen Sie das Repository des externen Fabric-Datenagent-Clients, oder laden Sie es herunter. Öffnen Sie sie dann in VS Code, und führen Sie den Beispielclient aus.

  2. Erstellen und aktivieren Sie eine Python virtuelle Umgebung (empfohlen), und installieren Sie die erforderlichen Abhängigkeiten.

    python -m venv .venv
    
  3. Aktivieren Sie die virtuelle Umgebung.

    .venv\Scripts\activate
    

Installieren von Abhängigkeiten

Führen Sie den folgenden Befehl aus, um Abhängigkeiten zu installieren:

pip install -r requirements.txt

Hinweis

  • Mit dem in azure-identity enthaltenen Paket requirements.txt können Sie sich bei Microsoft Entra ID authentifizieren.
  • InteractiveBrowserCredential aus dem azure-identity Paket öffnet einen Browser, damit Sie sich mit einem Microsoft Entra ID-Konto anmelden können. Verwenden Sie sie für lokale Entwicklung oder Apps, die interaktive Anmeldung zulassen.

Konfigurieren des Clients

Wählen Sie eine dieser Methoden aus, um die erforderlichen Werte festzulegen (TENANT_ID und DATA_AGENT_URL):

Setzen Sie die Werte in Ihrer Shell. Ersetzen Sie den Platzhaltertext in spitzen Klammern mit Ihren eigenen Werten.

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

In der Dokumentation finden Sie die URL des veröffentlichten Datenagents. Folgen Sie den Anweisungen, um Ihre Mandanten-ID zu finden.

Authentifizieren

Verwenden Sie die klasse InteractiveBrowserCredential, um sich mit Microsoft Entra ID in einem Browser zu authentifizieren.

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

Erstellen des Daten-Agent-Clients

client = FabricDataAgentClient(credential=credential)

Hinweis

  • Das fabric-data-agent-client-Paket stellt das Client-SDK zum Herstellen einer Verbindung mit dem Fabric Daten-Agent bereit.
  • Der Python-Client verwendet die interaktive Browserauthentifizierung: Wenn Sie das Skript ausführen, wird Ihr Standardbrowser geöffnet, sodass Sie sich beim Mandanten anmelden, der den Fabric-Daten-Agent hostt.

Stellen Sie dem Datenagent eine Frage

Nachdem Sie sich authentifiziert haben, interagieren Sie mit dem Daten-Agent mithilfe des Python-Clients.

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

Die client.ask Methode sendet Ihre Frage an den Daten-Agent und gibt ein Objekt mit der Antwort zurück. Sie können die Schritte anzeigen, die der Daten-Agent ausgeführt hat, und die entsprechenden Abfragen, die er generiert hat, um die Antwort zu erhalten.

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])

Optional: Überprüfen der Schritte und der entsprechenden Abfrage

Überprüfen Sie die Schritte, die der Daten-Agent ausgeführt hat, um zur Antwort zu gelangen, einschließlich aller Fehler während der Ausführung.

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']}")

Diese Ausgabe hilft Ihnen zu verstehen, wie der Agent seine Antwort produziert hat, und gibt Transparenz, wenn Sie mit Ihren Daten im Python Client arbeiten.