Anwendungen im Zeitalter der KI entwickeln

1. Übersicht

In diesem Lab verwenden Sie die generativen KI-Produkte von Google, um mithilfe von Gemini Cloud Assist eine Infrastruktur in Google Cloud zu erstellen, BigQuery-Daten mithilfe von SQL-Funktionen von Data Canvas in natürlicher Sprache abzufragen, Code in Colab Enterprise Jupyter-Notebooks und in Eclipse Theia (Visual Studio Code) mithilfe von Gemini Code Assist zu schreiben und KI-Such- und Chatfunktionen auf Cloud Storage- und BigQuery-Grundlagenquellen in Vertex AI Agent Builder zu integrieren.

Unser Ziel ist es, eine Rezept- und Kochwebsite namens „AI Recipe Haven“ zu erstellen. Die Website wird in Python und Streamlit erstellt und enthält zwei Hauptseiten. Cooking Advice beherbergt einen Chatbot, den wir mit Gemini und einer Vertex AI Agent Builder-fundierten Quelle erstellen, die mit einer Gruppe von Kochbüchern verknüpft ist. Er bietet Kochtipps und beantwortet fragen zum Kochen. Die Rezeptsuche ist eine von Gemini unterstützte Suchmaschine, die auf einer BigQuery-Rezeptdatenbank basiert.

Wenn Sie bei einem Code in dieser Übung nicht weiterkommen, finden Sie Lösungen für alle Codedateien im GitHub-Repository der Übung im Branch solution.

Lernziele

Aufgaben in diesem Lab:

  • Gemini Cloud Assist aktivieren und verwenden
  • Such-App in Vertex AI Agent Builder für den Chatbot mit Kochtipps erstellen
  • Daten mithilfe von Gemini Code Assist in ein Colab Enterprise-Notebook laden und bereinigen
  • Such-App in Vertex AI Agent Builder für den Rezeptgenerator erstellen
  • Mit etwas Unterstützung von Gemini den Kern der Python- und Streamlit-Webanwendung skizzieren
  • Webanwendung in Cloud Run bereitstellen
  • Die Seite „Kochtipps“ mit der Agent Builder-App für die Suche nach Kochbüchern verknüpfen
  • Optional: Seite „Rezeptsuche“ mit der Agent Builder App für die Rezeptsuche verknüpfen
  • (Optional) Die fertige Anwendung ansehen

2. Vorbereitung

  1. Wenn Sie noch kein Google-Konto haben, müssen Sie ein Google-Konto erstellen.
    • Sie verwenden ein privates Konto anstelle eines Arbeits- oder Schulkontos. Für geschäftliche und schulische Konten gelten möglicherweise Einschränkungen, die Sie daran hindern, die für dieses Lab erforderlichen APIs zu aktivieren.

3. Projekt einrichten

  1. Melden Sie sich in der Google Cloud Console an.
  2. Aktivieren Sie die Abrechnung in der Cloud Console.
    • Die Kosten für die Durchführung dieses Labs sollten unter 1 $liegen.
    • Sie können die Schritte am Ende dieses Labs ausführen, um Ressourcen zu löschen und weitere Kosten zu vermeiden.
    • Neue Nutzer können das kostenlose Testabo mit einem Guthaben von 300$ nutzen.
    • Nehmen Sie an einem virtuellen Praxislabor teil? Möglicherweise erhalten Sie ein Guthaben in Höhe von 5$.
  3. Erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes.
  4. Prüfen Sie, ob die Abrechnung unter Meine Projekte in der Cloud-Abrechnung aktiviert ist.
    • Wenn in der Spalte Billing account für Ihr neues Projekt Billing is disabled angezeigt wird:
      1. Klicken Sie in der Spalte Actions auf das Dreipunkt-Menü.
      2. Klicken Sie auf Abrechnung ändern.
      3. Wählen Sie das Rechnungskonto aus, das Sie verwenden möchten.
    • Wenn Sie an einer Live-Veranstaltung teilnehmen, lautet der Name des Kontos wahrscheinlich Google Cloud Platform-Testrechnungskonto.

4. Gemini Cloud Assist aktivieren und verwenden

In dieser Aufgabe aktivieren und verwenden wir Gemini Cloud Assist. Wenn Sie in der Google Cloud Console arbeiten, kann Gemini Cloud Assist Ihnen Ratschläge geben, Sie beim Erstellen, Konfigurieren und Überwachen Ihrer Google Cloud-Infrastruktur unterstützen und sogar gcloud-Befehle vorschlagen und Terraform-Scripts schreiben.

  1. Wenn Sie Cloud Assist verwenden möchten, klicken Sie oben in der Cloud Console-Benutzeroberfläche in das Suchfeld und wählen Sie Gemini fragen oder Gemini in der Cloud Console fragen aus.
  2. Scrollen Sie auf der Seite zum Abschnitt „Erforderliche API“ und aktivieren Sie die Gemini for Google Cloud API.
  3. Wenn die Chatoberfläche nicht sofort angezeigt wird, klicken Sie auf Chat starten. Bitten Sie Gemini, einige der Vorteile des Cloud Shell-Editors zu erläutern. Nehmen Sie sich ein paar Minuten Zeit, um sich die generierte Antwort anzusehen.
  4. Fragen Sie als Nächstes nach den Vorteilen von Agent Builder und wie es dabei helfen kann, generative Antworten zu erstellen.
  5. Sehen wir uns zum Schluss einen Vergleich an. Stellen Sie im Gemini-Chatfenster der Google Cloud Console die folgende Frage:
    What are the major steps to creating a search app grounded in a GCS data source using Vertex AI Agent builder?
    

5. Such-App in Vertex AI Agent Builder für den Chatbot mit Kochtipps erstellen

