Python-Anwendung mit Gemini für Google Cloud-Unterstützung entwickeln

In dieser Anleitung erfahren Sie, wie Sie mit Gemini in Google Cloud, einem KI-gestützten Mitbearbeiter in Google Cloud, eine Python-Beispielanwendung untersuchen, erstellen, ändern, testen und bereitstellen können.

Nehmen wir für das folgende Beispiel an, dass Sie Entwickler sind, der Teil eines Teams ist, das eine Inventaranwendung entwickelt. Sie sind dafür verantwortlich, einen Prototyp für einen grundlegenden Dienst zu erstellen, der einige API-Methoden enthält, die als Teil der Inventaranwendung ausgeführt werden können. Sie möchten die Anwendung in Ihrer lokalen VS Code-Umgebung entwickeln und dann in Google Cloud bereitstellen. Sie sind sich jedoch nicht sicher, welcher Google Cloud-Dienst am besten zu Ihrem Anwendungsfall passt.

In dieser Anleitung verwenden Sie Gemini zusammen mit Visual Studio Code als IDE, um eine Beispiel-Inventar-App mit zwei API-Methoden zu erstellen.

Diese Anleitung richtet sich an Entwickler aller Erfahrungsstufen, die zum Erstellen von Anwendungen beigetragen haben, aber möglicherweise nicht mit Cloudtechnologien vertraut sind. Es wird davon ausgegangen, dass Sie Erfahrung mit der Verwendung von VS Code als IDE haben und mit Python und dem gcloud-Framework vertraut sind.

Lernziele

  • Entdecken Sie verschiedene Google-Dienste, mit denen Sie eine Anwendung bereitstellen können. Stellen Sie dazu kontextbasierte Fragen zu Gemini.

  • Fordern Sie Gemini an, Vorlagen bereitzustellen, mit denen Sie eine einfache Python-Anwendung in Cloud Run entwickeln können.

  • Anwendung mithilfe von Gemini erstellen, untersuchen und ändern, um den Code zu erklären und zu generieren.

  • Die Anwendung lokal ausführen und testen und dann mithilfe von Gemini in Google Cloud bereitstellen, um die Schritte zu generieren.

Verwendete Google Cloud-Produkte

In dieser Anleitung werden die folgenden kostenpflichtigen Google Cloud-Produkte verwendet. Mithilfe des Preisrechners können Sie anhand Ihrer voraussichtlichen Nutzung eine Kostenschätzung vornehmen.

  • Cloud Run: Cloud Run ist eine verwaltete Computing-Plattform, mit der Sie Container direkt in der skalierbaren Google-Infrastruktur ausführen können. Sie können in Cloud Run Code bereitstellen, der in einer beliebigen Programmiersprache geschrieben ist, wenn Sie ein Container-Image damit erstellen können. Preisinformationen finden Sie unter Cloud Run.

Neben dem zuvor genannten Produkt werden in dieser Anleitung auch die folgenden Produkte verwendet:

  • Gemini. Gemini ist ein immer aktiver Mitarbeiter in Google Cloud, der einer Vielzahl von Nutzern, einschließlich Entwicklern und Data Scientists, mit generativer KI Unterstützung bietet. Für eine integrierte Unterstützung ist Gemini in viele Google Cloud-Produkte eingebettet.

  • Cloud Code for VS Code-Erweiterung. Diese Erweiterung ist ein IDE-Plug-in, das den Entwicklungszyklus von Kubernetes- und Cloud Run-Anwendungen unterstützt. Weitere Informationen zur Cloud Code-Erweiterung finden Sie unter Cloud Code für VS Code-Features.

Hinweise

  1. Installieren Sie eine lokale Kopie von VS Code, falls noch nicht geschehen.

  2. Cloud Code-Erweiterung für VS Code installieren

    Folgen Sie der Installationsanleitung, um Python, Git und den Docker-Client zu installieren. Führen Sie außerdem die Schritte zum Erstellen eines Google Cloud-Projekts aus.

  3. Gemini muss für Ihr Google Cloud-Nutzerkonto und Ihr Projekt eingerichtet sein.
  4. Aktivieren Sie Gemini für Ihre IDE.

    Führen Sie die Schritte aus, um in Ihrer IDE eine Verbindung zu Google Cloud herzustellen und ein Projekt für Google Cloud auszuwählen.

