Mit Gemini einen Agent für die KI-Datenexploration erstellen

Erstellen Sie eine auf künstlicher Intelligenz (KI) basierende Chatoberfläche für die Programmierschnittstellen Ihres Unternehmenssystems und ermöglichen Sie Ihren Kollegen, Fragen zu Ihren Geschäftsdaten zu stellen. Analysen und Berichte zu den Daten Ihrer Organisation sind unerlässlich, um Ihre Geschäftsabläufe zu verbessern. Mit den richtigen Daten ist es möglich, Probleme zu finden, Trends zu entdecken und Ergebnisse zu untersuchen. Als Entwickler ist es jedoch eine Herausforderung, Ihren nicht programmierenden Kollegen zu helfen, die richtigen Daten zu finden.

Das Projekt SQL Talk ist eine Open-Source-Anwendung, die Generative AI-Technologie nutzt, um Fragen zu Geschäftsdaten zu beantworten. Im Projekt werden die Gemini API und die Funktion Funktionsaufruf verwendet, um Geschäftsdatenfragen in SQL-Abfragen und API-Aufrufe umzuwandeln und die Ergebnisse anschließend wieder in einfache Sprache umzuwandeln. Sie können dieses Projekt als Ausgangspunkt für die Erstellung eines Daten-Agents für Ihr eigenes Unternehmen verwenden und Ihren Kollegen helfen, Antworten zu erhalten, ohne dass Sie eine Menge Einmalcode schreiben müssen.

Ein Video mit einem Überblick über das Projekt und wie es erweitert werden kann, einschließlich der Erkenntnisse der Entwickler, finden Sie unter AI Data Agent | Build with Google AI. Alternativ können Sie mit dem Erweitern des Projekts beginnen, indem Sie die folgenden Anweisungen befolgen.

Benutzeroberfläche der SQL Talk-Projektanwendung

Abbildung 1: Benutzeroberfläche der SQL Talk-Projektanwendung.

Projekt einrichten

In dieser Anleitung erfahren Sie, wie Sie das SQL Talk-Projekt für Entwicklung und Tests einrichten. Die allgemeinen Schritte bestehen darin, das SQL Talk-Projekt zu erstellen, ein Entwicklungsprojekt für den Google Cloud Shell Editor einzurichten, eine Google Cloud-Projekt-ID abzurufen und die Projekteinstellungen mithilfe eines Skripts zu konfigurieren. In dieser Anleitung wird beschrieben, wie Sie das Projekt mit dem Cloud Shell-Editor einrichten, was das Einrichten, Ausführen und Aktualisieren des Projekts schnell und einfach macht.

Cloud Shell-Instanz für das Projekt erstellen

Sie können das SQL Talk-Projekt einrichten, indem Sie das Projekt-Repository in eine Cloud Shell-Instanz klonen. Bei diesem Vorgang wird in der Google Cloud-Infrastruktur für das Projekt eine Instanz der virtuellen Entwicklungsumgebung eingerichtet und das Code-Repository in diese virtuelle Umgebung geklont.

So erstellen Sie eine Cloud Shell-Instanz für SQL Talk:

Über diesen Link wird eine Google Cloud Shell-Editor-Instanz eingerichtet und das Repository für SQL Talk in die Instanz geklont.

Google Cloud Shell-Editor mit angezeigtem SQL Talk-Projektcode

Abbildung 2: Ein SQL Talk-Projekt, das in eine Entwicklungsumgebung des Google Cloud Shell-Editors geklont wurde

Cloud-Projekt-ID abrufen

Das SQL Talk-Projekt verwendet eine Google Cloud-Projekt-ID, um eine Verbindung zu Google Cloud-Diensten herzustellen, einschließlich der Gemini-Modelle. Sie konfigurieren eine Projekt-ID im Cloud Shell-Editor, damit die Anwendung eine Verbindung zu diesen Diensten herstellen kann.

So verbinden Sie den Cloud Shell-Editor mit einer Projekt-ID:

  1. Rufen Sie die Google Cloud Console auf und melden Sie sich an, falls erforderlich.
  2. Wählen Sie ein vorhandenes Cloud-Projekt aus oder erstellen Sie ein neues.
  3. Notieren Sie sich die Cloud-Projekt-ID des Projekts.
  4. Verbinden Sie die Editor-Instanz mit Ihrem Projekt und konfigurieren Sie das Projekt. Geben Sie im Cloud Shell-Editorfenster den folgenden Befehl ein:

    gcloud config set project YOUR_PROJECT_ID
    

SQL Talk-Projekt konfigurieren

Das SQL Talk-Projekt verwendet Google Cloud-Dienste, um das Projekt auszuführen, einschließlich des BigQuery und der Vertex AI API, um eine Verbindung zu Gemini-Modellen herzustellen. Das SQL Talk-Projekt enthält ein setup.sh-Skript, das das Projekt mit den erforderlichen Google Cloud-Diensten konfiguriert und die Standardversion des Projekts startet.

So konfigurieren Sie die Projektinstanz des Cloud Shell-Editors und führen sie aus:

  1. Gehen Sie im Terminalfenster des Cloud Shell-Editors zum Projektverzeichnis von Cloud Shell SQL Talk (/sql-talk-app):

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  2. Geben Sie im Terminalfenster den folgenden Befehl ein:

    bash setup.sh
    

Wenn das Einrichtungsskript erfolgreich abgeschlossen wurde, sollten Sie im Terminalfenster des Cloud Shell-Editors eine Meldung ähnlich der folgenden sehen. Diese Meldung gibt an, dass der Einrichtungsprozess erfolgreich war und die SQL Talk-Anwendung ausgeführt wird:

You can now view your Streamlit app in your browser.
Network URL: http://##.##.##.##:8080
External URL: http://##.##.##.##:8080

Das Projekt testen

Sobald Sie die Einrichtung des SQL Talk-Projekts abgeschlossen haben, können Sie die Anwendung testen, um zu prüfen, ob sie wie erwartet funktioniert. Das Einrichtungsskript startet die Anwendung automatisch, wenn Sie sie ausführen. Sie können die Anwendung mit den folgenden Schritten neu starten.

So führen Sie die SQL Talk-Anwendung aus:

  1. Wenn der Cloud Shell-Editor inaktiv und nicht verbunden ist, müssen Sie möglicherweise die Verbindung zu Ihrer Cloud-Projekt-ID wiederherstellen.

    gcloud config set project YOUR_PROJECT_ID
    
  2. Gehen Sie im Terminalfenster des Cloud Shell-Editors zum Cloud Shell SQL Talk-Projektverzeichnis.

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  3. Geben Sie im Terminal-Steuerfeld den folgenden Befehl ein.

    ~/miniforge/bin/streamlit run app.py --server.enableCORS=false \
        --server.enableXsrfProtection=false --server.port 8080
    
  4. Sehen Sie sich die SQL Talk-Anwendung an. Wählen Sie rechts oben im Cloud Shell-Editorfenster die Schaltfläche Webvorschau und dann Vorschau auf Port 8080 aus.

Überschrift des Cloud Shell-Editors mit hervorgehobener Schaltfläche „Webvorschau“

So zeigen Sie Aktualisierungen für die SQL Talk-Anwendung an:

  • Aktualisieren Sie in der Webvorschau der SQL Talk-Webanwendung den Browser oder Browsertab.

So beenden Sie die SQL Talk-Anwendung:

  • Geben Sie im Terminalfenster des Cloud Shell-Editors Strg + C ein.

Anwendung ändern

Sie können das Verhalten ändern und der SQL Talk-Anwendung Funktionen hinzufügen, indem Sie den Python-Code für die Anwendung anpassen. In diesem Abschnitt wird beschrieben, wie Sie der SQL Talk-Anwendung einen neuen Funktionsaufruf hinzufügen.

Die Funktionsaufruf-Funktion der Gemini API verwendet eine bestimmte Syntax, um Funktionen zu definieren, die vom generativen Modell zur Beantwortung von Fragen oder zum Lösen von Problemen verwendet werden sollen. Diese Syntax muss nicht genau mit der Syntax eines tatsächlichen API-Aufrufs übereinstimmen. Stattdessen verwenden Sie die Funktion „Funktionsaufruf“, um das generative Modell dazu zu zwingen, bestimmte Dateneingaben oder Parameter bereitzustellen, die der API-Aufrufsyntax entsprechen. Diese Parameter verwenden Sie dann, um die tatsächlichen API-Aufrufe im Anwendungscode auszuführen.

Diese Beispielimplementierung zeigt, wie Sie eine Funktionsaufrufdefinition zum Auflisten aktueller Datenbankabfragen oder -jobs erstellen und diese Definition dann dem tatsächlichen API-Aufruf im SQL Talk-Anwendungscode zuordnen.

Funktionsaufrufdefinition hinzufügen

Fügen Sie einen neuen Funktionsaufruf zum Auflisten aktueller Datenbankabfragen oder -jobs hinzu. Das generative Modell verwendet diese Definition, um zu verstehen, was der API-Aufruf tut und welche Eingabeparameter er erfordert. Diese Beispielfunktionsdefinition ist ohne Parameter definiert.

So fügen Sie der Anwendung einen neuen Funktionsaufruf hinzu:

  1. Öffnen Sie im Cloud Shell-Editorfenster die Codedatei sql-talk-app/app.py.
  2. Fügen Sie nach der list_datasets_func-Funktionsdeklaration eine neue FunctionDeclaration hinzu.

    list_jobs_func = FunctionDeclaration(
        name="list_jobs",
        description="Get a list of the 10 most recent database requests to help answer the user's question",
        parameters={
            "type": "object",
            "properties": {
      },
    },
    )
    
  3. Fügen Sie dem sql_query_tool-Objekt die neue Funktion hinzu.

    sql_query_tool = Tool(
        function_declarations=[
            sql_query_func,
            list_datasets_func,
            List_jobs_func,  # add this new function
            list_tables_func,
            get_table_func,
        ],
    )
    

So fügen Sie Code zum Ausführen des API-Aufrufs für die neue Funktion hinzu:

  • Fügen Sie in der Codedatei sql-talk-app/app.py der while function_calling_in_process:-Schleife eine neue if-Klausel hinzu.

    if response.function_call.name == "list_datasets":
        ...
    
    # add this if clause for list_jobs function
    if response.function_call.name == "list_jobs":
        api_response = client.list_jobs(max_results=10)  # API request(s)
        api_response = str([job.job_id for job in api_response])
        api_requests_and_responses.append(
          [response.function_call.name,params, api_response])
    

Zusätzliche Ressourcen

Weitere Informationen zum SQL-Abfrageprojekt finden Sie im Code-Repository und im Cloud-Community-Blogpost zum SQL Talk-Projekt. Wenn Sie Hilfe beim Erstellen der Anwendung benötigen oder mit anderen Entwicklern zusammenarbeiten möchten, besuchen Sie den Google Developers-Community Discord-Server und das KI/ML-Forum von Google Cloud. Weitere KI-Projekte von Build with Google finden Sie in der Videoplaylist.