Die von uns erstellte Website enthält eine Seite mit Kochtipps, auf der sich ein Chatbot befindet, der Nutzern bei der Suche nach Antworten auf kochbezogene Fragen helfen soll. Es wird von Gemini angetrieben und basiert auf einer Quelle mit 70 Kochbüchern aus der Public Domain. Die Rezeptbücher dienen als „Source of Truth“, die Gemini bei der Beantwortung von Fragen verwendet.

  1. Suchen Sie in der Cloud Console nach Vertex AI. Klicken Sie im Dashboard auf Alle empfohlenen APIs aktivieren. Dies kann einige Minuten dauern. Wenn Sie in einem Pop-up-Fenster aufgefordert werden, die Vertex AI API zu aktivieren, aktivieren Sie sie bitte. Sobald die APIs aktiviert sind, können Sie mit dem nächsten Schritt fortfahren.
  2. Suchen Sie nach Agent Builder und klicken Sie dann auf Weiter und API aktivieren.
  3. Wie Gemini in unserer früheren Anfrage vorgeschlagen hat, beginnt das Erstellen einer Such-App in Agent Builder mit der Erstellung einer vertrauenswürdigen Datenquelle. Wenn der Nutzer sucht, versteht Gemini die Frage und weiß, wie er intelligente Antworten formuliert. Er greift jedoch auf die zugrunde liegende Quelle für die in dieser Antwort verwendeten Informationen zurück, anstatt auf sein inhärentes Wissen. Gehen Sie im Menü auf der linken Seite zu Datenspeicher und Datenspeicher erstellen.
  4. Die Kochbücher aus der Public Domain, die wir als Grundlage für unsere Seite mit Kochtipps verwenden, befinden sich derzeit in einem Cloud Storage-Bucket in einem externen Projekt. Wählen Sie den Cloud Storage-Quelltyp aus.
  5. Prüfen Sie die Standardoptionen für die Art der importierten Informationen, ändern Sie sie aber nicht. Lassen Sie den Importtyp auf Ordner eingestellt und verwenden Sie für den Bucket-Pfad labs.roitraining.com/labs/old-cookbooks. Klicken Sie dann auf Weiter.
  6. Benennen Sie den Datenspeicher: old-cookbooks. Klicken Sie auf BEARBEITEN, ändern Sie die ID in old-cookbooks-id und erstellen Sie den Datenspeicher.

Vertex AI Agent Builder unterstützt mehrere App-Typen und der Datenspeicher dient als vertrauenswürdige Quelle für alle. Such-Apps eignen sich für die allgemeine Nutzung und Suche. Chat-Apps sind für generative Abläufe in Dataflow-basierten Chatbot-/Voicebot-Anwendungen gedacht. Empfehlungs-Apps tragen dazu bei, bessere Empfehlungssysteme zu erstellen. Agent-Apps dienen zum Erstellen von GenAI-basierten Agents. Letztendlich würde uns Agent wahrscheinlich am besten für das, was wir tun möchten, dienen. Da das Produkt derzeit jedoch nur in der Vorabversion verfügbar ist, bleiben wir beim App-Typ „Suche“.

  1. Klicken Sie im Menü auf der linken Seite auf Apps und dann auf Neue App erstellen.
  2. Klicken Sie auf der Karte Nach Ihrer Website suchen auf Erstellen. Geben Sie der App den Namen cookbook-search. Klicken Sie auf Bearbeiten und legen Sie die App-ID auf cookbook-search-id fest. Legen Sie das Unternehmen auf Google fest und klicken Sie auf Weiter.
  3. Prüfen Sie den Datenspeicher old-cookbooks, den Sie vor ein paar Schritten erstellt haben, und erstellen Sie die Such-App.

Wenn Sie den Tab Aktivität prüfen, sehen Sie wahrscheinlich, dass die Kochbücher noch importiert und indexiert werden. Es dauert mehr als fünf Minuten, bis Agent Builder die Tausende von Seiten in den 70 Kochbüchern indexiert hat, die wir ihm gegeben haben. Währenddessen laden und bereinigen wir einige Daten aus der Rezeptdatenbank für unseren Rezeptgenerator.

6. Daten mithilfe von Gemini Code Assist in ein Colab Enterprise-Notebook laden und bereinigen

Google Cloud bietet mehrere Möglichkeiten, mit Jupyter-Notebooks zu arbeiten. Wir verwenden das neueste Angebot von Google, Colab Enterprise. Einige von Ihnen kennen vielleicht das Colab-Produkt von Google, das häufig von Einzelpersonen und Organisationen verwendet wird, die in einer kostenlosen Umgebung mit Jupyter-Notebooks experimentieren möchten. Colab Enterprise ist ein kommerzielles Google Cloud-Angebot, das vollständig in die übrigen Cloud-Produkte von Google eingebunden ist und die Sicherheits- und Compliance-Funktionen der GCP-Umgebung voll ausschöpft.

