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

Erstellen Sie eine KI-gestützte Chatoberfläche für die Programmierschnittstellen Ihres Unternehmenssystems und lassen Sie Ihre Kollegen Fragen zu Ihren Geschäftsdaten stellen. Analysen und Berichte zu den Daten Ihres Unternehmens sind unerlässlich, um Ihre Geschäftsabläufe zu verbessern. Mit den richtigen Daten lassen sich Probleme finden, Trends erkennen und Ergebnisse untersuchen. Als Entwickler kann es jedoch schwierig sein, Ihren Kollegen, die nicht programmieren, bei der Suche nach den richtigen Daten zu helfen.

Das Projekt SQL Talk ist eine Open-Source-Anwendung, die mithilfe von generativer KI-Technologie Fragen zu Geschäftsdaten beantwortet. Das Projekt verwendet die Gemini API und die Funktion Function Calling, um Fragen zu Geschäftsdaten in SQL-Abfragen und API-Aufrufe umzuwandeln und die Ergebnisse dann wieder in einfache Sprache umzuwandeln. Sie können dieses Projekt als Ausgangspunkt für die Erstellung eines Datenagenten für Ihr eigenes Unternehmen verwenden und Ihren Kollegen helfen, Antworten zu erhalten, ohne dass Sie eine Menge Einmalcode schreiben müssen.

Eine Videoübersicht über das Projekt und seine Erweiterungsmöglichkeiten, einschließlich Einblicken von den Entwicklern, finden Sie unter AI Data Agent | Build with Google AI. Andernfalls können Sie mit der folgenden Anleitung beginnen, das Projekt zu erweitern.

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 die Entwicklung und Tests einrichten. Die allgemeinen Schritte sind das Erstellen des SQL Talk-Projekts, das Einrichten eines Google Cloud Shell-Editors, das Abrufen einer Google Cloud-Projekt-ID und die Konfiguration der Projekteinstellungen mit einem Script. In dieser Anleitung wird beschrieben, wie Sie das Projekt mit dem Cloud Shell-Editor einrichten. So können Sie das Projekt schnell und einfach einrichten, ausführen und aktualisieren.

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. Dabei wird eine Instanz einer virtuellen Entwicklungsumgebung innerhalb der Google Cloud-Infrastruktur für das Projekt 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 dem Code des SQL Talk-Projekts

Abbildung 2: SQL Talk-Projekt, das in eine Google Cloud Shell-Entwicklungsumgebung 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 stellen Sie eine Verbindung zwischen dem Cloud Shell-Editor und einer Projekt-ID her:

  1. Rufen Sie die Google Cloud Console auf und melden Sie sich bei Bedarf an.
  2. Wählen Sie ein vorhandenes Cloud-Projekt aus oder erstellen Sie ein neues.
  3. Notieren Sie sich die Cloud-Projekt-ID für das Projekt.
  4. Verbinden Sie die Editorinstanz mit Ihrem Projekt und konfigurieren Sie das Projekt. Geben Sie im Cloud Shell-Editor-Fenster im Terminalbereich den folgenden Befehl ein:

    gcloud config set project YOUR_PROJECT_ID
    

SQL Talk-Projekt konfigurieren

Für das SQL Talk-Projekt werden Google Cloud-Dienste verwendet, darunter der BigQuery-Datenbankdienst und die Vertex AI API, um eine Verbindung zu Gemini-Modellen herzustellen. Das SQL Talk-Projekt enthält ein setup.sh-Script, mit dem das Projekt mit den erforderlichen Google Cloud-Diensten konfiguriert und die Standardversion des Projekts gestartet wird.

So konfigurieren und starten Sie die Cloud Shell-Editor-Instanz des Projekts:

  1. Rufen Sie im Cloud Shell-Editor-Fenster im Terminalbereich das Projektverzeichnis „Cloud Shell SQL Talk“ (/sql-talk-app) auf:

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

    bash setup.sh
    

Wenn das Einrichtungsskript erfolgreich abgeschlossen wurde, sollte im Terminalfenster des Cloud Shell-Editors eine Meldung ähnlich der folgenden angezeigt werden. Diese Meldung gibt an, dass die Einrichtung 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

Projekt testen

Nachdem 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 es ausführen. Sie können die Anwendung auch mit den folgenden Schritten neu starten.

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

  1. Wenn der Cloud Shell-Editor inaktiv war und die Verbindung getrennt wurde, müssen Sie möglicherweise eine neue Verbindung zu Ihrer Cloud-Projekt-ID herstellen.

    gcloud config set project YOUR_PROJECT_ID
    
  2. Rufen Sie im Cloud Shell-Editor im Terminalbereich das Verzeichnis des Cloud Shell SQL Talk-Projekts auf.

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

    ~/miniforge/bin/streamlit run app.py --server.enableCORS=false \
        --server.enableXsrfProtection=false --server.port 8080
    
  4. SQL Talk-Anwendung ansehen Klicken Sie oben rechts im Cloud Shell-Editor auf die Schaltfläche Webvorschau und dann auf Vorschau auf Port 8080.

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

So rufen Sie Updates für die SQL Talk-Anwendung auf:

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

So beenden Sie die SQL Talk-Anwendung:

  • Geben Sie im Terminalbereich 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 ändern. In diesem Abschnitt wird beschrieben, wie Sie der SQL Talk-Anwendung einen neuen Funktionsaufruf hinzufügen.

Mit der Funktion Funktionsaufruf der Gemini API werden Funktionen mit einer bestimmten Syntax definiert, die vom generativen Modell verwendet werden, um Fragen zu beantworten oder Probleme zu lösen. Diese Syntax muss nicht genau mit der Syntax eines tatsächlichen API-Aufrufs übereinstimmen. Stattdessen können Sie mit der Funktion „Funktionsaufruf“ das generative Modell dazu zwingen, bestimmte Dateneingaben oder Parameter bereitzustellen, die der Syntax des API-Aufrufs entsprechen. Anschließend können Sie diese Parameter verwenden, um die eigentlichen API-Aufrufe in Ihrem Anwendungscode auszuführen.

In dieser Beispielimplementierung wird gezeigt, wie Sie eine Funktionsaufrufdefinition zum Auflisten der letzten 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 hinzu, um die letzten Datenbankabfragen oder ‑jobs aufzulisten. Anhand dieser Definition versteht das generative Modell, was der API-Aufruf bewirkt und welche Eingabeparameter erforderlich sind. Diese Beispielfunktionsdefinition ist ohne Parameter definiert.

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

  1. Öffnen Sie im Cloud Shell-Editor-Fenster die Codedatei sql-talk-app/app.py.
  2. Fügen Sie nach der Funktionsdeklaration list_datasets_func 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 die neue Funktion dem sql_query_tool-Objekt 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 hinzu, um den API-Aufruf für die neue Funktion auszuführen:

  • 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 Discord-Server der Google Developers Community und das Google Cloud AI/ML-Forum. Weitere Projekte von „Mit KI von Google entwickeln“ finden Sie in der Videoplaylist.