Einführung in Tests mit Gemini Code Assist

1. Einleitung

In diesem Lab verwenden Sie Gemini Code Assist, eine KI-basierte Unterstützung in Google Cloud, um einer vorhandenen Python-Webanwendung Tests hinzuzufügen und die durch die Tests gefundenen Fehler in dieser Anwendung zu ermitteln und zu beheben. Mit dem Codeassistenten erstellen Sie Tests für neue Funktionen und generieren Code, um diese Tests zu bestehen und die App zu erweitern.

Aufgaben

  • Mit dem Cloud Shell-Editor laden Sie Code für eine vorhandene Webanwendung herunter.
  • Sie verwenden den Gemini Code Assist-Chat im Cloud Shell-Editor, um allgemeine Fragen zu Google Cloud zu stellen.
  • Sie verwenden die Gemini Code Assist Inline-Codeunterstützung im Cloud Shell-Editor, um Tests für die Anwendung zu generieren, die Tests auszuführen, Fehler zu finden und zu beheben und dann die Funktionalität der Anwendung zu erweitern.

Lerninhalte

  • Hier erfahren Sie, wie Sie Gemini Code Assist für mehrere Entwickleraufgaben wie Testgenerierung und Codegenerierung verwenden.
  • So verwenden Sie Gemini Code Assist, um mehr über Google Cloud zu erfahren.

Sie benötigen...

  • Chrome-Webbrowser
  • Ein Gmail-Konto
  • Ein Cloud-Projekt mit aktivierter Abrechnung
  • Gemini Code Assist ist für Ihr Cloud-Projekt aktiviert

Dieses Lab richtet sich an Entwickler aller Stufen, auch an Einsteiger. Obwohl die Beispielanwendung in der Programmiersprache Python erstellt wird, müssen Sie nicht mit der Python-Programmierung vertraut sein, um den Sachverhalt zu verstehen. Wir konzentrieren uns dabei darauf, sich mit den Funktionen von Gemini Code Assist für Entwickler vertraut zu machen.

2. Einrichtung

Für dieses Lab sollten Sie bereits ein Cloud-Projekt mit aktivierter Abrechnung haben. Wir aktivieren jetzt die Gemini API im Google Cloud-Projekt. Gehen Sie dazu so vor:

  1. Rufen Sie https://console.cloud.google.com auf und prüfen Sie, ob Sie das Google Cloud-Projekt ausgewählt haben, mit dem Sie in diesem Lab arbeiten möchten. Klicken Sie auf das Gemini-Symbol, das oben rechts angezeigt wird.

GeminiBanner.png

  1. Das Fenster „Gemini für die Cloud Console“ wird auf der rechten Seite der Console geöffnet. Klicken Sie auf die Schaltfläche Aktivieren, wenn sie unten angezeigt wird. Wenn Sie die Schaltfläche Aktivieren nicht sehen, sondern stattdessen eine Chat-Oberfläche sehen, haben Sie Gemini for Cloud für das Projekt bereits aktiviert und Sie können direkt mit dem nächsten Schritt fortfahren.

GeminiApiEnable.png

  1. Sobald sie aktiviert ist, können Sie Gemini testen, indem Sie ein oder zwei Abfragen stellen. Es werden einige Beispielabfragen angezeigt, aber Sie können z. B. Folgendes ausprobieren: Was ist Cloud Run?

GeminiChatWindow.png

Code Assist antwortet mit der Antwort auf Ihre Frage. Klicken Sie rechts oben auf das Symbol f68286b2b2ea5c0a.png, um das Chatfenster für den Codeassistenten zu schließen.

Gemini im Cloud Shell-Editor aktivieren

Gemini Code Assist ist verfügbar und verhält sich in mehreren gängigen IDEs ähnlich. In diesem Codelab verwenden Sie den Google Cloud Shell-Editor, der vollständig in Ihrem Webbrowser ausgeführt wird. Sie müssen Gemini im Cloud Shell-Editor aktivieren und konfigurieren. Gehen Sie dazu so vor:

  1. Starten Sie Cloud Shell über das unten abgebildete Symbol. Es kann ein bis zwei Minuten dauern, bis die Cloud Shell-Instanz gestartet ist.

72dc3df7b007fcde.png

  1. Klicken Sie gegebenenfalls auf die Schaltfläche Editor oder Open Editor (Editor öffnen) und warten Sie, bis der Cloud Shell-Editor angezeigt wird. Wenn Sie die Schaltfläche Neuen Editor ausprobieren sehen, klicken Sie darauf.

