Anwendungen im Zeitalter der KI entwickeln

1. Übersicht

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

Wir möchten eine Website für Rezepte und Kochen namens „AI Recipe Haven“ erstellen. Die Website wird in Python und Streamlit erstellt und enthält zwei Hauptseiten. Auf der Website „Cooking Advice“ wird ein Chatbot gehostet, den wir mit Gemini und einer fundierten Quelle für Vertex AI Agent Builder erstellen, die mit einer Gruppe von Kochbüchern verknüpft ist. Der Chatbot bietet Kochtipps und beantwortet Fragen zum Kochen. Die Rezeptsuche ist eine Suchmaschine, die von Gemini unterstützt wird und auf einer BigQuery-Rezeptdatenbank basiert.

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

Ziele

Aufgaben in diesem Lab:

  • Gemini Cloud Assist aktivieren und verwenden
  • Suchanwendung in Vertex AI Agent Builder für den Chatbot für Kochtipps erstellen
  • Daten in einem Colab Enterprise-Notebook mit Gemini Code Assist laden und bereinigen
  • Suchanwendung in Vertex AI Agent Builder für den Rezeptgenerator erstellen
  • Grundgerüst der Python- und Streamlit-Webanwendung erstellen – mit Unterstützung von Gemini
  • Webanwendung in Cloud Run bereitstellen
  • Seite mit Kochtipps mit unserer Agent Builder-App für die Suche nach Kochbüchern verknüpfen
  • Optional: Rezeptsuche-Seite mit der Agent Builder-App „Rezeptsuche“ verbinden
  • (Optional) Abschließende Anwendung ansehen

2. Vorbereitung

  1. Wenn Sie noch kein Google-Konto haben, müssen Sie ein Google-Konto erstellen.
    • Verwenden Sie stattdessen ein privates Konto. Bei Arbeitskonten und Konten von Bildungseinrichtungen kann es Einschränkungen geben, die verhindern, dass Sie die für dieses Lab erforderlichen APIs aktivieren.

3. Projekt einrichten

  1. Melden Sie sich in der Google Cloud Console an.
  2. Aktivieren Sie die Abrechnung in der Cloud Console.
    • Die Cloud-Ressourcen, die für dieses Lab benötigt werden, sollten weniger als 1 $kosten.
    • Sie können die Schritte am Ende dieses Labs ausführen, um Ressourcen zu löschen und so weitere Kosten zu vermeiden.
    • Neue Nutzer haben Anspruch auf die kostenlose Testversion mit einem Guthaben von 300$.
    • Sie nehmen an einem virtuellen praxisorientierten Lab teil? Möglicherweise ist eine Gutschrift in Höhe von 5$ verfügbar.
  3. Erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes Projekt wieder.
  4. Prüfen Sie in der Cloud-Abrechnung unter Meine Projekte 
      , ob die Abrechnung aktiviert ist.
    • Wenn in Ihrem neuen Projekt in der Spalte Billing account der Wert 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 gewünschte Rechnungskonto aus.
    • Wenn Sie an einer Live-Veranstaltung teilnehmen, heißt das Konto 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 Sie beraten, Sie beim Erstellen, Konfigurieren und Überwachen Ihrer Google Cloud-Infrastruktur unterstützen und sogar gcloud-Befehle vorschlagen und Terraform-Scripts schreiben.

  1. Um Cloud Assist zu aktivieren, klicken Sie oben in der Cloud Console-Benutzeroberfläche in das Suchfeld und wählen Sie Gemini fragen oder Gemini für 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 Sie nicht sofort eine Chatoberfläche sehen, klicken Sie auf Chat starten. Bitten Sie Gemini, einige der Vorteile der Verwendung des Cloud Shell-Editors zu erläutern. Nehmen Sie sich einige Minuten Zeit, um die generierte Antwort zu lesen.
  4. Fragen Sie dann nach den Vorteilen von Agent Builder und wie es helfen kann, generative Antworten zu fundieren.
  5. Sehen wir uns zum Schluss noch 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. Suchanwendung in Vertex AI Agent Builder für den Chatbot für Kochtipps erstellen

