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

Eine Chatoberfläche für Ihr Unternehmen erstellen, die auf künstlicher Intelligenz (KI) basiert System-Programmierschnittstellen und lassen Sie Ihre Kollegen Fragen Geschäftsdaten. Das Durchführen von Analysen und Berichten über die Daten Ihres Unternehmens um Ihr Geschäft zu verbessern. Probleme finden, entdecken Trends und Untersuchungsergebnisse sind allesamt mit den richtigen Daten möglich, aber als Entwickelnden helfen, die richtigen Daten zu finden, herausfordernd ist.

Die SQL Talk ist eine Open-Source-Anwendung, die mithilfe von generativer KI-Technologie Fragen zu Geschäftsdaten zu beantworten. Das Projekt nutzt die Gemini API und die Funktionsaufruf, um Geschäftsdaten in SQL-Abfragen und API-Aufrufe umwandeln Ergebnisse in eine einfache Sprache umwandeln. Sie können dieses Projekt als um einen Daten-Agent für Ihr eigenes Unternehmen zu erstellen Antworten erhalten, ohne dass Sie Einmalcode schreiben müssen.

Videoübersicht über das Projekt und wie Sie es erweitern können, einschließlich Erkenntnissen von den Entwicklern finden Sie KI-Datenagent | Mit Google AI entwickeln. Andernfalls können Sie das Projekt folgendermaßen erweitern: Anleitung.

Benutzeroberfläche der Projektanwendung „SQL Talk“

Abbildung 1. Benutzeroberfläche der Projektanwendung „SQL Talk“

Projekt einrichten

Diese Anleitung führt Sie durch die Einrichtung des SQL Talk-Projekts für Entwicklung und Tests. Die allgemeinen Schritte umfassen das Erstellen von SQL Talk Projekt erstellen, indem Sie einen Google Cloud Shell-Editor einrichten Entwicklungsprojekt, das Abrufen einer Google Cloud-Projekt-ID und die Verwendung eines zum Konfigurieren der Projekteinstellungen. In dieser Anleitung wird beschrieben, wie Sie das Projekt mit dem Cloud Shell-Editor einrichten, und das Projekt schnell und einfach zu aktualisieren.

Cloud Shell-Instanz für das Projekt erstellen

Sie können das SQL Talk-Projekt einrichten, indem Sie das Projekt-Repository in ein Cloud Shell-Instanz. Durch diesen Prozess wird eine virtuelle Entwicklungsumgebung eingerichtet -Instanz in der Google Cloud-Infrastruktur für das Projekt und klont den Code-Repository in diese virtuelle Umgebung ein.

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

Über diesen Link wird eine Instanz des Google Cloud Shell-Editors eingerichtet und die für SQL Talk in die Instanz.

Google Cloud Shell-Editor mit dem SQL Talk-Projektcode

Abbildung 2: SQL Talk-Projekt in einen Google Cloud Shell-Editor geklont Entwicklungsumgebung.

Cloud-Projekt-ID abrufen

Das SQL Talk-Projekt verwendet eine Google Cloud-Projekt-ID, um eine Verbindung zu Google Cloud 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 Seite Google Cloud und melden Sie sich gegebenenfalls an.
  2. Wählen Sie ein vorhandenes Cloud-Projekt aus oder erstellen Sie eine neue.
  3. Notieren Sie sich die Cloud-Projekt-ID für das Projekt.
  4. Verbinden Sie die Editor-Instanz mit Ihrem Projekt und konfigurieren Sie das Projekt. Geben Sie im Terminalfenster des Cloud Shell-Editors 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, darunter: den Datenbankdienst BigQuery und den Vertex AI API zum Herstellen einer Verbindung zu Gemini-Modellen. Das SQL Talk-Projekt enthält ein setup.sh-Skript, das das Projekt konfiguriert mit den erforderlichen Google Cloud-Diensten und startet die Standardversion der Projekt arbeiten.

So konfigurieren Sie die Cloud Shell-Editor-Instanz des Projekts und führen sie aus:

  1. Rufen Sie im Terminalfenster des Cloud Shell-Editors die Cloud Shell SQL Talk-Projektverzeichnis (/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 eine Meldung wie im Terminalfenster des Cloud Shell-Editors zu: Diese Nachricht zeigt an, dass der Einrichtungsvorgang erfolgreich war und die SQL Talk-Anwendung ausgeführt:

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

Projekt testen

Sobald Sie die Einrichtung des SQL Talk-Projekts abgeschlossen haben, können Sie das um zu prüfen, ob sie wie erwartet funktioniert. Einrichtungsskript startet die Anwendung automatisch, wenn Sie sie ausführen, und Sie können den mithilfe der folgenden Schritte ausführen.

So führen Sie die Anwendung SQL Talk aus:

  1. Wenn der Cloud Shell-Editor inaktiv war und keine Verbindung besteht, müssen Sie möglicherweise um die Verbindung zu Ihrer Cloud-Projekt-ID wiederherzustellen.

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

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

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

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

So zeigen Sie Aktualisierungen der SQL Talk-Anwendung an:

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

So beenden Sie die Anwendung SQL Talk:

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

Funktionsaufrufe der Gemini API -Funktion verwendet eine bestimmte Syntax, um Funktionen zu definieren, die von der generativen um Fragen zu beantworten oder Probleme zu lösen. Diese Syntax muss nicht genau mit der Syntax eines tatsächlichen API-Aufrufs übereinstimmen. Stattdessen verwenden Sie die Funktion Das Feature zum Erzwingen bestimmter Dateneingaben durch das generative Modell oder die der API-Aufrufsyntax entsprechen, und verwenden diese Parameter dann, um die eigentlichen API-Aufrufe in Ihrem Anwendungscode ausführen.

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

Funktionsaufrufdefinition hinzufügen

Fügen Sie einen neuen Funktionsaufruf zum Auflisten der letzten Datenbankabfragen oder Jobs hinzu. Dieses -Definition wird vom generativen Modell verwendet, um zu verstehen, was der API-Aufruf tut und die erforderlichen Eingabeparameter. Diese Beispielfunktionsdefinition 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 Funktionsdeklaration list_datasets_func eine neue FunctionDeclaration.

    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 Objekt sql_query_tool 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 eine neue if-Klausel zum while function_calling_in_process:.

    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 Projekt „SQL-Abfrage“ finden Sie in der Code-Repository und sieh dir die Blogpost der Cloud-Community SQL Talk-Projekt erfahren. Wenn Sie Hilfe bei der App-Entwicklung benötigen oder mit anderen Entwicklern zusammenarbeiten, finden Sie in der Google Developers-Website Community Discord-Server und der KI/ML-Forum von Google Cloud Weitere „Build with Google AI“-Projekte findest du in der Videoplaylist herunterladen.