CloudShellEditor.png

  1. Klicken Sie, wie dargestellt, in der unteren Statusleiste auf die Schaltfläche Cloud Code – Sign in (Cloud Code – Anmelden). Autorisieren Sie das Plug-in wie angegeben. Wenn in der Statusleiste "Cloud Code – no project" angezeigt wird, wählen Sie diese Option aus und wählen Sie dann das gewünschte Google Cloud-Projekt aus der Liste der Projekte aus, mit denen Sie arbeiten möchten.

CloudCodeSignIn.png

  1. Wenn Sie das Gemini-Symbol rechts unten in der Statusleiste nicht sehen, müssen Sie es in Cloud Code aktivieren. Bevor Sie das tun, müssen Sie prüfen, ob Gemini (früher Duet AI for Developers) in der IDE aktiviert ist. Rufen Sie dazu Cloud Code-Erweiterung → Einstellungen auf und geben Sie den Text Duet-KI: Aktivieren ein, wie unten gezeigt. Achten Sie darauf, dass das Kästchen angeklickt ist. Aktualisieren Sie Ihre IDE. Dadurch wird Gemini in Cloud Code aktiviert und die Gemini-Statusleiste wird in Ihrer IDE angezeigt.

EnableDuetAiSetting.png

  1. Klicken Sie wie gezeigt auf die Schaltfläche Gemini in der unteren rechten Ecke und wählen Sie das richtige Google Cloud-Projekt aus, für das wir die Cloud AI Companion API aktiviert haben.

GeminiSelectGoogleCloudProject.png

  1. Nachdem Sie Ihr Google Cloud-Projekt ausgewählt haben, sollten Sie prüfen, ob dies in der Cloud Code-Statusmeldung in der Statusleiste zu sehen ist und ob Gemini rechts in der Statusleiste aktiviert ist (siehe unten):

GeminiEnabledStatusBar.png

Gemini Code Assist ist einsatzbereit.

3. Anwendung herunterladen und prüfen

Führen Sie im Terminalfenster den Befehl aus, um das Repository mit dem Startcode zu klonen, und wechseln Sie dann in das neue Verzeichnis. Wenn das Terminalfenster nicht mehr geöffnet ist, klicken Sie auf die Schaltfläche Terminal oder Terminal öffnen, um es wiederherzustellen:

git clone https://github.com/GoogleCloudPlatform/testing-with-duet-ai-codelab.git
cd testing-with-duet-ai-codelab

Öffnen Sie main.py im Editor und öffnen Sie dann das Fenster Gemini Chat. Klicken Sie dazu auf der linken Seite des Editors auf das Gemini-Chatsymbol. Dieses Gemini Chat-Fenster befindet sich in der IDE und der Code in der IDE steht als Kontext für die Diskussion zur Verfügung. Geben Sie die Aufforderung Erklärung ein und sehen Sie sich die Antwort an:

GeminiChatExplainThis.png

Scrollen Sie durch dieses Chatfenster, um die gesamte Antwort zu sehen. Die Erklärung besagt, dass wir dieses Programm mit dem Befehl python3 main.py im Terminalfenster lokal ausführen können.

4. Lokal ausführen

Wechseln Sie bei Bedarf in das Repository-Verzeichnis mit cd ~/testing-with-duet-ai-codelab und geben Sie den Befehl python3 main.py im Terminalfenster ein:

3bf558e9cea15375.png

Klicken Sie auf den Link http://127.0.0.1:8080, um die Startseite der Anwendung in einem neuen Browsertab zu öffnen:

fb06f382a4c03e4c.png

Die Anwendung wird „lokal“ ausgeführt. Tatsächlich hat der Cloud Shell-Editor hier etwas Magisches. Die Anwendung wird in Cloud Shell und nicht auf Ihrem eigenen Computer ausgeführt. Nachdem Sie auf den Link geklickt haben, wurde nicht die tatsächliche lokale Adresse http://127.0.0.1:8080, sondern ein Proxyserver geöffnet, der nur für diesen Zweck von Cloud Shell eingerichtet wurde. Der Effekt ist derselbe, als ob Sie es wirklich lokal ausführen würden.

Jetzt ausprobieren Geben Sie 25 ein und drücken Sie Konvertieren!.

e1b9d5832f6d0058.png

Genau, 25 ist XXV in römischen Ziffern! Sie müssen hier fertig sein.

Vielleicht noch ein paar Zahlen. 25 hat funktioniert, wie wäre es mit 24?