Google Cloud-Dienste entdecken

Wenn Sie neu bei Google Cloud sind, kann Gemini Ihnen bei der Auswahl der Google Cloud-Dienste helfen, die den Anforderungen Ihrer Anwendungsarchitektur entsprechen.

In Ihrer IDE können Sie mit Gemini chatten, um Hilfe zu erhalten. Im Bereich Gemini geben Sie Aufforderungen ein, d. h. Fragen oder Aussagen, die die gewünschte Hilfe beschreiben. Gemini gibt dann Antworten zurück. Aufforderungen können Kontext aus vorhandenem Code enthalten, den Google Cloud analysiert, um nützlichere oder vollständigere Antworten zu liefern. Weitere Informationen zum Schreiben von Prompts für gute Antworten finden Sie unter Bessere Prompts für Gemini schreiben.

Führen Sie die folgenden Schritte aus, um Gemini zu Google Cloud-Diensten zu informieren:

  1. Klicken Sie in der Aktivitätsleiste Ihrer IDE auf spark Gemini.

    Die Aktivitätsleiste von VS Code finden Sie unter Benutzeroberfläche.

  2. Geben Sie im Bereich Gemini die folgende Eingabeaufforderung ein und klicken Sie dann auf Senden:

    I am new to Google Cloud and I want to use the Cloud Code extension.
    Give me some examples of Google services that I can use to build and deploy a
    sample app using containers.
    

    Gemini antwortet mit einer Liste von Google Cloud-Diensten und -Beschreibungen.

    Nehmen wir in diesem Beispiel an, dass Gemini sowohl Cloud Run als auch Cloud Functions als zwei Google Cloud-Dienste vorschlägt, mit denen Sie eine Beispielanwendung erstellen und bereitstellen können. Sie benötigen jedoch weitere Informationen zu diesen Diensten.

    Gemini verwendet Ihre Prompts und seine Antworten nicht als Daten zum Trainieren seines Modells. Weitere Informationen finden Sie unter So nutzt Gemini für Google Cloud Ihre Daten.

  3. Geben Sie eine Folgefrage wie die folgende ein:

    What is the difference between Cloud Run and Cloud Functions? Explain to me
    in simple terms as I am new to Google Cloud.
    

    Gemini antwortet mit den detaillierten Unterschieden zwischen den beiden Google Cloud-Diensten.

  4. Optional: Klicken Sie im Bereich Gemini auf delete Chat zurücksetzen, um das Chatprotokoll zurückzusetzen.

„Hello World“-Python-Anwendung erstellen

Sie können Cloud Run verwenden, um eine einfache Python-Anwendung zu erstellen und bereitzustellen. Da Sie sich mit Cloud Run und Cloud Code noch nicht auskennen, benötigen Sie Hilfe bei den Schritten zum Erstellen der Anwendung. In diesem Abschnitt fordern Sie Gemini um Hilfe zum Erstellen einer „Hello World“-Python-Anwendung in Cloud Run auf.

  1. Starten Sie Ihre IDE, falls Sie dies noch nicht getan haben.

  2. Klicken Sie in der Aktivitätsleiste Ihrer IDE auf spark Gemini.

  3. Geben Sie im Bereich Gemini die folgende Eingabeaufforderung ein und klicken Sie dann auf Senden:

    How to create a new Cloud Run app in Cloud Code using the command palette?
    What languages are supported?
    

    Die Befehlspalette in VS Code enthält eine Liste aller Befehle, einschließlich der Befehle für Cloud Code.

    Die Ausgabe sieht in etwa so aus:

    To create a new Cloud Run app in Cloud Code using the command palette,
    follow these steps:
    1. Open the command palette (press Ctrl/Cmd+Shift+P or click View > Command Palette).
    2. Run the "Cloud Code: New Cloud Run App" command.
    ...
    

    Gemini zeigt auch die unterstützten Sprachen für die Cloud Run-Anwendung an.

    In diesem Beispiel wählen Sie eine Python-basierte Cloud Run-Vorlage zum Erstellen der Beispielanwendung aus.

  4. Geben Sie die folgende Eingabeaufforderung ein, um zu erfahren, wie Sie eine Python-Anwendung aus einer Cloud Run-Vorlage erstellen:

    How do I create a Python app from a Cloud Run template using the
    command palette? I am using Cloud Code.
    

    Die Ausgabe sieht in etwa so aus:

    To create a Python app from a Cloud Run template using the command palette,
    follow these steps:
    
    1. Open Cloud Code.
    
    2. Click the Command Palette
       (press Ctrl/Cmd+Shift+P or click View > Command Palette).
    
    3. Run the "Cloud Code: New Application" command.
    
    ...
    

    Führen Sie die Schritte aus, die Gemini in seiner Antwort bereitstellt, um eine einfache Hello World Python-Anwendung in Cloud Run zu erstellen. Informationen zum Erstellen der Python-Anwendung „Hello World“ finden Sie im folgenden Abschnitt.