Eine der Funktionen von Colab Enterprise ist die Einbindung von Gemini Code Assist von Google. Code Assist kann in einer Reihe verschiedener Code-Editoren verwendet werden und bietet während des Codierens Ratschläge sowie nahtlose Inline-Vorschläge. Wir werden diesen generativen Assistenten nutzen, während wir unsere Rezeptdaten bearbeiten.

  1. Suchen Sie über die Suche nach Colab Enterprise und klicken Sie auf Notebook erstellen. Wenn Sie das Angebot erhalten, neue Colab-Funktionen auszuprobieren, lehnen Sie es ab. Klicken Sie rechts oben auf Ihrem neuen Notebook auf Verbinden, um die Laufzeit und die Rechenleistung des Notebooks zu nutzen.Verbinden
  2. Klicken Sie auf Datei > Umbenennen, um das Notizbuch in Data Wrangling umzubenennen.Umbenennen über Dreipunkt-Menü
  3. Klicken Sie auf + Text, um ein neues Textfeld zu erstellen, und verschieben Sie es mit dem Aufwärtspfeil so, dass es die erste Zelle auf der Seite ist.+ Text und Aufwärtspfeil
  4. Bearbeiten Sie das Textfeld und geben Sie Folgendes ein:
    # Data Wrangling
    
    Import the Pandas library
    
  5. Geben Sie im Codeblock unter dem gerade erstellten Textblock imp ein. Gemini Code Assist sollte dann den Rest des Imports in grau vorschlagen. Drücken Sie die Tabulatortaste, um den Vorschlag zu akzeptieren.
    import pandas as pd
    
  6. Erstellen Sie unter dem Feld für den Importcode ein weiteres Textfeld und geben Sie Folgendes ein:
    Create a Pandas DataFrame from: gs://labs.roitraining.com/labs/recipes/recipe_dataset.csv. View the first few records.
    
  7. Erstellen und bearbeiten Sie einen weiteren Codeblock. Geben Sie noch einmal df = ein und sehen Sie sich den von Gemini Code Assist generierten Code an. Wenn über dem generierten Vorschlag eine Drop-down-Liste mit Python-Keywords zur automatischen Vervollständigung angezeigt wird, drücken Sie die Escape-Taste, um den vorgeschlagenen Code in hellgrau zu sehen. Drücken Sie noch einmal die Tabulatortaste, um den Vorschlag zu akzeptieren. Wenn Ihr Vorschlag den Funktionsaufruf head() nicht enthält, fügen Sie ihn hinzu.
    df = pd.read_csv('gs://labs.roitraining.com/labs/recipes/recipe_dataset.csv')
    df.head()
    
  8. Klicken Sie auf die erste Codezelle, in die Sie Pandas importiert haben, und führen Sie die ausgewählte Zelle über das Menü Befehle oder die Tastatur aus. Auf der Tastatur wird die Zelle mit Umschalttaste + Eingabetaste ausgeführt und der Fokus auf die nächste Zelle verschoben. Falls erforderlich, wird eine neue Zelle erstellt. Warten Sie, bis die Zelle ausgeführt wurde, bevor Sie fortfahren.HINWEIS: Wenn eine Zelle nicht ausgeführt wurde, wird links daneben [ ] angezeigt. Während eine Zelle ausgeführt wird, sehen Sie eine sich drehende Arbeitsanimation. Sobald die Zelle fertig ist, wird eine Zahl angezeigt, z. B. [13].
  9. Führen Sie die Zelle aus, die die CSV-Datei in den DataFrame lädt. Warten Sie, bis die Datei geladen ist, und sehen Sie sich die ersten fünf Datenzeilen an. Das sind die Rezeptdaten, die wir in BigQuery laden und später als Grundlage für unseren Rezeptgenerator verwenden.
  10. Erstellen Sie einen neuen Codeblock und geben Sie den folgenden Kommentar ein. Nachdem Sie den Kommentar eingegeben haben, springen Sie zur nächsten Codezeile. Sie sollten dann den Vorschlag df.columns sehen. Akzeptieren Sie die Warnung und führen Sie die Zelle aus.
    # List the current DataFrame column names
    
    Wir haben gerade gezeigt, dass Sie in einem Jupyter-Notebook zwei Möglichkeiten haben, Hilfe von Gemini Code Assist zu erhalten: Textzellen über Codezellen oder Kommentare in der Codezelle selbst. Kommentare in Codezellen funktionieren gut in Jupyter-Notebooks, aber auch in jeder anderen IDE, die den Gemini Code Assist von Google unterstützt.
  11. Bereinigen wir die Spalten ein wenig. Benennen Sie die Spalte Unnamed: 0 in id und link in uri um. Verwenden Sie die gewünschten Prompt- und Codetechniken, um den Code zu erstellen, und führen Sie die Zelle aus, wenn Sie zufrieden sind.
    # Rename the column 'Unnamed: 0' to 'id' and 'link' to 'uri'
    df.rename(columns={'Unnamed: 0': 'id', 'link': 'uri'}, inplace=True)
    
  12. Entfernen Sie die Spalten source und NER und verwenden Sie head(), um die ersten Zeilen aufzurufen. Lassen Sie sich noch einmal von Gemini helfen. Führen Sie die letzten beiden Zeilen aus und prüfen Sie die Ergebnisse.
    # Remove the source and NER columns
    df.drop(columns=['source', 'NER'], inplace=True)
    df.head()
    
  13. Sehen wir uns an, wie viele Datensätze in unserem Dataset enthalten sind. Beginnen Sie wieder mit der von Ihnen ausgewählten Prompt-Technik und sehen Sie, ob Gemini Ihnen beim Generieren des Codes helfen kann.
    # Count the records in the DataFrame
    df.shape # count() will also work
    
  14. 2,23 Millionen Einträge sind wahrscheinlich mehr Rezepte, als wir Zeit haben. Der Indexierungsvorgang in Agent Builder würde für unsere Übung heute wahrscheinlich zu lange dauern. Als Kompromiss nehmen wir 150.000 Rezepte als Stichprobe. Verwenden Sie Ihren Ansatz „Prompt > Code“, um die Stichprobe in einem neuen DataFrame mit dem Namen dfs (s für „small“) zu speichern.
    # Sample out 150,000 records into a DataFrame named dfs
    dfs = df.sample(n=150000)
    
  15. Die Daten der Rezeptquelle können jetzt in BigQuery geladen werden. Bevor wir mit dem Laden beginnen, rufen wir BigQuery auf und bereiten ein Dataset für unsere Tabelle vor. Suchen Sie in der Google Cloud Console im Suchfeld nach BigQuery. Sie können mit der rechten Maustaste auf BigQuery klicken und es in einem neuen Browsertab öffnen.
  16. Falls noch nicht geschehen, öffnen Sie das Gemini-KI-Chat-Steuerfeld über das Gemini-Logo oben rechts in der Cloud Console. Wenn Sie aufgefordert werden, die API noch einmal zu aktivieren, drücken Sie entweder auf „Aktivieren“ oder aktualisieren Sie die Seite. Prompt ausführen: What is a dataset used for in BigQuery? Nachdem Sie sich die Antwort angesehen haben, How can I create a dataset named recipe_data using the Cloud Console? vergleichen Sie die Ergebnisse mit den folgenden Schritten.Gemini Cloud Assist öffnen
  17. Klicken Sie im BigQuery-Explorer neben Ihrer Projekt-ID auf das Dreipunkt-Menü Aktionen ansehen. Wählen Sie dann Dataset erstellen aus.Explore-Aktionen ansehen
  18. Geben Sie den Datensatz und die ID von recipe_data an. Lassen Sie den Standorttyp auf US und klicken Sie auf Dataset erstellen. Wenn Sie die Fehlermeldung erhalten, dass das Dataset bereits vorhanden ist, fahren Sie einfach fort.Nachdem wir das Dataset in BigQuery erstellt haben, kehren wir zu unserem Notebook zurück und führen die Datenaufnahme durch.
  19. Kehren Sie zu Ihrem Data Wrangling-Notebook in Colab Enterprise zurück. Erstellen Sie in einer neuen Codezelle eine Variable mit dem Namen project_id und speichern Sie darin die aktuelle Projekt-ID. Die aktuelle Projekt-ID finden Sie links oben in dieser Anleitung unter der Schaltfläche „Lab beenden“. Sie finden sie auch auf der Cloud Console-Startseite. Weisen Sie den Wert der Variablen project_id zu und führen Sie die Zelle aus.
    # Create a variable to hold the current project_id
    project_id='YOUR_PROJECT_ID'
    
  20. Verwenden Sie den Prompt > Code-Ansatz, um einen Codeblock zu erstellen, mit dem der DataFrame dfs in eine Tabelle mit dem Namen recipes im gerade erstellten Dataset recipe_data eingefügt wird. Führen Sie die Zelle aus.
    dfs.to_gbq(destination_table='recipe_data.recipes', project_id=project_id, if_exists='replace')
    

7. Such-App in Vertex AI Agent Builder für den Rezeptgenerator erstellen

Sehr gut. Jetzt, da wir unsere Tabelle mit Rezeptdaten erstellt haben, können wir damit eine fundierte Datenquelle für unseren Rezeptgenerator erstellen. Der Ansatz, den wir verwenden werden, ähnelt dem, den wir für unseren Koch-Chatbot verwendet haben. Wir erstellen mit Vertex AI Agent Builder einen Datenspeicher und verwenden ihn dann als vertrauenswürdige Quelle für eine Such-App.