37982e385e17baac.png

Vielleicht dachten wir vorhast, alles sei in Ordnung. Ist XXIIII die richtige Umwandlung für 24? Sollte es nicht XXIV sein?

Man könnte z. B. erwähnen, dass XXIIII richtig ist, aber das entspricht nicht den Erwartungen der Menschen. Da es jedoch nicht wirklich falsch ist (beachten Sie, dass auf vielen Uhren die Zahl 4 als römische Zahl IIII angezeigt wird), lassen Sie dieses Problem also zu einer künftigen Verbesserung überlassen.

Wie wäre es mit negativen Zahlen? Null? Es gibt keine Möglichkeit, diese Zahlen in römischen Ziffern darzustellen. Der Nutzer reagiert nichts, was wie ein Fehler aussieht, der behoben werden muss.

Durch Tests können Fehler gefunden und behoben werden. Gemini Code Assist unterstützt uns außerdem dabei, Tests zu schreiben und zu verwenden.

5. Tests hinzufügen

Kehren Sie zum Gemini-Chatfenster zurück und fragen Sie

How can I test the number_to_roman function?

Lesen Sie die Antwort durch. Sie sollte die Module unittest und pytest enthalten.

Möglicherweise möchten Sie, dass Gemini Code Assist diese Tests tatsächlich für Sie schreiben lässt. Öffnen Sie im Editor die Datei calendar.py, in der sich der tatsächliche Conversion-Code befindet. Kehren Sie dann zum Gemini-Chatfenster zurück und fragen Sie noch einmal nach.

How can I test the number_to_roman function?

Die Antwort ist jetzt spezifischer und beinhaltet sogar ein Modultestmodul, das Sie kopieren oder in eine neue Datei einfügen können:

import unittest
import calendar

class NumberToRomanTest(unittest.TestCase):

    def test_convert_1(self):
        self.assertEqual(calendar.number_to_roman(1), "I")

    def test_convert_4(self):
        self.assertEqual(calendar.number_to_roman(4), "IV")

    def test_convert_9(self):
        self.assertEqual(calendar.number_to_roman(9), "IX")

    def test_convert_40(self):
        self.assertEqual(calendar.number_to_roman(40), "XL")

    def test_convert_90(self):
        self.assertEqual(calendar.number_to_roman(90), "XC")

    def test_convert_400(self):
        self.assertEqual(calendar.number_to_roman(400), "CD")

    def test_convert_900(self):
        self.assertEqual(calendar.number_to_roman(900), "CM")

    def test_convert_1990(self):
        self.assertEqual(calendar.number_to_roman(1990), "MCMXC")

    def test_convert_2023(self):
        self.assertEqual(calendar.number_to_roman(2023), "MMXXIII")

Möglicherweise wird der Code vom obigen Beispiel abweichen. Die zugrunde liegenden Modelle von Gemini Code Assist werden von Zeit zu Zeit aktualisiert, sodass die Antworten nicht immer die gleichen sind. Wenn Sie einen anderen Codesatz sehen, können Sie jetzt auswählen, ob Sie mit den in diesem Codelab gezeigten Beispielen fortfahren möchten. Kopieren Sie dazu den hier gezeigten Code oder testen Sie die alternative Antwort von Gemini Code Assist. Wenn Sie Zeit haben, können Sie sogar beide Wege ausprobieren. Gemini Code Assist ist ein Programmierassistent, den Sie nach Bedarf verwenden können.

Klicken Sie entweder auf den Doppelpfeil rechts oben im Gemini-Chat-Fenster, um eine neue Datei mit dem Unit-Testcode zu erstellen, oder erstellen Sie mit der IDE eine neue Datei und fügen Sie den in diesem Lab gezeigten Code ein. Drücken Sie in diesem Fenster STRG+S oder CMD+S, um es zu speichern, und rufen Sie die gespeicherte Datei calendar-unittest.py auf.

Kehren Sie zum Terminal zurück und drücken Sie STRG+C, um den Webserver zu beenden, den Sie zuvor noch ausgeführt haben, und eine Shell-Eingabeaufforderung abzurufen. Geben Sie den Befehl ein

python3 calendar-unittest.py

um die neuen Tests auszuführen.

Es gibt keine Ausgabe. Das war nicht das, was wir erwartet haben. Ist alles lautlos verlaufen? Das möchten Sie sicher wissen. Sehen Sie sich die Antwort von Gemini Code Assist an, die den Testcode enthielt. Unter dem Code befanden sich weitere Informationen zum Ausführen des Testlaufs:

run-unittest.png

Versuchen Sie, den empfohlenen Befehl auszuführen:

python -m unittest discover

Möglicherweise tritt ein Problem auf, wenn Ihr Computer für den Befehl python3 keinen Alias mit python erstellt. Führen Sie in diesem Fall folgenden Befehl aus:

python3 -m unittest discover

Der Befehl wird ausgeführt, gibt aber Ran 0 tests in 0.000s zurück. Das Modul enthält mehrere Tests. Was ist passiert?

Das ist das letzte Wort im Befehl: discover. Woher kommen sie? Offensichtlich hat Gemini Code Assist erwartet, dass der Testcode in einer Datei mit dem Namen discover oder discover.py gespeichert wird, hat aber nicht angegeben, dass Sie das tun sollen. Da Sie die Datei tatsächlich in calendar-unittest.py gespeichert haben, versuchen Sie, den folgenden Befehl auszuführen:

python3 -m unittest calendar-unittest

Jetzt sehen Sie eine umfangreiche Ausgabe, die in etwa so aussieht:

$ python3 -m unittest calendar-unittest
.F.FFFFFF
======================================================================
FAIL: test_convert_1990 (calendar-unittest.NumberToRomanTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/charles_engelke/testing-with-duet-ai-codelab/calendar-unittest.py", line 28, in test_convert_1990
    self.assertEqual(calendar.number_to_roman(1990), "MCMXC")
AssertionError: 'MDCCCCLXXXX' != 'MCMXC'
- MDCCCCLXXXX
+ MCMXC

Die erste Zeile zeigt einen Zeitraum für jeden bestandenen Test und ein F für jede nicht bestandene Prüfung. Die meisten Tests schlagen fehl. Die fehlgeschlagenen Tests werden dann einzeln aufgelistet und es werden die erwartete und die tatsächliche Ausgabe angezeigt. Es ist etwas unklar, in welcher Reihenfolge diese Tests durchgeführt wurden. Die Tests wurden alphabetisch nach Testnamen sortiert, nicht nach der Reihenfolge, in der die Tests in der Datei angezeigt werden. Also wurde zuerst test_convert_1 ausgeführt, dann test_convert_1990, dann test_convert_2023 und so weiter. Die Testläufe für 1 und 2023 sind die einzigen, die bestanden wurden.

Beim ersten Versuch dieses Codes ist Ihnen aufgefallen, dass er 24 in XXIIII konvertiert hat. Dies war nicht ganz falsch, aber nicht die übliche Form, bei der IIII in IV konvertiert wird. Alle fehlgeschlagenen Tests bezogen sich auf ähnliche Fälle. Als dieses Problem zum ersten Mal bemerkt wurde, sagte das Lab: „Da es aber nicht wirklich falsch ist (beachten Sie, dass auf vielen Uhren 4 als römisches Zahlzeichen IIII angezeigt wird), lassen Sie dieses Problem für eine zukünftige Verbesserung beseitigen.“

Du könntest die Testfälle so ändern, dass sie erwartet werden, und die Antworten mit „nicht wirklich falsch“ akzeptieren oder akzeptieren, dass es Zeit für diese „zukünftige Verbesserung“ ist. Ihr nächster Schritt besteht also darin, den Code mit der Gemini Code Assist-Hilfe zu reparieren, um die akzeptableren Antworten zu liefern, die die Tests erwarten.

6. Code optimieren

Denken Sie daran, dass Antworten wie XXIIII für 24 statt der häufigeren XXIV als "nicht richtig falsch" eingestuft und zur künftigen Verbesserung verschoben wurden. Diese Zukunft liegt jetzt. Diese „nicht wirklich falschen“ Antworten sind immer noch ärgerlich.

Die erste Regel für wiederholte Ziffern in römischen Ziffern lautet: Immer, wenn Sie vier identische Ziffern in einer Zeile haben, sollten diese durch eine der Ziffern gefolgt von der nächsthöheren Zahl ersetzt werden. Daher sollte XXIIII durch XXIV ersetzt werden. Ebenso sollte XXXX in XL geändert werden und CCCC zu CD werden.

Fragen Sie Gemini Code Assist, wie Sie den Wert der Variablen roman auf diese Weise ändern können, bevor er von number_to_roman zurückgegeben wird:

If the final value of roman has IIII in it, that should be replaced by IV. Similarly XXXX should be replaced by XL, and CCCC should become CD. How can I make those changes?

Es empfiehlt sich, am Ende Code hinzuzufügen:

6437c3fa2c5fabd1.png

Kopieren Sie diese Zeilen oder geben Sie sie in den Editor ein. Sehen Sie sich dann an, was passiert:

dcefa568cab82fb7.png

Gemini Code Assist hat weitere Zeilen für Fälle hinzugefügt, die nach dem ersten Substitutionssatz auftreten können. Zum Beispiel wird 19 in XVIIII, dann in XVIV und schließlich in das richtige XIX konvertiert.

Wenn Gemini Code Assist offensichtlich nützliche Vorschläge gemacht hat, drücken Sie die Tabulatortaste, um die Empfehlungen anzunehmen, speichern Sie die Datei und führen Sie den Webserver noch einmal aus. Andernfalls fügen Sie die im Beispiel hier gezeigten Zeilen manuell hinzu und speichern die Datei. Versuche eine schwierige Umwandlung: 1999:

a206999587fdc9.png

Das ist richtig!

Führen Sie die Tests jetzt noch einmal aus. Sie alle bestanden!

Die Webanwendung scheint bereit für die Produktion zu sein.

7. In Cloud Run bereitstellen

Cloud Run führt für Sie eine Containeranwendung im Internet aus. Bei Anwendungen, die mit gängigen Frameworks wie Flash geschrieben wurden, erstellt der gcloud run deploy-Befehl den Container sogar vor der Bereitstellung. Führen Sie diesen Befehl aus:

gcloud run deploy

Im Terminal Wenn Sie nach dem Speicherort des Quellcodes gefragt werden, drücken Sie die Eingabetaste, um den korrekten Speicherort zu übernehmen. Wenn Sie nach einem Dienstnamen gefragt werden, drücken Sie entsprechend die Eingabetaste, um den Vorschlag anzunehmen.

Der Befehl kann fehlschlagen, da gcloud nicht ermitteln kann, welches Projekt verwendet werden soll. Führen Sie in diesem Fall den folgenden Befehl aus:

gcloud config set core/project <project-id>

Dabei wird durch die ID Ihres Projekts ersetzt, die mit dem Namen identisch sein kann. Führen Sie dann den Befehl gcloud run deploy noch einmal aus.

  • Der Befehl teilt Ihnen mit, dass bestimmte APIs erforderlich und noch nicht aktiviert sind. Geben Sie „y“ ein, um sie zu aktivieren.
  • Wenn Sie aufgefordert werden, eine Region auszuwählen, wählen Sie die Region aus, die Ihnen am besten liegt. Die Eingabe der Zahl für us-central1 ist eine sichere Wahl.
  • Wenn Sie dazu aufgefordert werden, geben Sie „Y“ ein, um fortzufahren.
  • Sie sollten unauthenticated Aufrufe dieses Cloud Run-Dienstes zulassen. Die von Cloud Run verwendete Authentifizierungsoption eignet sich für Programme, die den Dienst aufrufen. Da es sich um eine Website handelt, werden Sie keine Authentifizierung verwenden.

Google Cloud erstellt den Container, stellt ihn bereit, leitet Traffic an ihn weiter, legt Zugriffsrichtlinien fest und zeigt Ihnen dann den Link zur Startseite an:

94ba7d8d63a44afd.png

Über diesen Link können Sie auf Ihre Anwendung zugreifen.

a2e51666dfd33a9f.png

Geben Sie eine Zahl ein und drücken Sie die Eingabetaste. Achtung!

5021535ac991a95c.png

Was?!

Auf Ihrem Computer hat es funktioniert! Warum ist dieser Abschnitt noch nicht abgeschlossen?

Finden Sie es heraus. Gemini Code Assist fragen,

Why am I getting an internal server error on cloud run?

4b24321251d6eddf.png

Offensichtlich kann Gemini Code Assist die Protokolldatei lesen, was ähnlich ist. Stellen wir uns den Gemini Code Assist vor, wie Sie Ihre eigenen Protokolle erstellen können:

92d1855be73ef1d.png

Machen Sie weiter. Suchen Sie wie unten nach Linien mit roten !!-Hinweisen für Fehler:

9bed4f9ed82de21c.png

Darauf folgen viele Detailzeilen im Aufrufstack, aber dann ist da:

47fc93be845f4e3f.png

In der Datei calendar.py finden Sie die Funktion number_to_roman. Und Sie wissen, dass es richtig ist, weil es auf Ihrem Computer funktioniert hat. Was könnte in Cloud Run anders sein?

Die Antwort ist knifflig. Python3 enthält ein Standardmodul namens calendar, genau wie die Datei calendar.py, in der die Funktion number_to_roman definiert ist. Bei der Suche nach einem Modul namens calendar auf Ihrem lokalen Computer wurde zuerst Ihr Anwendungsverzeichnis durchsucht. Offensichtlich hat Python in Cloud Run zuerst nach Standardmodulen gesucht, sie importiert und dabei keine Funktion number_to_roman gefunden.

Solche Unterschiede in Umgebungen sind immer möglich. Wenn eine Anwendung in Container verlagert wird, ist die Umgebung erfolgreich. Wo auch immer Sie sie ausführen, können Sie also dasselbe Verhalten erwarten. Wenn Sie dieselbe Containeranwendung lokal wie Cloud Run ausgeführt hätten, hätte Sie das gleiche Problem gehabt.

Problem beheben Ändern Sie den Namen Ihres lokalen Kalendermoduls in einen Namen, der nicht gleichzeitig der Standardmodulname ist. Benennen Sie die Datei calendar.py in my_calendar.py um. Ändern Sie dann die import calendar-Zeilen in main.py und calendar-unittest.py in import my_calendar. Ändern Sie abschließend die

roman = calendar.number_to_roman(number)

zu

roman = my_calendar.number_to_roman(number)

Probieren Sie es lokal aus, führen Sie die Tests aus und stellen Sie sie dann noch einmal bereit:

gcloud run deploy

Und jetzt funktioniert es:

ed288801c6825eb1.png

Sie können diese URL teilen und alle, die ein Tool zur Umrechnung römischer Ziffern benötigen, können auch Ihres verwenden.

8. Optional: Ansprechender gestalten

Ihre Anwendung funktioniert ordnungsgemäß und ist für alle Nutzer im Web zugänglich. Aber es sieht etwas ein wenig schlicht aus. Bevor Sie allen davon erzählen, können Sie Gemini Code Assist bitten, sein Erscheinungsbild zu verbessern.

Öffnen Sie die Datei templates/index.html. Stellen Sie im Gemini-Chatfenster folgende Frage:

Make this index.html file use material design.

Die Antwort besteht darin, Ergänzungen zur aktuellen Datei vorzunehmen, was in etwa so aussieht:

<!DOCTYPE html>
<html>
<head>
    <title>Roman Numerals</title>
    <link rel="stylesheet" href="https://code.getmdl.io/1.3.0/material.indigo-pink.min.css">   
    <script defer src="https://code.getmdl.io/1.3.0/material.min.js"></script>     
</head>
<body>
    <h1 class="mdl-typography--title">Roman Numerals</h1>
    <form action="/convert" method="post">
        <div class="mdl-textfield mdl-js-textfield">
            <input class="mdl-textfield__input" type="text" id="number" name="number" required />
            <label class="mdl-textfield__label" for="number">Enter a number:</label>
          </div>
          <button class="mdl-button mdl-js-button mdl-button--raised mdl-button--colored">
            Convert!
          </button>
    </form>
</body>
</html>

Kopieren Sie den vorgeschlagenen Code mit dem Symbol und fügen Sie ihn in den vorhandenen Inhalt von index.html ein. Führen Sie im Terminal python3 main.py aus und klicken Sie auf den Link, um ein Vorschaufenster zu öffnen. Die Seite ist jetzt etwas weniger schnörkellos:

295643ec03fcaafc.png

Sie können den Vorgang bei Bedarf auch mit der Datei convert.html wiederholen.

Gemini Code Assist kennt eine ganze Menge CSS-Code und kann Ihnen dabei helfen, die Anwendungsseiten auf verschiedene Arten zu gestalten. Das ist erst der Anfang.

Da Sie diese Anwendung freigeben möchten, müssen Sie sie noch einmal in Cloud Run bereitstellen:

gcloud run deploy

Sie können die URL an Personen weitergeben, die in römische Ziffern umwandeln müssen.

9. Glückwunsch!

Herzlichen Glückwunsch! Sie haben erfolgreich mit Gemini Code Assist gearbeitet, um einer Anwendung Tests hinzuzufügen, Fehler darin zu beheben und erweiterte Funktionen hinzuzufügen.

Wenn Sie die von Ihnen erstellte Anwendung nicht mehr benötigen, können Sie sie im Dashboard der Cloud Console löschen, um zukünftige Kosten zu vermeiden.

Referenzdokumente...