Alternative Schritte zum Erstellen einer „Hello World“-Python-Anwendung

  1. Starten Sie Ihre IDE, falls Sie dies noch nicht getan haben.

  2. Öffnen Sie die Befehlspalette: Drücken Sie Befehlstaste + Umschalttaste + P (Mac OS) oder Strg + Umschalttaste + P (Windows und Linux).

  3. Geben Sie im Feld der Befehlspalette Cloud Code: New Application ein und klicken Sie dann auf das Ergebnis.

  4. Wählen Sie aus der Liste der verfügbaren Beispiele Cloud Run-Anwendung aus.

  5. Wählen Sie aus der Liste der verfügbaren Vorlagen Python (Bot): Cloud Run aus.

  6. Speichere die neue App an deinem bevorzugten Speicherort.

In einer Benachrichtigung wird bestätigt, dass Ihre App erstellt wurde. In Ihrer IDE wird eine Vorschau der README-Datei für den ausgewählten Dienst geöffnet, wie in Abbildung 1 dargestellt:

Screenshot
Abbildung 1: README-Datei für eine in Cloud Run erstellte „Hello World“-Python-Anwendung.

Python-Anwendung „Hello World“ kennenlernen

Nachdem Sie Ihre Hello World-Anwendung in Cloud Run erstellt haben, können Sie mit Gemini die Dateien und Code-Snippets erklären, die in Ihrer IDE bereitgestellt werden. So erkunden Sie den Code der von Ihnen erstellten Beispielanwendung:

  1. Starten Sie Ihre IDE.

  2. Öffnen Sie Explorer: Drücken Sie Befehlstaste + Umschalttaste + E (macOS) oder Strg + Umschalttaste + E (Windows und Linux).

    Sie sehen die Dateien, die sich auf Ihre Beispiel-App beziehen.

  3. Klicken Sie in der Liste der Dateien auf Dockerfile, um den Inhalt aufzurufen.

  4. Wählen Sie den gesamten Inhalt von Dockerfile aus, klicken Sie auf das Glühbirnensymbol und dann auf Erklärung (siehe Abbildung 2):

    Screenshot von Dockerfile
    Abbildung 2. Die Funktion „Codeerklärung“ ist verfügbar, wenn du Code auswählst.

    Gemini generiert eine Erklärung in natürlicher Sprache über den Inhalt und die Funktion von Dockerfile. Wenn Sie sich bei einigen Punkten der Antwort nicht sicher sind, können Sie Folgefragen stellen.

  5. Geben Sie im Bereich Gemini die folgende Eingabeaufforderung ein, um weitere Informationen zur Datei app.py zu erhalten, die in Dockerfile erwähnt wird:

    What is the function of the app.py file in Dockerfile?
    

    Gemini generiert eine Antwort wie diese:

    The app.py file is the entrypoint for the container. It is the file that
    will be executed when the container is launched. In this case, the app.py
    file will run the Python code that is contained within it.
    

    Alternativ können Sie auch den Text app.py in Dockerfile auswählen, auf das Glühbirnensymbol und dann auf Erklären klicken.

  6. Öffnen Sie Explorer: Drücken Sie Befehlstaste + Umschalttaste + E (macOS) oder Strg + Umschalttaste + E (Windows und Linux).

  7. Öffnen Sie die Datei app.py. Sie sehen die beiden Variablen K_SERVICE und K_REVISION.

  8. Weitere Informationen zu den Variablen in der Datei app.py erhalten Sie, wenn Sie im Bereich Gemini die folgende Eingabeaufforderung eingeben:

    What is the function of `K_SERVICE` and `K_REVISION` in the `app.py` file?
    

    Alternativ können Sie auch den folgenden Text im Dockerfile auswählen, auf das Glühbirnensymbol und dann auf Explain this (Erklären) klicken:

    service = os.environ.get('K_SERVICE', 'Unknown service')
    revision = os.environ.get('K_REVISION', 'Unknown revision')
    

    Die Antwort ähnelt dem folgenden Beispiel:

    The code above is using the os.environ module to get the values of the
    K_SERVICE and K_REVISION environment variables. These variables are set by
    Cloud Run when it deploys the service, and they contain the name of the
    service and the revision number, respectively.
    ...
    