Die Website, die wir erstellen, wird eine Seite mit Kochtipps enthalten, auf der ein Chatbot Nutzern bei der Suche nach Antworten auf Fragen zum Kochen helfen soll. Die Funktion basiert auf Gemini und nutzt eine Quelle mit 70 Kochbüchern, die gemeinfrei sind. Die Kochbücher dienen als Quelle für die Informationen, die Gemini zum Beantworten von Fragen verwendet.

  1. Verwenden Sie das Suchfeld der Cloud Console, um zu Vertex AI zu gelangen. Klicken Sie im Dashboard auf Alle empfohlenen APIs aktivieren. Dies kann einige Minuten dauern. Wenn Sie ein Pop-up-Fenster erhalten, in dem Sie aufgefordert werden, die Vertex AI API zu aktivieren, klicken Sie auf Aktivieren. 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 Fortfahren und API aktivieren.
  3. Wie Gemini in unserem vorherigen Ratschlag vorgeschlagen hat, beginnt das Erstellen einer Suchanwendung in Agent Builder mit dem Erstellen einer autoritativen Datenquelle. Wenn der Nutzer sucht, versteht Gemini die Frage und weiß, wie intelligente Antworten formuliert werden. Die Informationen, die in der Antwort verwendet werden, stammen jedoch aus der Fundierungsquelle und nicht aus dem integrierten Wissen. Klicken Sie im linken Menü auf Datenspeicher und dann auf Datenspeicher erstellen.
  4. Die Kochbücher aus dem öffentlichen Bereich, die wir 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. Sehen Sie sich die Standardoptionen für die Art der Informationen an, die wir importieren, ä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, dann Weiter.
  6. Geben Sie dem Datenspeicher den Namen old-cookbooks. Klicken Sie auf BEARBEITEN und ändern Sie die ID in old-cookbooks-id. Klicken Sie dann auf Erstellen, um den Datenspeicher zu erstellen.

Vertex AI Agent Builder unterstützt verschiedene App-Typen und der Datenspeicher dient jeweils als Single Source of Truth. Such-Apps eignen sich gut für die allgemeine Nutzung und Suche. Chat-Apps sind für generative Abläufe in Dataflow-basierten Chatbot-/Voicebot-Anwendungen vorgesehen. Empfehlungs-Apps helfen dabei, bessere Empfehlungssysteme zu erstellen. Mit Agent-Apps können Sie auf generativer KI basierende Agents erstellen. Letztendlich wäre Agent wahrscheinlich die beste Lösung für unsere Anforderungen. Da sich das Produkt aber derzeit in der Vorschauphase befindet, bleiben wir beim App-Typ „Suche“.

  1. Klicken Sie im Menü auf der linken Seite auf Apps und dann auf Create A New App (Neue App erstellen).
  2. Klicken Sie auf der Karte Suche auf Ihrer Website 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. Wählen Sie den Datenspeicher old-cookbooks aus, den Sie vor einigen Schritten erstellt haben, und klicken Sie auf Erstellen, um die Such-App zu erstellen.

Wenn Sie den Tab Aktivität aufrufen, sehen Sie wahrscheinlich, dass die Kochbücher noch importiert und indexiert werden. Es dauert mindestens 5 Minuten, bis Agent Builder die Tausenden von Seiten in den 70 Kochbüchern indexiert hat, die wir ihm zur Verfügung gestellt haben. Laden und bereinigen wir in der Zwischenzeit einige Daten aus der Rezeptdatenbank für unseren Rezeptgenerator.

6. Daten in einem Colab Enterprise-Notebook mit Gemini Code Assist laden und bereinigen

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