Sie können Gemini in der Google Cloud Console bitten, Sie an die Schritte zum Erstellen einer Agent Builder-Suche zu erinnern. Alternativ können Sie auch die folgenden Schritte ausführen.

  1. Rufen Sie über die Suche Agent Builder auf. Öffnen Sie Datenspeicher und Datenspeicher erstellen. Wählen Sie diesmal den BigQuery-Datenspeichertyp aus.
  2. Klicken Sie in der Tabellenauswahlzelle auf Durchsuchen und suchen Sie nach recipes. Klicken Sie auf das Optionsfeld neben der Tabelle. Wenn Sie Rezepte aus anderen qwiklabs-gcp-…-Projekten sehen, wählen Sie das richtige aus.HINWEIS: Wenn Sie auf recipes klicken, anstatt das Optionsfeld daneben auszuwählen, wird in Ihrem Browser ein neuer Tab geöffnet und Sie gelangen zur Übersichtsseite der Tabelle in BigQuery. Schließen Sie einfach den Browsertab und wählen Sie das Optionsfeld in Agent Builder aus.
  3. Prüfen Sie die restlichen Standardoptionen, ändern Sie sie aber nicht, und klicken Sie dann auf Weiter.
  4. Prüfen Sie auf der Seite „Schemaüberprüfung“ die ursprünglichen Standardkonfigurationen, nehmen Sie aber keine Änderungen vor. Weiter
  5. Geben Sie dem Datenspeicher den Namen recipe-data. Bearbeiten Sie die Datenspeicher-ID und legen Sie sie auf recipe-data-id fest. Erstellen Sie den Datenspeicher.
  6. Klicken Sie im Menü auf der linken Seite auf Apps und dann auf Neue App erstellen.
  7. Klicken Sie auf der Karte Nach Ihrer Website suchen auf Erstellen. Geben Sie der App den Namen recipe-search und klicken Sie auf BEARBEITEN, um die ID auf recipe-search-id festzulegen. Legen Sie den Namen des Unternehmens auf Google fest und klicken Sie auf Weiter.
  8. Prüfen Sie diesmal die Datenquellen recipe-data. Erstellen Sie die App.

Es dauert eine Weile, bis die Datenbanktabelle indexiert ist. In der Zwischenzeit können wir mit dem neuen Data Canvas von BigQuery experimentieren und sehen, ob wir ein oder zwei interessante Rezepte finden.

  1. Verwenden Sie das Suchfeld, um BigQuery aufzurufen. Klicken Sie oben in BigQuery Studio neben dem rechten Tab auf den Drop-down-Pfeil und wählen Sie Datencanvas aus. Legen Sie als Region us-central1 fest.Daten-Canvas öffnen
  2. Klicken Sie auf Daten suchen. Suchen Sie im Suchfeld für den Datencanvas nach recipes, drücken Sie die Enter/Return-Eingabetaste und klicken Sie neben dem Namen der Tabelle auf die Schaltfläche Zum Canvas hinzufügen.
  3. Eine visuelle Darstellung Ihrer Rezepttabelle wird in das BigQuery-Daten-Canvas geladen. Sie können sich das Schema der Tabelle ansehen, eine Vorschau der Daten in der Tabelle anzeigen lassen und weitere Details prüfen. Klicken Sie unter der Tabellendarstellung auf Abfrage.
  4. Auf dem Canvas wird ein mehr oder weniger typisches BigQuery-Abfragedialogfeld mit einer zusätzlichen Funktion geladen: Über dem Abfragefenster befindet sich ein Textfeld, über das Sie Gemini um Hilfe bitten können. Sehen wir uns an, ob wir in unserer Stichprobe Kuchenrezepte finden. Führen Sie den folgenden Prompt aus (Geben Sie den Text ein und drücken Sie die Taste Enter/Return, um die SQL-Generierung auszulösen):
    Please select the title and ingredients for all the recipes with a title that contains the word cake.
    
  5. Sehen Sie sich die generierte SQL-Abfrage an. Wenn Sie mit der Abfrage zufrieden sind, führen Sie sie aus.
  6. Nicht schlecht! Sie können noch mit ein paar anderen Prompts und Abfragen experimentieren, bevor Sie fortfahren. Probieren Sie bei Ihren Tests weniger spezifische Prompts aus, um herauszufinden, was funktioniert und was nicht. Beispiel:
    Do I have any chili recipes?
    
    (Denken Sie daran, die neue Abfrage auszuführen.) Es wurde eine Liste mit Chilirezepten zurückgegeben, die Zutaten wurden jedoch nicht berücksichtigt, bis ich die Abfrage so geändert habe:
    Do I have any chili recipes?  Please include their title and ingredients.
    
    (Ja, ich sage „bitte“, wenn ich etwas auffordere. Meine Mama wäre so stolz.) Mir ist aufgefallen, dass ein Chili-Rezept Pilze enthielt. Wer möchte das schon in Chili? Ich habe Gemini gebeten, mir dabei zu helfen, diese Rezepte auszuschließen.
    Do I have any chili recipes?  Please include their title and ingredients, and ignore any recipes with mushrooms as an ingredient.
    

8. Cloud Shell-Editor öffnen

  1. Rufen Sie den Cloud Shell-Editor auf.
  2. Wenn das Terminal nicht unten auf dem Bildschirm angezeigt wird, öffnen Sie es:
    • Klicke auf das Dreistrich-Menü Dreistrich-Menüsymbol.
    • Klicken Sie auf Terminal.
    • Klicken Sie auf Neues TerminalNeues Terminal im Cloud Shell-Editor öffnen.
  3. Legen Sie das Projekt im Terminal mit diesem Befehl fest:
    • Format:
      gcloud config set project [PROJECT_ID]
      
    • Beispiel:
      gcloud config set project lab-project-id-example
      
    • Wenn Sie sich Ihre Projekt-ID nicht merken können:
      • So listen Sie alle Ihre Projekt-IDs auf:
        gcloud projects list | awk '/PROJECT_ID/{print $2}'
        
      Projekt-ID im Cloud Shell-Editor-Terminal festlegen
  4. Wenn Sie dazu aufgefordert werden, klicken Sie auf Autorisieren, um fortzufahren. Klicken Sie, um Cloud Shell zu autorisieren.
  5. Es sollte folgende Meldung angezeigt werden:
    Updated property [core/project].
    
    Wenn du die Meldung WARNING und die Frage Do you want to continue (Y/N)? siehst, hast du wahrscheinlich die Projekt-ID falsch eingegeben. Drücken Sie N, Enter und versuchen Sie noch einmal, den Befehl gcloud config set project auszuführen.

9. APIs aktivieren

Aktivieren Sie im Terminal die APIs:

gcloud services enable \
  compute.googleapis.com \
  sqladmin.googleapis.com \
  run.googleapis.com \
  artifactregistry.googleapis.com \
  cloudbuild.googleapis.com \
  networkconnectivity.googleapis.com \
  servicenetworking.googleapis.com \
  cloudaicompanion.googleapis.com