Beispieldaten für die App generieren

Sie haben in Cloud Run eine einfache Bot-Anwendung erstellt. Bevor Sie Funktionen zum Erstellen der Inventar-App hinzufügen können, benötigen Sie eine Datei mit einer Liste von Beispielinventarelementen. Gehen Sie so vor, um mit Gemini die relevanten Beispieldaten zu generieren:

  1. Klicken Sie in Ihrer IDE auf das Symbol Explorer, um die mit Ihrer Beispiel-App verbundenen Dateien anzuzeigen.

  2. Klicken Sie auf das Symbol Neue Datei und erstellen Sie eine Datei mit dem Namen inventory.py.

  3. Damit Gemini die Beispieldaten generieren kann, geben Sie im Bereich Gemini die folgende Eingabeaufforderung ein:

    Create a variable called inventory which is a list of 3 JSON objects.
    Each JSON object has 2 attributes: productid and onhandqty.
    Both attributes are strings.
    

    Gemini generiert Beispielcode für drei JSON-Objekte.

  4. Klicken Sie in der Antwort auf addIn aktuelle Datei einfügen, um das Codebeispiel in die Datei inventory.py einzufügen, wie in Abbildung 3 dargestellt:

    Code einfügen
    Abbildung 3: Sie können Code aus einer Gemini-Antwort einfügen.

    Die Datei inventory.py sieht in etwa so aus:

    inventory = [
       {
          "productid": "12345",
          "onhandqty": "10"
       },
       {
          "productid": "23456",
          "onhandqty": "20"
       },
       {
          "productid": "34567",
          "onhandqty": "30"
       }
    ]
    

    Sie haben die Datei inventory.py mit der Liste der Inventarelemente erstellt.

„Hello World“-Python-Anwendung ändern