Eine der Funktionen von Colab Enterprise ist die Integration mit Gemini Code Assist von Google. Code Assist kann in einer Reihe verschiedener Code-Editoren verwendet werden und bietet sowohl Ratschläge als auch nahtlose Inline-Vorschläge während der Programmierung. Wir werden diesen generativen Assistenten nutzen, um unsere Rezeptdaten zu bereinigen.

  1. Suchen Sie nach Colab Enterprise und klicken Sie auf Notebook erstellen. Wenn Sie ein Angebot zum Ausprobieren neuer Colab-Funktionen erhalten, lehnen Sie es ab. Wenn Sie die Laufzeit, also die Rechenleistung hinter dem Notebook, nutzen möchten, klicken Sie rechts oben in Ihrem neuen Notebook auf Verbinden.Verbinden
  2. Klicken Sie auf Datei > Umbenennen, um das Notebook in Data WranglingUmbenennen über das Dreipunkt-Menü umzubenennen.
  3. Klicken Sie auf + Text, um ein neues Textfeld zu erstellen, und verschieben Sie es mit dem Aufwärtspfeil an die erste Stelle auf der Seite.+ Text und Aufwärtspfeil
  4. Bearbeiten Sie das Textfeld und geben Sie Folgendes ein:
    # Data Wrangling
    
    Import the Pandas library
    
  5. Beginnen Sie im Codeblock unter dem Textblock, den Sie gerade erstellt haben, mit der Eingabe von imp. Gemini Code Assist sollte 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 Sie eine Drop-down-Liste mit Python-Schlüsselwörtern über dem generierten Vorschlag sehen, drücken Sie die Esc-Taste, um den hellgrauen vorgeschlagenen Code anzuzeigen. Drücken Sie noch einmal die Tabulatortaste, um den Vorschlag zu akzeptieren. Wenn Ihr Vorschlag den head()-Funktionsaufruf 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 in die erste Codezelle, in der Sie Pandas importiert haben, und verwenden Sie das Menü Befehle oder die Tastatur, um die ausgewählte Zelle auszuführen. Auf der Tastatur wird mit Umschalttaste + Eingabetaste die Zelle ausgeführt und der Fokus auf die nächste Zelle verschoben. Bei Bedarf wird eine neue Zelle erstellt. Warten Sie, bis die Zelle ausgeführt wurde, bevor Sie fortfahren.HINWEIS: Wenn eine Zelle noch nicht ausgeführt wurde, sehen Sie links davon [ ]. Während eine Zelle ausgeführt wird, sehen Sie eine sich drehende Animation. Wenn die Zelle fertig ist, wird eine Zahl wie [13] angezeigt.
  9. Führen Sie die Zelle aus, in der die CSV-Datei in den DataFrame geladen wird. 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 die wir später verwenden, um unseren Rezeptgenerator zu trainieren.
  10. Erstellen Sie einen neuen Codeblock und geben Sie den folgenden Kommentar ein. Nachdem Sie den Kommentar eingegeben haben, gehen Sie zur nächsten Codezeile. Dort sollte der Vorschlag df.columns angezeigt werden. Akzeptieren Sie die Meldung und führen Sie die Zelle aus.
    # List the current DataFrame column names
    
    Wir haben gerade gezeigt, dass Sie zwei Möglichkeiten haben, wie Sie in einem Jupyter-Notebook Hilfe von Gemini Code Assist erhalten: Textzellen über Codezellen oder Kommentare in der Codezelle selbst. Kommentare in Codezellen funktionieren gut in Jupyter-Notebooks, aber dieser Ansatz funktioniert auch in jeder anderen IDE, die Gemini Code Assist von Google unterstützt.
  11. Wir müssen die Spalten etwas bereinigen. Benennen Sie die Spalte Unnamed: 0 in id und link in uri um. Verwenden Sie den Prompt Ihrer Wahl > Codetechniken, um den Code zu erstellen, und führen Sie die Zelle dann 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 sich die ersten Zeilen anzusehen. Lassen Sie sich wieder von Gemini helfen. Führen Sie die letzten beiden Zeilen aus und sehen Sie sich die Ergebnisse an.
    # Remove the source and NER columns
    df.drop(columns=['source', 'NER'], inplace=True)
    df.head()
    
  13. Sehen wir uns an, wie viele Datensätze unser Dataset enthält. Beginnen Sie wieder mit der von Ihnen gewählten Prompting-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 Datensätze sind wahrscheinlich mehr Rezepte, als wir Zeit haben, auszuprobieren. Der Indexierungsvorgang in Agent Builder würde für unsere heutige Übung wahrscheinlich zu lange dauern. Als Kompromiss können wir 150.000 Rezepte als Stichprobe verwenden. Verwenden Sie den Ansatz „Prompt > Code“, um die Stichprobe zu erstellen und 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 Quelldaten für das Rezept können in BigQuery geladen werden. Bevor wir die Daten laden, erstellen wir in BigQuery ein Dataset für unsere Tabelle. Verwenden Sie in der Google Cloud Console das Suchfeld, um zu BigQuery zu gelangen. Klicken Sie mit der rechten Maustaste auf BigQuery und öffnen Sie die Seite in einem neuen Browsertab.
  16. Wenn das Feld noch nicht sichtbar ist, öffnen Sie es über das Gemini-Logo oben rechts in der Cloud Console. Wenn Sie aufgefordert werden, die API noch einmal zu aktivieren, klicken Sie auf „Aktivieren“ oder aktualisieren Sie die Seite. Führen Sie den Prompt aus: What is a dataset used for in BigQuery? Nachdem Sie die Antwort geprüft haben, fragen Sie: How can I create a dataset named recipe_data using the Cloud Console? Vergleiche die Ergebnisse mit den folgenden Schritten.Gemini Cloud Assist öffnen
  17. Klicken Sie im Bereich „BigQuery Explorer“ neben Ihrer Projekt-ID auf das Dreipunkt-Menü Aktionen ansehen. Wählen Sie dann Dataset erstellen aus.Aktionen in der Ansicht
  18. Geben Sie das Dataset und die ID von recipe_data an. Lassen Sie den Standorttyp auf US eingestellt und klicken Sie auf Dataset erstellen. Wenn Sie eine Fehlermeldung erhalten, dass das Dataset bereits vorhanden ist, fahren Sie einfach fort.Nachdem das Dataset in BigQuery erstellt wurde, wechseln wir zurück zu unserem Notebook und führen den Einfügevorgang durch.
  19. Wechseln Sie zurück zu Ihrem Data Wrangling-Notebook in Colab Enterprise. Erstellen Sie in einer neuen Codezelle eine Variable mit dem Namen project_id und verwenden Sie sie, um Ihre aktuelle Projekt-ID zu speichern. Die aktuelle Projekt-ID finden Sie links oben in dieser Anleitung unter der Schaltfläche „Lab beenden“. Sie finden sie auch auf der Startseite der Cloud Console. 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 Ansatz „Prompt > Code“, um einen Codeblock zu erstellen, mit dem der DataFrame dfs in eine Tabelle mit dem Namen recipes im Dataset recipe_data eingefügt wird, das wir gerade erstellt haben. Führen Sie die Zelle aus.
    dfs.to_gbq(destination_table='recipe_data.recipes', project_id=project_id, if_exists='replace')
    