Wenn Sie dazu aufgefordert werden, klicken Sie auf Autorisieren, um fortzufahren. Klicken Sie, um Cloud Shell zu autorisieren.

Die Verarbeitung dieses Befehls kann einige Minuten dauern. Sie sollten aber schließlich eine Meldung ähnlich der folgenden erhalten:

Operation "operations/acf.p2-73d90d00-47ee-447a-b600" finished successfully.

10. Mit etwas Unterstützung von Gemini die Hauptfunktionen der Python- und Streamlit-Webanwendung skizzieren

Die Indexierung unserer beiden Vertex AI Agent Builder-Datenspeicher ist abgeschlossen und unsere Suchanwendungen sind fast einsatzbereit. Jetzt können wir mit dem Erstellen unserer Webanwendung beginnen.

Dabei nutzen wir Gemini Code Assist. Weitere Informationen zur Verwendung von Gemini Code Assist in Visual Studio Code finden Sie in der Dokumentation.

  1. Führen Sie im Cloud Shell-Editor-Terminal diesen Befehl aus, um das Repository der Rezept-App zu klonen.
    git clone https://github.com/haggman/recipe-app
    
  2. Mit diesem Befehl wird der Anwendungsordner im Cloud Shell-Editor geöffnet.
    cloudshell open-workspace recipe-app/
    
  3. Bevor wir uns den geklonten Ordner ansehen und mit der Arbeit an unserer Webanwendung beginnen, müssen wir das Cloud Code-Plug-in des Editors in Google Cloud anmelden und Gemini aktivieren. Machen wir uns also daran, die Tabellen zu befüllen. Klicken Sie links unten im Editor auf Cloud Code – Anmelden. Wenn Sie den Link nicht sehen, warten Sie eine Minute und versuchen Sie es noch einmal.Cloud Code – Anmelden
  4. Im Terminalfenster wird eine lange URL angezeigt. Öffnen Sie die URL im Browser und führen Sie die Schritte aus, um Cloud Code Zugriff auf Ihre Google Cloud-Umgebung zu gewähren. Kopieren Sie im letzten Dialogfeld den Bestätigungscode und fügen Sie ihn wieder in das wartende Terminalfenster auf dem Browsertab des Cloud Shell-Editors ein.
  5. Nach einigen Augenblicken ändert sich der Cloud Code-Link links unten im Editor in Cloud Code – kein Projekt. Klicken Sie auf den neuen Link, um ein Projekt auszuwählen. Die Befehlspalette sollte oben im Editor geöffnet werden. Klicken Sie auf Google Cloud-Projekt auswählen und wählen Sie Ihr Projekt aus. Nach einigen Momenten wird im Editor links unten der Link aktualisiert und Ihre Projekt-ID angezeigt. Dies bedeutet, dass Cloud Code Ihrem Arbeitsprojekt erfolgreich zugeordnet wurde.
  6. Nachdem Sie Cloud Code mit Ihrem Projekt verbunden haben, können Sie jetzt Gemini Code Assist aktivieren. Klicken Sie rechts unten im Editor auf das durchgestrichene Gemini-Logo. Der Gemini-Chatbereich wird links im Editor geöffnet. Klicken Sie auf Google Cloud-Projekt auswählen. Wählen Sie in der Befehlspalette Ihr Projekt aus. Wenn Sie die Schritte korrekt ausgeführt haben und Google nichts geändert hat, sollte jetzt ein aktives Gemini-Chatfenster angezeigt werden.Gemini deaktiviert
  7. Sehr gut. Terminal, Gemini-Chat und Cloud Code-Konfigurationen sind eingerichtet. Öffnen Sie den Tab Explorer und sehen Sie sich die Dateien im aktuellen Projekt an.Explorer
  8. Öffnen Sie die Datei requirements.txt im Explorer zur Bearbeitung. Wechseln Sie zum Gemini-Chatbereich und stellen Sie folgende Frage:
    From the dependencies specified in the requirements.txt file, what type of application are we building?
    
  9. Wir erstellen also eine interaktive Webanwendung mit Python und Streamlit, die mit Vertex AI und der Discovery Engine interagiert. Konzentrieren wir uns vorerst auf die Komponenten der Webanwendung. Wie Gemini erklärt, ist Streamlit ein Framework zum Erstellen datengetriebener Webanwendungen in Python. Fragen Sie jetzt:
    Does the current project's folder structure seem appropriate for a Streamlit app?
    
    Hier treten in der Regel Probleme mit Gemini auf. Gemini kann auf die Datei zugreifen, die Sie derzeit im Editor geöffnet haben, aber nicht auf das gesamte Projekt. Sie können zum Beispiel Folgendes fragen:
    Given the below, does the current project's file and folder structure seem appropriate for a Streamlit app?
    - build.sh
    - Home.py
    - requirements.txt
    - pages
    -- Cooking_Advice.py
    -- Recipe_Search.py
    
    Eine bessere Antwort erhalten?
  10. Weitere Informationen zu Streamlit:
    What can you tell me about Streamlit?
    
    Sehr gut. Gemini bietet also eine gute Übersicht mit Vor- und Nachteilen.
  11. Wenn Sie die Nachteile kennenlernen möchten, könnten Sie fragen:
    What are the major downsides or shortcomings?
    
    Beachten Sie, dass wir nicht „von Streamlit“ sagen mussten, da Gemini Chat konversationell (mehrfach nutzbar) ist. Gemini weiß, wovon wir sprechen, da wir uns in einer Chatsitzung befinden. Wenn Sie den Gemini-Chatverlauf löschen möchten, klicken Sie oben im Gemini-Code-Chatfenster auf das Papierkorbsymbol.

11. Webanwendung in Cloud Run bereitstellen