Nachdem Sie die Datei inventory.py erstellt haben, führen Sie jetzt einige API-Methoden in die Datei app.py ein, die mit den Inventardaten arbeiten können. Um dieses Ziel zu erreichen, können Sie das Feature zur Codegenerierung in Gemini verwenden.

  1. Klicken Sie in Ihrer IDE auf das Symbol Explorer, um die mit Ihrer Beispiel-App verbundenen Dateien aufzurufen.

  2. Klicken Sie auf die Datei app.py, um den Inhalt aufzurufen.

  3. Bearbeiten Sie die Importanweisungen so, dass die Datei app.py die Datei inventory.py enthält:

    import os
    from flask import Flask, render_template
    from inventory import inventory
    
  4. Damit Gemini den Code für die erste API-Methode generieren kann, geben Sie in der Datei app.py den folgenden Kommentar ein und drücken Sie Strg + Eingabetaste:

     # Generate an app route to display a list of inventory
     # items in the JSON format from the
     # inventory.py file. Use the GET method.
    
    

    Gemini generiert eine Antwort in der Datei app.py.

    Je nach Systemkonfiguration kann sich die Tastenkombination zum Generieren von Code mit Gemini von der Tastenkombination Strg + Eingabetaste unterscheiden, die in dieser Anleitung verwendet wird.

  5. Halten Sie den Mauszeiger über einen beliebigen Teil der Antwort.

    Eine Gemini-Symbolleiste wird angezeigt.

    Gemini generiert möglicherweise mehr als eine Antwort. In der Symbolleiste können Sie mit den Tasten < und > durch die einzelnen Antworten blättern. Im folgenden Beispiel generiert Gemini nur eine Antwort, wie in Abbildung 4 dargestellt:

    Code akzeptieren
    Abbildung 4: Sie können einen Codevorschlag von Gemini annehmen.
  6. Klicken Sie in der Symbolleiste auf Akzeptieren, um das vorgeschlagene Codebeispiel zu akzeptieren.

    Die Ausgabe sieht dann ungefähr so aus:

    # Generate an App route to display a list of inventory
    # items in the JSON format from the
    # inventory.py file. Use the GET method.
    @app.route('/inventory', methods=['GET'])
    def get_inventory():
        """Return a list of inventory items."""
        return jsonify(inventory)
    
  7. Optional: Wenn Sie mehr über die Funktion jsonify(inventory) erfahren möchten, markieren Sie den Begriff und fordern Sie Gemini auf, Ihnen den Code zu erklären.

  8. Bearbeiten Sie die Importanweisungen so, dass die Datei app.py die Funktion jsonify enthält:

    import os
    from flask import Flask, render_template, jsonify
    from inventory import inventory
    
  9. Geben Sie zum Hinzufügen einer weiteren API-Methode in der Datei app.py die folgende Eingabeaufforderung ein und drücken Sie Strg + Eingabetaste:

    # Generate an App route to get an inventory item
    # given the productid. Use the GET method.
    # If there is an invalid productid,
    # display a 404 error.
    

    Gemini generiert eine Antwort in der Datei app.py.

  10. Halten Sie den Mauszeiger über einen beliebigen Teil der Antwort.

    Eine Gemini-Symbolleiste wird angezeigt.

  11. Wenn Sie eines der vorgeschlagenen Codebeispiele akzeptieren möchten, klicken Sie in der Symbolleiste auf Akzeptieren.

    Die Ausgabe sieht dann ungefähr so aus:

    # Generate an App route to get an inventory item
    # given the productid. Use the GET method.
    # If there is an invalid productid,
    # display a 404 error.
    @app.route('/inventory/<productid>', methods=['GET'])
    def get_inventory_item(productid):
        """Return an inventory item given the productid."""
        for item in inventory:
            if item["productid"] == productid:
               return jsonify(item)
        return jsonify({"error": "Item not found"}), 404
    

    Sie haben zwei API-Methoden zum Erstellen Ihrer Inventaranwendung hinzugefügt.

Anwendung lokal über die IDE ausführen

Sie können die Anwendung jetzt lokal über VS Code bereitstellen. So stellen Sie die App bereit:

  1. Starten Sie Ihre IDE, falls Sie dies noch nicht getan haben.

  2. Klicken Sie in der Aktivitätsleiste Ihrer IDE auf spark Gemini.

  3. Geben Sie im Bereich Gemini die folgende Eingabeaufforderung ein und klicken Sie dann auf Senden:

    How do I run a Cloud Run app locally within Cloud Code?
    Is there an emulator?
    

    Führen Sie die Schritte in der Gemini-Antwort aus, um die Anwendung lokal über VS Code auszuführen. Mit dem folgenden Abschnitt können Sie auch eine Cloud Run-Beispielanwendung lokal über VS Code bereitstellen.

Alternative Schritte zum lokalen Ausführen der App über Ihre IDE