7. Suchanwendung in Vertex AI Agent Builder für den Rezeptgenerator erstellen

Ausgezeichnet. Jetzt, da wir unsere Tabelle mit Rezeptdaten erstellt haben, können wir sie verwenden, um eine fundierte Datenquelle für unseren Rezeptgenerator zu erstellen. Die Vorgehensweise ähnelt der, die wir für unseren Koch-Chatbot verwendet haben. Wir verwenden Vertex AI Agent Builder, um einen Datenspeicher zu erstellen, der dann als Single Source of Truth für eine Suchanwendung dient.

Sie können Gemini in der Google Cloud Console bitten, Sie an die Schritte zum Erstellen einer Agent Builder-Suchanwendung zu erinnern, oder Sie können die unten aufgeführten Schritte ausführen.

  1. Suchen Sie nach Agent Builder. Öffnen Sie Datenspeicher und Datenspeicher erstellen. Wählen Sie dieses Mal den BigQuery-Datenspeichertyp Select (Auswählen) aus.
  2. Klicken Sie in der Zelle für die Tabellenauswahl 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 aus, das zu Ihnen gehört.HINWEIS: Wenn Sie auf recipes klicken, anstatt das Optionsfeld daneben auszuwählen, wird ein neuer Tab in Ihrem Browser geöffnet und Sie werden zur Tabellenübersichtsseite in BigQuery weitergeleitet. Schließen Sie einfach den Browser-Tab und wählen Sie die Schaltfläche in Agent Builder aus.
  3. Sehen Sie sich die restlichen Standardoptionen an, ändern Sie sie aber nicht, und klicken Sie dann auf Weiter.
  4. Sehen Sie sich auf der Seite zur Schemaüberprüfung die anfänglichen Standardkonfigurationen an, 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. Rufen Sie über das linke Navigationsmenü Apps auf und klicken Sie auf Neue App erstellen.
  7. Klicken Sie auf der Karte Suche auf Ihrer Website 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 Unternehmensnamen auf Google fest und klicken Sie auf Weiter.
  8. Sehen Sie sich diesmal die Datenquellen für recipe-data an. Erstellen Sie die App.

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

  1. Geben Sie BigQuery in das Suchfeld ein, um die Seite aufzurufen. Klicken Sie oben in BigQuery Studio neben dem Tab ganz rechts auf den Abwärtspfeil und wählen Sie Data Canvas aus. Legen Sie die Region auf us-central1 fest.Data Canvas öffnen
  2. Klicken Sie auf Daten suchen. Suchen Sie im Suchfeld des Datenbereichs nach recipes, drücken Sie Enter/Return, um die Suche zu starten, und klicken Sie neben dem Tabellennamen auf die Schaltfläche Dem Bereich hinzufügen.
  3. Eine visuelle Darstellung Ihrer Rezepttabelle wird in den BigQuery Data Canvas geladen. Sie können sich das Tabellenschema ansehen, eine Vorschau der Daten in der Tabelle aufrufen und andere Details prüfen. Klicken Sie unter der Tabellendarstellung auf Abfrage.
  4. Im Canvas wird ein mehr oder weniger typischer BigQuery-Abfragedialog geladen. Es gibt jedoch eine zusätzliche Funktion: Über dem Abfragefenster befindet sich ein Textfeld, in dem Sie Gemini um Hilfe bitten können. Sehen wir uns an, ob wir in unserem Beispiel einige Kuchenrezepte finden können. Führen Sie den folgenden Prompt aus (indem Sie den Text eingeben und Enter/Return drücken, 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 den generierten SQL-Code an. Wenn Sie zufrieden sind, führen Sie die Abfrage aus.
  6. Nicht schlecht! Sie können auch andere Prompts und Abfragen ausprobieren, bevor Sie fortfahren. Probieren Sie weniger spezifische Prompts aus, um herauszufinden, was funktioniert und was nicht. Beispiel für einen Prompt:
    Do I have any chili recipes?
    
    (Vergiss nicht, die neue Anfrage auszuführen) Es wurde eine Liste mit Chili-Rezepten zurückgegeben, aber die Zutaten wurden ausgelassen, bis ich die Anfrage so geändert habe:
    Do I have any chili recipes?  Please include their title and ingredients.
    
    (Ja, ich sage bitte, wenn ich einen Prompt eingebe. Meine Mama wäre so stolz auf mich.) Ich habe gesehen, dass in einem Chili-Rezept Pilze enthalten waren. Wer will 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:
    • Klicken Sie auf das Dreistrich-Menü Symbol für das Dreistrich-Menü.
    • Klicken Sie auf Terminal.
    • Klicken Sie auf Neues TerminalNeues Terminal im Cloud Shell-Editor öffnen.
  3. Legen Sie im Terminal Ihr Projekt mit diesem Befehl fest:
    • Format:
      gcloud config set project [PROJECT_ID]
      
    • Beispiel:
      gcloud config set project lab-project-id-example
      
    • Wenn Sie sich nicht an Ihre Projekt-ID erinnern können:
      • Sie können alle Ihre Projekt-IDs mit folgendem Befehl auflisten:
        gcloud projects list | awk '/PROJECT_ID/{print $2}'
        
      Projekt-ID im Cloud Shell Editor-Terminal festlegen
  4. Wenn Sie zur Autorisierung 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 Sie WARNING sehen und Do you want to continue (Y/N)? gefragt werden, haben Sie die Projekt-ID wahrscheinlich falsch eingegeben. Drücken Sie N, dann Enter und versuchen Sie, den Befehl gcloud config set project noch einmal auszuführen.

9. APIs aktivieren

Aktivieren Sie die APIs im Terminal:

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 zur Autorisierung aufgefordert werden, klicken Sie auf Autorisieren, um fortzufahren. Klicken Sie, um Cloud Shell zu autorisieren.

Es kann einige Minuten dauern, bis dieser Befehl ausgeführt wird. Wenn die Ausführung erfolgreich war, erhalten Sie eine Meldung, die ungefähr so aussieht:

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

10. Grundgerüst der Python- und Streamlit-Webanwendung erstellen – mit Unterstützung von Gemini

Nachdem beide Datenspeicher von Vertex AI Agent Builder indexiert wurden und unsere Suchanwendungen fast einsatzbereit sind, können wir mit der Entwicklung unserer Webanwendung beginnen.

Wir werden Gemini Code Assist während unserer Arbeit nutzen. 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. Führen Sie diesen Befehl aus, um den Anwendungsordner im Cloud Shell-Editor zu öffnen.
    cloudshell open-workspace recipe-app/
    
  3. Bevor wir den geklonten Ordner untersuchen und mit der Arbeit an unserer Webanwendung beginnen, müssen wir das Cloud Code-Plug-in des Editors bei Google Cloud anmelden und Gemini aktivieren. Machen wir uns also daran, die Tabellen zu befüllen. Klicken Sie unten links 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 in das wartende Terminalfenster auf dem Cloud Shell-Editor-Tab Ihres Browsers ein.
  5. Nach einigen Augenblicken ändert sich der Cloud Code-Link unten links im Editor zu 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 Augenblicken wird der Link unten links im Editor aktualisiert und zeigt Ihre Projekt-ID an. Das bedeutet, dass Cloud Code erfolgreich an Ihr Arbeitsprojekt angehängt wurde.
  6. Nachdem Cloud Code mit Ihrem Projekt verbunden ist, können Sie Gemini Code Assist aktivieren. Klicken Sie rechts unten in der Editoroberfläche auf das durchgestrichene Gemini-Logo. Der Gemini Chat-Bereich wird links im Editor geöffnet. Klicken Sie auf Google Cloud-Projekt auswählen. Wählen Sie Ihr Projekt aus, wenn die Befehlspalette geöffnet wird. 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. Nachdem wir das Terminal, den Gemini-Chat und die Cloud Code-Konfigurationen eingerichtet haben, ö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 Chatfenster Gemini und fragen Sie:
    From the dependencies specified in the requirements.txt file, what type of application are we building?
    
  9. Wir entwickeln also eine interaktive Webanwendung mit Python und Streamlit, die mit Vertex AI und Discovery Engine interagiert. Konzentrieren wir uns erst einmal auf die Webanwendungskomponenten. Wie Gemini sagt, ist Streamlit ein Framework zum Erstellen datengesteuerter Webanwendungen in Python. Fragen Sie jetzt:
    Does the current project's folder structure seem appropriate for a Streamlit app?
    
    Hier hat Gemini oft Probleme. Gemini kann auf die Datei zugreifen, die Sie gerade im Editor geöffnet haben, aber nicht auf das gesamte Projekt. Fragen Sie zum Beispiel:
    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
    
    Bessere Antwort erhalten?
  10. Hier finden Sie weitere Informationen zu Streamlit:
    What can you tell me about Streamlit?
    
    Gemini bietet uns eine gute Übersicht mit Vor- und Nachteilen.
  11. Wenn Sie die Nachteile untersuchen möchten, könnten Sie fragen:
    What are the major downsides or shortcomings?
    
    Wir mussten nicht „von Streamlit“ sagen, da Gemini Chat dialogorientiert (mehrere Turns) ist. Gemini weiß, worüber wir gesprochen haben, weil wir uns in einer Chatsitzung befinden. Wenn Sie den Gemini Code Assist-Chatverlauf löschen möchten, klicken Sie oben im Gemini Code Assist-Chatfenster auf das Papierkorbsymbol.

11. Webanwendung in Cloud Run bereitstellen

Sehr gut, wir haben die grundlegende Anwendungsstruktur eingerichtet. Aber funktioniert auch alles? Noch besser: Wo sollten wir sie 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 arbeiten, können Sie auch Google Cloud Assist fragen. Öffnen Sie die Google Cloud Console, dann Gemini Cloud Assist und stellen Sie folgende Frage:
    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? Gemini ist ein Assistent auf Basis generativer KI. Wie bei einem menschlichen Assistenten sind Sie nicht immer mit allem einverstanden, was er sagt. Dennoch kann es sehr hilfreich sein, diesen Assistenten immer an Ihrer Seite zu haben, wenn Sie in Google Cloud und in Ihrem Code-Editor arbeiten.
  3. Für eine zustandslose, kurzlebige containerisierte Webanwendung ist Cloud Run eine gute Option. Probieren Sie im Gemini-Chatfenster Ihres Code-Editors den folgenden Prompt 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 eine Datei mit dem Namen Dockerfile im Stammverzeichnis Ihres Projektordners. Achten Sie darauf, dass Sie sie nicht versehentlich im Ordner pages platzieren. Öffnen Sie die Datei zur Bearbeitung.
  5. Wir verwenden die Gemini-Seitenleiste, um unser Dockerfile zu erstellen. Verwenden Sie einen Prompt wie den folgenden. Wenn die Ergebnisse im Chat angezeigt werden, klicken Sie auf das Pluszeichen neben dem Kopiersymbol direkt über dem vorgeschlagenen Dockerfile, 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 nach einem Dockerfile gefragt habe, habe ich genau die Datei erhalten, die ich Ihnen empfehlen werde. Ich habe gerade den 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 ganz schön langes Dockerfile. Ich würde es etwas vereinfachen. Wir benötigen den apt-get-Abschnitt nicht, da alles, was für Python erforderlich ist, bereits in unserem Basis-Image enthalten ist. Außerdem ist die Verwendung einer virtuellen Umgebung in einem Python-Container eine Platzverschwendung. Daher würde ich sie entfernen. Der Befehl „expose“ ist nicht unbedingt erforderlich, aber in Ordnung. Außerdem wird versucht, „main.py“ zu starten, was 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 oder direkt in Ihrer Codedatei über Kommentare verwendet werden, wie im Notebook „Data Wrangling“ gezeigt. Außerdem kann es mit Strg+i unter Windows oder Befehlstaste+i auf dem Mac aufgerufen werden. Klicken Sie auf eine Stelle in Dockerfile und aktivieren Sie Gemini mit dem entsprechenden Befehl Strg+i / Befehlstaste+i.
  8. Geben Sie bei der Eingabeaufforderung Folgendes ein: Prüfen Sie die Änderung und klicken Sie auf Akzeptieren.
    Please comment the current file.
    
    Das ist ja toll! Wie oft mussten Sie schon mit dem Code von jemand anderem arbeiten und dabei Zeit verschwenden, um sich ein grundlegendes Verständnis für die kommentarlos erstellte Arbeit anzueignen, bevor Sie überhaupt mit Ihren Änderungen beginnen konnten? Gemini eilt zu Hilfe!
  9. Fragen Sie Gemini nun, wie Sie mit Cloud Run ein neues Image mit dem Namen recipe-web-app aus dem Dockerfile im aktuellen Ordner 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. Jetzt erstellen und stellen wir unsere Anwendung bereit. Führen Sie im Terminalfenster den gcloud run deploy-Befehl 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 den Buildprozess beobachten, wird zuerst das Artifact Registry-Docker-Repository erstellt. Anschließend wird mit Cloud Build das Container-Image aus dem Dockerfile im lokalen Ordner erstellt. Schließlich wird das Docker-Image in einem neuen Cloud Run-Dienst bereitgestellt. Am Ende des Skripts erhalten Sie eine Cloud Run-Test-URL, die Sie verwenden können.

Öffnen Sie den zurückgegebenen Link in einem neuen Tab Ihres Browsers. Nehmen Sie sich einen Moment Zeit, um sich die Struktur und die Seiten der Anwendung anzusehen. Jetzt müssen wir unsere generative KI-Funktion einbinden.

12. Seite mit Kochtipps mit unserer Agent Builder-App für die Suche nach Kochbüchern verknüpfen

Das Framework für die Webanwendung ist eingerichtet, 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 des Cloud Shell-Editors geöffnet. Suchen Sie in der Google Cloud Console nach Chat in Vertex AI.
  2. Stellen Sie im rechten Bereich der Einstellungsseite das Modell auf gemini-1.5-flash-002 ein. Schieben Sie das Ausgabetokenlimit auf das Maximum, damit das Modell bei Bedarf längere Antworten zurückgeben kann. Öffnen Sie die Einstellungen für den Sicherheitsfilter. Stellen Sie „Hassrede“, „Sexuell explizite Inhalte“ und „Belästigung“ auf Einige blockieren ein. Stellen Sie „Gefährliche Inhalte“ auf Wenige blockieren ein und klicken Sie auf Speichern. Wir setzen „Gefährliche Inhalte“ etwas niedriger an, da die Erwähnung von Messern und Schneiden von Gemini als Gewalt interpretiert werden kann.
  3. Schieben Sie die Ein/Aus-Schaltfläche, um Fundierung zu aktivieren, und klicken Sie dann auf Anpassen. Legen Sie die Fundierungsquelle auf Vertex AI Search fest und verwenden Sie für den Datenspeicherpfad Folgendes. Ersetzen Sie YOUR_PROJECT_ID durch die Projekt-ID, die sich in dieser Anleitung in der Nähe der Schaltfläche „Lab beenden“ befindet, und speichern Sie die Grounding-Einstellungen.
    projects/YOUR_PROJECT_ID/locations/global/collections/default_collection/dataStores/old-cookbooks-id
    
    HINWEIS: Wenn Sie eine Fehlermeldung erhalten, haben Sie entweder die Projekt-ID nicht in Ihre tatsächliche Projekt-ID geändert oder den Schritt ausgelassen, in dem Sie die ID des alten Cookbooks-Agent Builder-Datenspeichers geändert haben. Sehen Sie in Agent Builder > Datenspeicher > old-cookbooks nach der tatsächlichen Datenspeicher-ID.
  4. Testen Sie ein paar Chatnachrichten. Vielleicht können Sie mit den folgenden Informationen beginnen. Sie können auch andere ausprobieren.
    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 klicken Sie 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 einige Minuten Zeit, um sich mit dem Code vertraut zu machen. Nehmen wir einige Änderungen vor, um das Ergebnis an unsere Anforderungen anzupassen. Führen Sie zuerst die erste Codezelle aus, um eine Verbindung zur Compute-Instanz herzustellen und das AI Platform SDK zu installieren. Nachdem der Block ausgeführt wurde, werden Sie aufgefordert, die Sitzung neu zu starten. Tun Sie das.
  8. Wechseln wir zum Code, den wir aus Vertex AI Studio abgerufen 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 von 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 schließlich eine letzte Zeile zur Methode hinzu, direkt unter chat = model.start_chat(), damit die Funktion das chat-Objekt zurückgibt. Die fertige Funktion sollte so aussehen.HINWEIS: Kopieren Sie diesen Code NICHT in Ihr Notebook. Sie dient lediglich als Plausibilitätsprüfung.
    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, sodass 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. Gehen Sie zur nächsten Zeile und geben Sie resp ein. Gemini sollte den Block dann automatisch 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, aber wir möchten das verschachtelte Feld text. Ändern Sie den Codeblock so, dass nur dieser Abschnitt ausgegeben wird:
    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 ist nicht erforderlich. Wenn Sie in die Zelle klicken, können Sie rechts oben auf das Dreipunkt-Menü klicken und den Inhalt von dort aus kopieren.Zelle kopieren
  15. Wechseln Sie zum Tab „Cloud Shell-Editor“ und öffnen Sie pages\Cooking_Advice.py zum Bearbeiten.
  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 Add the code ein. Gut, jetzt haben wir den Abschnitt, der die Chat-Engine über einen fundierten Aufruf von Gemini steuert. Jetzt integrieren wir es in Streamlit.
  18. Suchen Sie den Abschnitt mit dem auskommentierten Code direkt unter dem Kommentar:
    #
    # Here's the code to setup your session variables
    # Uncomment this block when instructed
    #
    
  19. Entfernen Sie die Auskommentierung für diesen Codeabschnitt (bis zum nächsten Abschnitt Setup done, let's build the page UI) und sehen Sie sich den Code an. Erstellt oder ruft die Chat- und Verlaufs-Sitzungsvariablen ab.
  20. Als Nächstes müssen wir die Verlaufs- und Chatfunktionen in die Benutzeroberfläche einbinden. Scrollen Sie im Code, bis Sie den folgenden Kommentar finden.
    #
    # Here's the code to create the chat interface
    # Uncomment the below code when instructed
    #
    
  21. Entfernen Sie die Auskommentierung des restlichen Codes unter dem Kommentar und sehen Sie sich den Code an. Wenn Sie möchten, können Sie den Code markieren und Gemini bitten, seine Funktionsweise zu erklären.
  22. Ausgezeichnet. Jetzt erstellen wir die Anwendung und stellen sie bereit. Wenn die URL wieder angezeigt wird, starten Sie die Anwendung und rufen Sie die Seite „Kochassistent“ auf. Vielleicht weiß der Bot, wie man reife Tomaten erkennt oder wie man Rosenkohl am besten zubereitet.
    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: Rezeptsuche-Seite mit der Agent Builder-App „Rezeptsuche“ verbinden

Als wir die Seite mit Kochtipps mit der entsprechenden fundierten Quelle verknüpft haben, haben wir die Gemini API direkt verwendet. Für die Rezeptsuche stellen wir eine direkte Verbindung zur Vertex AI Agent Builder-Suchanwendung her.

  1. Öffnen Sie im Cloud Shell-Editor die Seite pages/Recipe_Search.py zur Bearbeitung. Untersuchen Sie die Struktur der Seite.
  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 hier. Hier finden Sie eine Arbeitskopie dieses Notebooks.Die einzige Änderung, die ich vorgenommen habe, besteht darin, dass response.results anstelle der Ergebnisse zurückgegeben wird. Andernfalls ist der Rückgabetyp ein Objekt, das zum Paginieren von Ergebnissen dient. Das benötigen wir für unsere einfache Anwendung nicht.
  4. Scrollen Sie zum Ende der Datei und entfernen Sie die Kommentare aus dem gesamten Abschnitt unter Here are the first 5 recipes I found.
  5. Markieren Sie den gesamten Abschnitt, den Sie gerade auskommentiert haben, und öffnen Sie den Gemini Code-Chat. Fragen Sie Explain the highlighted code. Wenn Sie nichts ausgewählt haben, kann Gemini die gesamte Datei erläutern. Wenn Sie einen Abschnitt markieren und Gemini bitten, ihn zu erklären, zu kommentieren oder zu verbessern, wird Gemini das tun.Nehmen Sie sich einen Moment Zeit, um die Erklärung zu lesen. 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 ausprobieren möchten, die möglicherweise nicht so gut dokumentiert sind.
  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) Abschließende Anwendung ansehen

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

  1. Suchen Sie in der Google Cloud Console nach Cloud Run und klicken Sie dann auf Ihre recipe-web-app.
  2. Suchen Sie die Test-URL der Anwendung (oben) und öffnen Sie sie in einem neuen Browsertab.
  3. Die Startseite der Anwendung sollte angezeigt werden. Achten Sie auf 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 kurzer Zeit wird die Chatoberfläche angezeigt. Beachten Sie noch einmal das übersichtliche Layout, das von Streamlit bereitgestellt wird.
  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 jetzt nach ein oder zwei Rezepten. 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 natürliche Sprache zu SQL von BigQuery Data Canvas kennengelernt. Fantastisch!

Bereinigen

Cloud SQL bietet kein kostenloses Kontingent. Wenn Sie den Dienst weiterhin nutzen, werden Ihnen die Kosten in Rechnung gestellt. Sie können Ihr Cloud-Projekt löschen, um zusätzliche Gebühren zu vermeiden.

Während für Cloud Run keine Kosten anfallen, wenn der Dienst nicht verwendet wird, wird Ihnen dennoch das Speichern des Container-Images in Artifact Registry möglicherweise in Rechnung gestellt. Durch das Löschen des Cloud-Projekts wird die Abrechnung für alle in diesem Projekt verwendeten Ressourcen beendet.

Wenn Sie möchten, können Sie das Projekt löschen:

gcloud projects delete $GOOGLE_CLOUD_PROJECT

Sie können auch unnötige Ressourcen von Ihrer Cloud Shell-Festplatte löschen. Sie haben folgende Möglichkeiten:

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