Sehr gut. Wir haben die Hauptstruktur der Anwendung festgelegt. Aber funktioniert das alles? Besser noch: Wo sollten wir es in Google Cloud hosten?

  1. Fragen Sie im Gemini-Chatfenster:
    If I containerize this application, what compute technologies in Google Cloud would be best for hosting it?
    
  2. Wenn Sie noch nicht in Ihrer IDE gearbeitet haben, können Sie auch Google Cloud Assist verwenden. Öffnen Sie die Google Cloud Console und dann Gemini Cloud Assist. Stellen Sie folgende Fragen:
    If I have a containerized web application, where would be the best place to run it in Google Cloud?
    
    Waren die beiden Ratschläge identisch? Stimmen Sie den Ratschlägen zu oder nicht? Denken Sie daran, dass Gemini ein Assistent mit generativer KI ist. Wie bei einem menschlichen Assistenten werden Sie nicht immer mit allem einverstanden sein, was er sagt. Wenn Sie diesen Helfer jedoch immer zur Hand haben, während Sie in Google Cloud und in Ihrem Code-Editor arbeiten, können Sie viel effizienter arbeiten.
  3. Für eine zustandslose, kurzlebige containerisierte Webanwendung ist Cloud Run eine gute Option. Probieren Sie den folgenden Prompt im Gemini-Chatfenster Ihres Codeeditors aus:
    What steps would be required to run this application in Cloud Run?
    
  4. Als Erstes müssen wir ein Dockerfile erstellen. Erstellen Sie mit dem Editor im Stammverzeichnis Ihres Projektordners eine Datei mit dem Namen Dockerfile. Achten Sie darauf, dass Sie die Datei nicht versehentlich im Ordner pages ablegen. Öffnen Sie die Datei zur Bearbeitung.
  5. Erstellen wir unser Dockerfile über die seitliche Gemini-Chatleiste. Verwenden Sie einen Prompt wie den folgenden. Wenn die Ergebnisse im Chat angezeigt werden, klicken Sie neben dem Kopiersymbol direkt über dem vorgeschlagenen Dockerfile auf das Pluszeichen, um den vorgeschlagenen Code in das Dockerfile einzufügen.
    Create a Dockerfile for the application in the current folder. The dependencies are defined in requirements.txt and I want you to use the Python 3 slim bookworm base image.
    
    Gemini gibt nicht immer dieselbe Antwort auf denselben Prompt zurück. Als ich Gemini zum ersten Mal um ein Dockerfile bat, erhielt ich genau die Datei, die ich Ihnen empfehlen möchte. Ich habe gerade den folgenden Vorschlag erhalten:
    # Base image
    FROM python:3-bookworm-slim
    
    # Set working directory
    WORKDIR /app
    
    # Install dependencies
    RUN apt-get update && apt-get install -y \
        build-essential \
        libpq-dev \
        gcc \
        python3-dev \
        && rm -rf /var/lib/apt/lists/*
    
    # Install pip and virtualenv
    RUN pip install --upgrade pip virtualenv
    
    # Create virtual environment
    RUN python3 -m venv venv
    
    # Activate virtual environment
    WORKDIR /app/venv/bin
    RUN . activate
    
    # Install Streamlit and libraries from requirements.txt
    RUN pip install -r requirements.txt
    
    # Copy application files
    COPY . /app
    
    # Expose port 8501 for Streamlit
    EXPOSE 8501
    
    # Start Streamlit app
    CMD ["streamlit", "run", "main.py"]
    
    Das ist ein ziemlich umfangreiches Dockerfile. Ich würde es etwas vereinfachen. Der Abschnitt „apt-get“ ist nicht erforderlich, da alles, was für Python benötigt wird, bereits in unserem Basis-Image enthalten ist. Außerdem ist die Verwendung einer virtuellen Umgebung in einem Python-Container eine Platzverschwendung. Ich würde sie daher entfernen. Der Befehl „expose“ ist nicht unbedingt erforderlich, aber empfehlenswert. Außerdem wird versucht, main.py zu starten, das ich nicht habe.
  6. Erstellen Sie im Ordner recipe-app eine Datei mit dem Namen Dockerfile und fügen Sie den folgenden Inhalt ein:
    FROM python:3.11-slim-bookworm
    
    WORKDIR /app
    
    COPY requirements.txt .
    RUN pip install --no-cache-dir --upgrade pip && \
        pip install --no-cache-dir -r requirements.txt
    
    COPY . .
    
    CMD ["streamlit", "run", "Home.py"]
    
  7. Gemini kann über das Chatfenster, aber auch direkt in Ihrer Codedatei mithilfe von Kommentaren verwendet werden, wie wir es im Data Wrangling-Notebook getan haben. Außerdem kann es mit der Tastenkombination Strg + I unter Windows oder Befehlstaste + I auf einem Mac aufgerufen werden. Klicken Sie irgendwo in die Dockerfile und aktivieren Sie Gemini mit der entsprechenden Tastenkombination.
  8. Geben Sie bei der Eingabeaufforderung Folgendes ein: Prüfen Sie die Änderung und nehmen Sie sie an.
    Please comment the current file.
    
    Wie cool ist das denn? Wie oft mussten Sie schon mit dem Code einer anderen Person arbeiten, nur um Zeit zu verschwenden, um sich ein grundlegendes Verständnis für ihre kommentarlose Arbeit zu verschaffen, bevor Sie überhaupt mit Ihren Änderungen beginnen konnten? Gemini hilft Ihnen weiter.
  9. Fragen Sie Gemini, wie Sie mit Cloud Run ein neues Image mit dem Namen recipe-web-app aus dem Dockerfile im aktuellen Verzeichnis erstellen und bereitstellen können.
    How could I use gcloud to build a new Cloud Run service named recipe-web-app from the current directory?
    
  10. Erstellen und stellen wir unsere Anwendung bereit. Führen Sie im Terminalfenster den Befehl gcloud run deploy aus.
    gcloud run deploy recipe-web-app \
        --allow-unauthenticated \
        --source=. \
        --region=us-central1 \
        --port=8501
    
    Wenn Sie aufgefordert werden, ein Artifact Registry-Repository zu erstellen, drücken Sie enter/return.
    Deploying from source requires an Artifact Registry Docker repository to store built containers. A repository
    named cloud-run-source-deploy in region us-central1 will be created.
    
    Do you want to continue (Y/n)?
    
  11. Wenn Sie sich den Buildprozess ansehen, wird zuerst das Docker-Repository von Artifact Registry erstellt. Anschließend wird mit Cloud Build das Container-Image aus dem Dockerfile im lokalen Ordner erstellt. Abschließend wird das Docker-Image in einem neuen Cloud Run-Dienst bereitgestellt. Am Ende des Scripts wird eine Cloud Run-Test-URL angezeigt, die Sie verwenden können.

Öffnen Sie den zurückgegebenen Link in einem neuen Tab Ihres Browsers. Sehen Sie sich die Struktur und die Seiten der Anwendung an. Super, jetzt müssen wir die Funktion für die generative KI einbinden.

12. Die Seite „Kochtipps“ mit der Agent Builder-App für die Suche nach Kochbüchern verknüpfen

Das Framework für die Webanwendung ist bereits in Betrieb, aber wir müssen die beiden Arbeitsseiten mit unseren beiden Vertex AI Agent Builder-Suchanwendungen verbinden. Beginnen wir mit Kochtipps.

  1. Lassen Sie den Tab „Cloud Shell-Editor“ geöffnet. Suchen Sie in der Google Cloud Console nach Chat in Vertex AI.
  2. Legen Sie im rechten Bereich der Seite „Einstellungen“ das Modell auf gemini-1.5-flash-002 fest. Maximieren Sie das Ausgabetokenlimit, damit das Modell bei Bedarf längere Antworten zurückgeben kann. Öffnen Sie die Einstellungen für den Sicherheitsfilter. Legen Sie für „Hassrede“, „Sexuell explizite Inhalte“ und „Belästigung“ die Option Einige blockieren fest. Legen Sie für „Gefährliche Inhalte“ die Option Wenige blockieren fest und klicken Sie auf Speichern. Wir senken den Schwellenwert für gefährliche Inhalte etwas, da das Sprechen über Messer und Schneiden von Gemini als Gewalt interpretiert werden kann.
  3. Bewegen Sie den Schieberegler, um die Fundierung zu aktivieren, und klicken Sie dann auf Anpassen. Legen Sie als Fundierungsquelle Vertex AI Search fest und verwenden Sie für den Datenspeicherpfad Folgendes: Ersetzen Sie YOUR_PROJECT_ID durch die Projekt-ID, die Sie in dieser Anleitung in der Nähe der Schaltfläche „Lab beenden“ finden. Speichern Sie dann die Einstellungen für die Erdung.
    projects/YOUR_PROJECT_ID/locations/global/collections/default_collection/dataStores/old-cookbooks-id
    
    HINWEIS: Wenn eine Fehlermeldung angezeigt wird, haben Sie entweder die Projekt-ID nicht in Ihre tatsächliche Projekt-ID geändert oder Sie haben den Schritt zum Ändern der Agent Builder-Datenspeicher-ID für alte Cookbooks übersprungen. Die tatsächliche Datenspeicher-ID finden Sie in Agent Builder unter „Datenspeicher“ > „Alte Cookbooks“.
  4. Testen Sie einige Chatnachrichten. Beginnen Sie mit den folgenden Schritten. Probieren Sie gerne noch ein paar andere aus.
    How can I tell if a tomato is ripe?
    
  5. Das Modell funktioniert. Jetzt können wir mit dem Code experimentieren. Klicken Sie auf Unterhaltung löschen, damit unsere Unterhaltungen nicht Teil des Codes werden, und dann auf Code abrufen.Unterhaltung löschen und Code abrufen
  6. Klicken Sie oben im Codefenster auf Notebook öffnen, damit wir den Code in Colab Enterprise testen und optimieren können, bevor wir ihn in unsere App einbinden.
  7. Nehmen Sie sich ein paar Minuten Zeit, um sich mit dem Code vertraut zu machen. Nehmen wir einige Änderungen vor, um sie an unsere Anforderungen anzupassen. Führen Sie vor Beginn die erste Codezelle aus, um eine Verbindung zum Compute-Cluster herzustellen und das AI Platform SDK zu installieren. Nach dem Ausführen des Blocks werden Sie aufgefordert, die Sitzung neu zu starten. Bitte tun Sie das.
  8. Rufen Sie den Code auf, den wir aus Vertex AI Studio exportiert haben. Ändern Sie den Namen der Methode multiturn_generate_content in start_chat_session.
  9. Scrollen Sie zum Aufruf der Methode model = GenerativeModel(. Im vorhandenen Code werden generation_config und safety_settings definiert, aber nicht verwendet. Ändern Sie die Erstellung der GenerativeModel so, dass sie so aussieht:
    model = GenerativeModel(
        "gemini-1.5-flash-002",
        tools=tools,
        generation_config=generation_config,
        safety_settings=safety_settings,
    )
    
  10. Fügen Sie der Methode abschließend eine Zeile direkt unter chat = model.start_chat() hinzu, damit die Funktion das chat-Objekt zurückgibt. Die fertige Funktion sollte so aussehen.HINWEIS: KOPIEN Sie diesen Code NICHT in Ihr Notebook. Sie dient lediglich als Plausibilitätscheck.
    def start_chat_session():
        vertexai.init(project="qwiklabs-gcp-02-9a7298ceaaec", location="us-central1")
        tools = [
            Tool.from_retrieval(
                retrieval=grounding.Retrieval(
                    source=grounding.VertexAISearch(datastore="projects/qwiklabs-gcp-02-9a7298ceaaec/locations/global/collections/default_collection/dataStores/old-cookbooks-id"),
                )
            ),
        ]
        model = GenerativeModel(
            "gemini-1.5-flash-002",
            tools=tools,
            generation_config=generation_config,
            safety_settings=safety_settings,
        )
        chat = model.start_chat()
        return chat
    
  11. Scrollen Sie zum Ende der Codezelle und ändern Sie die letzte Zeile, in der die alte Funktion aufgerufen wird, so, dass der neue Funktionsname aufgerufen und das zurückgegebene Objekt in einer Variablen chat gespeichert wird. Wenn Sie mit den Änderungen zufrieden sind, führen Sie die Zelle aus.
    chat = start_chat_session()
    
  12. Erstellen Sie eine neue Codezelle und fügen Sie den Kommentar # Use chat to invoke Gemini and print out the response hinzu. Wechseln Sie zur nächsten Zeile und geben Sie resp ein. Gemini sollte den Block dann automatisch für Sie vervollständigen. Aktualisieren Sie den Prompt auf How can I tell if a tomato is ripe?. Zelle ausführen
    response = chat.send_message("How can I tell if a tomato is ripe?")
    print(response)
    
  13. Das ist die Antwort. Uns interessiert aber das verschachtelte text-Feld. Ändern Sie den Codeblock so, dass nur dieser Abschnitt ausgegeben wird, z. B.:
    response = chat.send_message("How can I tell if a tomato is ripe?")
    print(response.candidates[0].content.parts[0].text)
    
  14. Gut. Jetzt, da wir funktionierenden Chatcode haben, können wir ihn in unsere Webanwendung einbinden. Kopieren Sie den gesamten Inhalt der Codezelle, in der die Funktion start_chat_session erstellt wird. Die Testzelle benötigen wir nicht. Wenn Sie auf die Zelle klicken, können Sie oben rechts auf das Dreipunkt-Menü klicken und es von dort aus kopieren.Zelle kopieren
  15. Wechseln Sie zum Tab „Cloud Shell-Editor“ und öffnen Sie pages\Cooking_Advice.py zur Bearbeitung.
  16. Suchen Sie den Kommentar:
    #
    # Add the code you copied from your notebook below this message
    #
    
  17. Fügen Sie den kopierten Code direkt unter dem Kommentar Code hinzufügen ein. Super, jetzt haben wir den Abschnitt, der die Chat-Engine über einen gegroundeten Aufruf an Gemini steuert. Integrieren wir es jetzt in Streamlit.
  18. Suchen Sie direkt unter dem Kommentar nach dem kommentierten Code:
    #
    # Here's the code to setup your session variables
    # Uncomment this block when instructed
    #
    
  19. Entfernen Sie den Kommentar zu diesem Codeabschnitt (bis zum nächsten Setup done, let's build the page UI-Abschnitt) und sehen Sie sich den Code an. Er erstellt oder ruft die Variablen für die Chat- und Verlaufssitzung ab.
  20. Als Nächstes müssen wir die Verlaufs- und Chatfunktionen in die Benutzeroberfläche einbinden. Scrollen Sie im Code nach unten, bis Sie den folgenden Kommentar sehen.
    #
    # Here's the code to create the chat interface
    # Uncomment the below code when instructed
    #
    
  21. Entfernen Sie den Kommentar und sehen Sie sich den Rest des Codes an. Sie können sie markieren und Gemini bitten, ihre Funktionsweise zu erklären.
  22. Sehr gut. Jetzt können wir die Anwendung erstellen und bereitstellen. Wenn die URL wieder angezeigt wird, starten Sie die Anwendung und testen Sie die Seite „Kochberater“. Vielleicht fragen Sie ihn nach reifen Tomaten oder er kennt eine gute Zubereitungsmethode für Rosenkohl.
    gcloud run deploy recipe-web-app \
        --allow-unauthenticated \
        --source=. \
        --region=us-central1 \
        --port=8501
    

Das ist sehr hilfreich. Ihr persönlicher KI-Kochberater :-)

13. Optional: Seite „Rezeptsuche“ mit der Agent Builder App für die Rezeptsuche verknüpfen

Wir haben die Seite „Kochtipps“ direkt über die Gemini API mit der entsprechenden Quelle verbunden. Für die Rezeptsuche stellen wir eine direkte Verbindung zur Vertex AI Agent Builder-Suche her.

  1. Öffnen Sie die Seite pages/Recipe_Search.py im Cloud Shell-Editor zur Bearbeitung. Sehen Sie sich die Struktur der Seite an.
  2. Legen Sie oben in der Datei Ihre Projekt-ID fest.
  3. Sehen Sie sich die Funktion search_sample an. Dieser Code stammt mehr oder weniger direkt aus der Discovery Engine-Dokumentation. Eine Arbeitskopie finden Sie in diesem Notizbuch.Ich habe nur die response.results anstelle der Ergebnisse zurückgegeben. Andernfalls ist der Rückgabetyp ein Objekt, mit dem sich die Ergebnisse durchblättern lassen. Das ist für unsere einfache Anwendung nicht erforderlich.
  4. Scrollen Sie ganz zum Ende der Datei und entfernen Sie den Kommentar vor dem gesamten Abschnitt unter Here are the first 5 recipes I found.
  5. Markieren Sie den gesamten Abschnitt, den Sie gerade deaktiviert haben, und öffnen Sie Gemini Code Chat. Fragen Sie, Explain the highlighted code. Wenn Sie nichts ausgewählt haben, kann Gemini die gesamte Datei erklären. Wenn Sie einen Abschnitt markieren und Gemini bitten, ihn zu erklären, zu kommentieren oder zu verbessern, tut es das.Nehmen Sie sich einen Moment Zeit, um sich die Erklärung durchzulesen. Die Verwendung eines Colab Enterprise-Notebooks ist eine gute Möglichkeit, die Gemini APIs zu testen, bevor Sie sie in Ihre Anwendung einbinden. Das ist besonders hilfreich, wenn Sie einige der neueren APIs kennenlernen möchten, die möglicherweise nicht so gut dokumentiert sind, wie sie sein könnten.
  6. Führen Sie im Terminalfenster des Editors build.sh aus, um die endgültige Anwendung bereitzustellen. Warten Sie, bis die neue Version bereitgestellt wurde, bevor Sie mit dem nächsten Schritt fortfahren.

14. (Optional) Die fertige Anwendung ansehen

Nehmen Sie sich einige Minuten Zeit, um die fertige Anwendung zu erkunden.

  1. Suchen Sie in der Google Cloud Console nach Cloud Run und klicken Sie dann auf Ihre Rezept-Web-App.
  2. Suchen Sie oben nach der URL für den Anwendungstest und öffnen Sie sie in einem neuen Browsertab.
  3. Die Startseite der Anwendung sollte angezeigt werden. Beachten Sie das grundlegende Layout und die Navigation von Streamlit. Die Python-Dateien aus dem Ordner pages werden als Navigationsoptionen angezeigt und Home.py wird als Startseite geladen. Rufen Sie die Seite Kochtipps auf.
  4. Nach wenigen Augenblicken wird die Chatoberfläche angezeigt. Beachten Sie auch hier das schöne Kernlayout von Streamlit.
  5. Stellen Sie ein paar Fragen zum Kochen und sehen Sie, wie der Bot funktioniert. Beispiel:
    Do you have any advice for preparing broccoli?
    
    How about a classic chicken soup recipe?
    
    Tell me about meringue.
    
  6. Suchen wir uns jetzt ein oder zwei Rezepte. Rufen Sie die Seite „Rezeptsuche“ auf und führen Sie einige Suchanfragen durch. Beispiel:
    Chili con carne
    
    Chili, corn, rice
    
    Lemon Meringue Pie
    
    A dessert containing strawberries
    

15. Glückwunsch!

Sie haben eine Anwendung erstellt, die Vertex AI Agent Builder-Anwendungen nutzt. Dabei haben Sie Gemini Cloud Assist, Gemini Code Assist und die Funktionen für die Umwandlung von natürlicher Sprache in SQL im Daten-Canvas von BigQuery kennengelernt. Fantastisch!

Bereinigen

Cloud SQL ist nicht kostenlos. Wenn Sie die Plattform weiter nutzen, werden Ihnen Kosten in Rechnung gestellt. Sie können Ihr Cloud-Projekt löschen, um zusätzliche Kosten zu vermeiden.

Für Cloud Run fallen keine Kosten an, wenn der Dienst nicht verwendet wird. Allerdings können für das Speichern des Container-Images in Artifact Registry Gebühren berechnet werden. Wenn Sie Ihr Cloud-Projekt löschen, wird die Abrechnung für alle in diesem Projekt verwendeten Ressourcen beendet.

Sie können das Projekt löschen:

gcloud projects delete $GOOGLE_CLOUD_PROJECT

Sie können auch unnötige Ressourcen von Ihrem CloudShell-Laufwerk löschen. Sie haben folgende Möglichkeiten:

  1. Löschen Sie das Codelab-Projektverzeichnis:
    rm -rf ~/task-app
    
  2. Warnung! Diese nächste Aktion kann nicht rückgängig gemacht werden. Wenn Sie alles in Cloud Shell löschen möchten, um Speicherplatz freizugeben, können Sie Ihr ganzes Basisverzeichnis löschen. Achten Sie darauf, dass alles, was Sie behalten möchten, an einem anderen Ort gespeichert ist.
    sudo rm -rf $HOME