Wenn Sie die Schritte in der Gemini-Antwort im vorherigen Abschnitt nicht ausgeführt haben, können Sie die Beispielanwendung so bereitstellen:

  1. Starten Sie Ihre IDE.

  2. Öffnen Sie die Befehlspalette: Drücken Sie Befehlstaste + Umschalttaste + P (Mac OS) oder Strg + Umschalttaste + P (Windows und Linux).

  3. Geben Sie im Feld der Befehlspalette Run on Cloud Run Emulator ein und klicken Sie dann auf das Ergebnis.

  4. Behalten Sie in der Umgebungsdatei Build die Standardwerte bei und klicken Sie auf Ausführen.

    In dieser Anleitung wird Docker als Builder-Option verwendet.

    Im Bereich Ausgabe Ihrer IDE können Sie den Build-Fortschritt sehen. Die Bereitstellung kann einige Zeit in Anspruch nehmen.

    Starting to run the app using configuration 'Cloud Run:
    Run/Debug Locally' from .vscode/launch.json...
    To view more detailed logs, go to Output channel : "Cloud Run: Run/Debug Locally - Detailed"
    Dependency check started
    Dependency check succeeded
    Starting minikube, this may take a while......
    ...
    

Klicken Sie nach Abschluss der Bereitstellung auf die URL im Bereich Ausgabe, um die Live-Anwendung anzusehen. Wenn Sie für eine lokale Kopie von VS Code localhost 8080 angegeben haben, ist Ihre Beispielanwendung unter der URL http://localhost:8080 live.

Beide API-Methoden testen

Wenn Ihre Beispiel-App live ist, können Sie auch prüfen, ob die beiden App-Routen funktionieren. In diesem Beispiel nehmen wir an, dass die Anwendungs-URL http://localhost:8080 lautet.

  1. Die Beispiel-Landingpage für Ihre Anwendung finden Sie unter http://localhost:8080.

  2. Eine Liste aller Inventarelemente finden Sie unter http://localhost:8080/inventory.

    In der Datei app.py wird die Funktion @app.route('/inventory', methods=['GET']) verwendet, um alle Inventarelemente aufzulisten.

  3. Um ein bestimmtes Inventarelement anzuzeigen, gefiltert nach dem Attribut productid, klicken Sie auf http://localhost:8080/inventory/productid.

    Beispiel: http://localhost:8080/inventory/1, wobei productid gleich 1 ist.

    In der Datei app.py wird die Funktion @app.route('/inventory/<productid>', methods=['GET']) verwendet, um ein bestimmtes Inventarelement anhand des Attributs productid anzuzeigen.

Cloud Run-Anwendung in Google Cloud bereitstellen

Sie können die Cloud Run-Anwendung jetzt in Google Cloud bereitstellen. Sie können Gemini auffordern, Ihnen die Schritte anzugeben, oder diese Schritte ausführen:

  1. Öffnen Sie die Befehlspalette: Drücken Sie Befehlstaste + Umschalttaste + P (Mac OS) oder Strg + Umschalttaste + P (Windows und Linux).

  2. Geben Sie im Feld der Befehlspalette Cloud Code: Deploy to Cloud Run ein und klicken Sie dann auf das Ergebnis.

  3. Legen Sie im Bereich mit den Diensteinstellungen Ihr Google Cloud-Projekt fest.

  4. Übernehmen Sie die verbleibenden Standardeinstellungen und klicken Sie dann auf Bereitstellen.

  5. Cloud Code erstellt Ihr Image, überträgt es per Push in die Registry und stellt Ihren Dienst in Cloud Run bereit.

  6. Öffnen Sie die im Dialogfeld In Cloud Run bereitstellen angezeigte URL, um den ausgeführten Dienst anzusehen.

    Sie können auch dieselben Schritte wie unter Zwei API-Methoden testen verwenden, um die Beispielanwendung in Google Cloud anzusehen. Passen Sie Ihre URLs entsprechend an.

Bereinigen

Wenn Sie vermeiden möchten, dass Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen in Rechnung gestellt werden, können Sie das dafür erstellte Google Cloud-Projekt löschen. Alternativ können Sie die einzelnen Ressourcen löschen.

  1. Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite „Ressourcen verwalten“

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.

Nächste Schritte