1. Übersicht
In diesem Codelab entwickeln Sie Neighbor Loop, eine nachhaltige App zum Teilen von Überschüssen, in der Intelligenz als wichtiger Bestandteil der Datenschicht behandelt wird.
Durch die Integration von Gemini 3.0 Flash und AlloyDB AI gehen Sie über die einfache Speicherung hinaus und erreichen In-Database Intelligence. Sie erfahren, wie Sie multimodale Artikelanalysen und semantische Ermittlungen direkt in SQL durchführen können, wodurch die „KI-Steuer“ in Form von Latenz und Architektur-Bloat vermieden wird.

Aufgaben
Eine leistungsstarke Webanwendung mit „Wischen zum Matchen“ für das Teilen von Community-Überschüssen.
Lerninhalte
- Bereitstellung mit einem Klick: So richten Sie einen AlloyDB-Cluster und eine Instanz für KI-Arbeitslasten ein.
- In-Database Embeddings: Generieren von text-embedding-005-Vektoren direkt in INSERT-Anweisungen.
- Multimodales Reasoning: Gemini 3.0 Flash kann Elemente „sehen“ und automatisch witzige, für Dating-Apps geeignete Biografien erstellen.
- Semantische Ermittlung: Logikbasierte „Vibe-Checks“ in SQL-Abfragen mit der Funktion „ai.if()“ durchführen, um Ergebnisse basierend auf dem Kontext und nicht nur auf mathematischen Berechnungen zu filtern.
Die Architektur
Neighbor Loop umgeht herkömmliche Engpässe auf Anwendungsebene. Anstatt Daten zur Verarbeitung zu extrahieren, verwenden wir:
- AlloyDB AI:Zum Generieren und Speichern von Vektoren in Echtzeit.
- Google Cloud Storage:zum Speichern von Bildern
- Gemini 3.0 Flash:Damit können Sie in weniger als einer Sekunde Schlussfolgerungen aus Bild- und Textdaten direkt über SQL ziehen.
- Cloud Run:Zum Hosten eines einfachen Flask-Back-Ends mit einer einzigen Datei.
Voraussetzungen
2. Hinweis
Projekt erstellen
- Wählen Sie in der Google Cloud Console auf der Seite zur Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
- Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.
- Sie verwenden Cloud Shell, eine Befehlszeilenumgebung, die in Google Cloud ausgeführt wird. Klicken Sie oben in der Google Cloud Console auf „Cloud Shell aktivieren“.

- Wenn Sie mit Cloud Shell verbunden sind, können Sie mit dem folgenden Befehl prüfen, ob Sie bereits authentifiziert sind und das Projekt auf Ihre Projekt-ID festgelegt ist:
gcloud auth list
- Führen Sie den folgenden Befehl in Cloud Shell aus, um zu bestätigen, dass der gcloud-Befehl Ihr Projekt kennt.
gcloud config list project
- Wenn Ihr Projekt nicht festgelegt ist, verwenden Sie den folgenden Befehl, um es festzulegen:
gcloud config set project <YOUR_PROJECT_ID>
- Aktivieren Sie die erforderlichen APIs: Folgen Sie dem Link und aktivieren Sie die APIs.
Alternativ können Sie dazu den gcloud-Befehl verwenden. Informationen zu gcloud-Befehlen und deren Verwendung finden Sie in der Dokumentation.
Wichtige Hinweise und Fehlerbehebung
Das „Ghost Project“-Syndrom | Sie haben |
Die Abrechnungsbarrikade | Sie haben das Projekt aktiviert, aber das Rechnungskonto vergessen. AlloyDB ist eine leistungsstarke Engine, die nicht startet, wenn der „Benzintank“ (Abrechnung) leer ist. |
Verzögerung bei der API-Weitergabe | Sie haben auf „APIs aktivieren“ geklickt, aber in der Befehlszeile wird weiterhin |
Kontingent – Quags | Wenn Sie ein brandneues Testkonto verwenden, erreichen Sie möglicherweise ein regionales Kontingent für AlloyDB-Instanzen. Wenn |
„Verborgener“ Kundenservicemitarbeiter | Manchmal wird dem AlloyDB-Dienst-Agenten die Rolle |
3. Datenbank einrichten
In diesem Lab verwenden wir AlloyDB als Datenbank für die Testdaten. Darin werden Cluster verwendet, um alle Ressourcen wie Datenbanken und Logs zu speichern. Jeder Cluster hat eine primäre Instanz, die einen Zugriffspunkt auf die Daten bietet. Tabellen enthalten die tatsächlichen Daten.
Erstellen wir einen AlloyDB-Cluster, eine Instanz und eine Tabelle, in die das Test-Dataset geladen wird.
- Klicken Sie auf die Schaltfläche oder kopieren Sie den Link unten in den Browser, in dem Sie mit dem Google Cloud Console-Nutzer angemeldet sind.
- Sobald dieser Schritt abgeschlossen ist, wird das Repository in Ihren lokalen Cloud Shell-Editor geklont und Sie können den folgenden Befehl über den Projektordner ausführen. Achten Sie darauf, dass Sie sich im Projektverzeichnis befinden:
sh run.sh
- Verwenden Sie jetzt die Benutzeroberfläche (klicken Sie auf den Link im Terminal oder auf den Link „Vorschau im Web“ im Terminal).
- Geben Sie die Details für Projekt-ID, Cluster- und Instanznamen ein, um zu beginnen.
- Holen Sie sich einen Kaffee, während die Logs durchlaufen. Hier können Sie nachlesen, wie das im Hintergrund funktioniert.
Wichtige Hinweise und Fehlerbehebung
Das Problem mit der Geduld | Datenbankcluster sind eine schwere Infrastruktur. Wenn Sie die Seite aktualisieren oder die Cloud Shell-Sitzung beenden, weil sie „hängt“, kann es passieren, dass eine „Geisterinstanz“ entsteht, die teilweise bereitgestellt wurde und ohne manuellen Eingriff nicht gelöscht werden kann. |
Region stimmt nicht überein | Wenn Sie Ihre APIs in |
Zombie-Cluster | Wenn Sie zuvor denselben Namen für einen Cluster verwendet und ihn nicht gelöscht haben, wird im Skript möglicherweise angezeigt, dass der Clustername bereits vorhanden ist. Clusternamen müssen innerhalb eines Projekts eindeutig sein. |
Cloud Shell-Zeitüberschreitung | Wenn Ihre Kaffeepause 30 Minuten dauert, wechselt Cloud Shell möglicherweise in den Ruhemodus und trennt die Verbindung zum |
4. Schemabereitstellung
Sobald Ihr AlloyDB-Cluster und Ihre Instanz ausgeführt werden, können Sie im SQL-Editor von AlloyDB Studio die KI-Erweiterungen aktivieren und das Schema bereitstellen.

Möglicherweise müssen Sie warten, bis die Instanz erstellt wurde. Melden Sie sich dann mit den Anmeldedaten in AlloyDB an, die Sie beim Erstellen des Clusters erstellt haben. Verwenden Sie die folgenden Daten für die Authentifizierung bei PostgreSQL:
- Nutzername: „
postgres“ - Datenbank: „
postgres“ - Passwort: „
alloydb“ (oder das Passwort, das Sie bei der Erstellung festgelegt haben)
Nachdem Sie sich erfolgreich in AlloyDB Studio authentifiziert haben, werden SQL-Befehle im Editor eingegeben. Sie können mehrere Editorfenster hinzufügen, indem Sie auf das Pluszeichen rechts neben dem letzten Fenster klicken.

Sie geben Befehle für AlloyDB in Editorfenstern ein und verwenden die Optionen „Ausführen“, „Formatieren“ und „Löschen“ nach Bedarf.
Erweiterungen aktivieren
Für die Entwicklung dieser App verwenden wir die Erweiterungen pgvector und google_ml_integration. Mit der pgvector-Erweiterung können Sie Vektoreinbettungen speichern und durchsuchen. Die Erweiterung google_ml_integration bietet Funktionen, mit denen Sie auf Vertex AI-Vorhersageendpunkte zugreifen können, um Vorhersagen in SQL zu erhalten. Aktivieren Sie diese Erweiterungen, indem Sie die folgenden DDLs ausführen:
CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;
CREATE EXTENSION IF NOT EXISTS vector;
Tabelle erstellen
Sie können eine Tabelle mit der folgenden DDL-Anweisung in AlloyDB Studio erstellen:
-- Items Table (The "Profile" you swipe on)
CREATE TABLE items (
item_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
owner_id UUID,
provider_name TEXT,
provider_phone TEXT,
title TEXT,
bio TEXT,
category TEXT,
image_url TEXT,
item_vector VECTOR(768),
status TEXT DEFAULT 'available',
created_at TIMESTAMP DEFAULT NOW()
);
-- Swipes Table (The Interaction)
CREATE TABLE swipes (
swipe_id SERIAL PRIMARY KEY,
swiper_id UUID,
item_id UUID REFERENCES items(item_id),
direction TEXT CHECK (direction IN ('left', 'right')),
is_match BOOLEAN DEFAULT FALSE,
created_at TIMESTAMP DEFAULT NOW()
);
In der Spalte item_vector können die Vektorwerte des Texts gespeichert werden.
Berechtigung gewähren
Führen Sie die folgende Anweisung aus, um die Ausführung der Funktion „embedding“ zu gewähren:
GRANT EXECUTE ON FUNCTION embedding TO postgres;
AlloyDB-Dienstkonto die Rolle „Vertex AI User“ gewähren
Gewähren Sie in der Google Cloud IAM-Konsole dem AlloyDB-Dienstkonto (das so aussieht: service-<<PROJECT_NUMBER>>@gcp-sa-alloydb.iam.gserviceaccount.com) Zugriff auf die Rolle „Vertex AI-Nutzer“. PROJECT_NUMBER enthält Ihre Projektnummer.
Alternativ können Sie den folgenden Befehl im Cloud Shell-Terminal ausführen:
PROJECT_ID=$(gcloud config get-value project)
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:service-$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")@gcp-sa-alloydb.iam.gserviceaccount.com" \
--role="roles/aiplatform.user"
Gemini 3 Flash-Modell in AlloyDB registrieren
Führen Sie die folgende SQL-Anweisung im AlloyDB-Abfrageeditor aus.
CALL google_ml.create_model(
model_id => 'gemini-3-flash-preview',
model_request_url => 'https://aiplatform.googleapis.com/v1/projects/<<YOUR_PROJECT_ID>>/locations/global/publishers/google/models/gemini-3-flash-preview:generateContent',
model_qualified_name => 'gemini-3-flash-preview',
model_provider => 'google',
model_type => 'llm',
model_auth_type => 'alloydb_service_agent_iam'
);
--replace <<YOUR_PROJECT_ID>> with your project id.
Wichtige Hinweise und Fehlerbehebung
Die „Passwort vergessen“-Schleife | Wenn Sie die Einrichtung mit nur einem Klick verwendet haben und sich nicht mehr an Ihr Passwort erinnern, rufen Sie in der Konsole die Seite mit den grundlegenden Informationen zur Instanz auf und klicken Sie auf „Bearbeiten“, um das |
Fehler „Erweiterung nicht gefunden“ | Wenn |
IAM-Weitergabeverzögerung | Sie haben den IAM-Befehl |
Falsche Vektordimension | Die Tabelle |
Tippfehler in der Projekt-ID | Wenn Sie im |
5. Bildspeicher (Google Cloud Storage)
Zum Speichern der Fotos unserer Überschussartikel verwenden wir einen GCS-Bucket. Für diese Demo-App sollen die Bilder öffentlich zugänglich sein, damit sie sofort auf unseren Wischkarten gerendert werden.
- Bucket erstellen: Erstellen Sie einen neuen Bucket in Ihrem GCP-Projekt (z.B. neighborloop-images), vorzugsweise in derselben Region wie Ihre Datenbank und Anwendung.
- Öffentlichen Zugriff konfigurieren: * Rufen Sie den Tab Berechtigungen des Buckets auf.
- Fügen Sie das Hauptkonto allUsers hinzu.
- Weisen Sie die Rolle Storage-Objekt-Betrachter (damit jeder die Fotos sehen kann) und die Rolle Storage-Objekt-Ersteller (für Demo-Uploads) zu.
Alternative (Dienstkonto): Wenn Sie keinen öffentlichen Zugriff verwenden möchten, müssen Sie dem Dienstkonto Ihrer Anwendung vollen Zugriff auf AlloyDB und die erforderlichen Storage-Rollen gewähren, um Objekte sicher zu verwalten.
Wichtige Hinweise und Fehlerbehebung
Der Region Drag | Wenn sich Ihre Datenbank in |
Eindeutigkeit von Bucket-Namen | Bucket-Namen sind ein globaler Namespace. Wenn Sie versuchen, Ihren Bucket |
Verwechslung von „Creator“ und „Zuschauer“ | Verwechslung von „Creator“ und „Viewer“:Wenn Sie nur „Viewer“ hinzufügen, stürzt Ihre App ab, wenn ein Nutzer versucht, einen neuen Artikel aufzulisten, da sie keine Berechtigung zum Schreiben der Datei hat. Für diese spezielle Demo-Einrichtung benötigen Sie beide. |
6. Anwendung erstellen
Klonen Sie dieses Repository in Ihr Projekt und sehen wir uns das Ganze an.
- Führen Sie zum Klonen dieses Repositorys im Cloud Shell-Terminal (im Stammverzeichnis oder an einem beliebigen anderen Ort, an dem Sie dieses Projekt erstellen möchten) den folgenden Befehl aus:
git clone https://github.com/AbiramiSukumaran/neighbor-loop
Dadurch sollte das Projekt erstellt werden. Sie können dies im Cloud Shell Editor überprüfen.

- Gemini API-Schlüssel abrufen
- Rufen Sie Google AI Studio auf: Gehen Sie zu aistudio.google.com.
- Anmelden: Verwenden Sie dasselbe Google-Konto, das Sie für Ihr Google Cloud-Projekt verwenden.
- API-Schlüssel erstellen:
- Klicken Sie in der linken Seitenleiste auf „API-Schlüssel abrufen“.
- Klicken Sie auf die Schaltfläche „API-Schlüssel in neuem Projekt erstellen“.
- Schlüssel kopieren: Klicken Sie nach dem Generieren des Schlüssels auf das Symbol zum Kopieren.
- Legen Sie nun die Umgebungsvariablen in der Datei „.env“ fest.
GEMINI_API_KEY=<<YOUR_GEMINI_API_KEY>>
DATABASE_URL=postgresql+pg8000://postgres:<<YOUR_PASSWORD>>@<<HOST_IP>>:<<PORT>>/postgres
GCS_BUCKET_NAME=<<YOUR_GCS_BUCKET>>
Ersetzen Sie die Werte für die Platzhalter <<YOUR_GEMINI_API_KEY>>, <<YOUR_PASSWORD>, <<HOST_IP>>, <<PORT>> and <<YOUR_GCS_BUCKET>>..
Wichtige Hinweise und Fehlerbehebung
Verwirrung durch mehrere Konten | Wenn Sie in mehreren Google-Konten (privat und geschäftlich) angemeldet sind, wird in AI Studio möglicherweise das falsche Konto verwendet. Prüfen Sie den Avatar rechts oben, um sicherzugehen, dass er mit dem Konto Ihres GCP-Projekts übereinstimmt. |
Kontingentüberschreitung für das kostenlose Kontingent | Wenn Sie die kostenlose Stufe verwenden, gelten Ratenbegrenzungen (RPM – Anfragen pro Minute). Wenn Sie in der Nachbarschaftsschleife zu schnell wischen, erhalten Sie möglicherweise den Fehler |
Sicherheit von offengelegten Schlüsseln | Wenn Sie Ihre |
Die Nichtigerklärung „Zeitüberschreitung bei der Verbindung“ | Sie haben die private IP-Adresse in Ihrer .env-Datei verwendet, versuchen aber, eine Verbindung von außerhalb der VPC herzustellen (z. B. von Ihrem lokalen Computer). Private IP-Adressen sind nur innerhalb desselben Google Cloud-Netzwerks erreichbar. Zur öffentlichen IP-Adresse wechseln |
Annahme zum Port 5432 | 5432 ist zwar der Standard-PostgreSQL-Port, aber für AlloyDB sind manchmal bestimmte Portkonfigurationen erforderlich, wenn Sie einen Auth-Proxy verwenden. Achten Sie in diesem Lab darauf, dass Sie am Ende Ihres Hoststrings :5432 verwenden. |
Gatekeeper „Autorisierte Netzwerke“ | Auch wenn Sie die öffentliche IP-Adresse haben, lehnt AlloyDB die Verbindung ab, sofern Sie die IP-Adresse des Computers, auf dem der Code ausgeführt wird, nicht auf die Zulassungsliste gesetzt haben.Lösung: Fügen Sie in den AlloyDB-Instanzeinstellungen 0.0.0.0/0 (nur für temporäre Tests) oder Ihre spezifische IP-Adresse zu den autorisierten Netzwerken hinzu. |
Fehler beim SSL/TLS-Handshake | AlloyDB bevorzugt sichere Verbindungen. Wenn in Ihrer DATABASE_URL der Treiber nicht richtig angegeben ist (z. B. pg8000), kann der Handshake ohne Fehlermeldung fehlschlagen. Sie erhalten dann eine allgemeine Fehlermeldung wie „Datenbank nicht erreichbar“. |
Tausch von „Primär“ und „Lesepool“ | Wenn Sie versehentlich die IP-Adresse des Read Pool anstelle der primären Instanz kopieren, funktioniert Ihre App für die Suche nach Artikeln, stürzt jedoch mit einem „Nur lesen“-Fehler ab, wenn Sie versuchen, einen neuen Artikel aufzulisten. Verwenden Sie für Schreibvorgänge immer die IP-Adresse der primären Instanz. |
7. Sehen wir uns den Code an
Das „Dating-Profil“ für deine Sachen

Wenn ein Nutzer ein Foto eines Artikels hochlädt, sollte er keine lange Beschreibung schreiben müssen. Ich verwende Gemini 3 Flash, um den Artikel zu „sehen“ und das Angebot zu schreiben.
Im Backend gibt der Nutzer nur einen Titel und ein Foto an. Gemini erledigt den Rest:
prompt = """
You are a witty community manager for NeighborLoop.
Analyze this surplus item and return JSON:
{
"bio": "First-person witty dating-style profile bio for the product, not longer than 2 lines",
"category": "One-word category",
"tags": ["tag1", "tag2"]
}
"""
response = genai_client.models.generate_content(
model="gemini-3-flash-preview",
contents=[types.Part.from_bytes(data=image_bytes, mime_type="image/jpeg"), prompt],
config=types.GenerateContentConfig(response_mime_type="application/json")
)

Echtzeit-In-Database-Embeddings

Eines der besten Features von AlloyDB ist die Möglichkeit, Einbettungen zu generieren, ohne den SQL-Kontext zu verlassen. Anstatt ein Einbettungsmodell in Python aufzurufen und den Vektor zurück an die Datenbank zu senden, erledige ich alles in einer INSERT-Anweisung mit der Funktion „embedding()“:
INSERT INTO items (owner_id, provider_name, provider_phone, title, bio, category, image_url, status, item_vector)
VALUES (
:owner, :name, :phone, :title, :bio, :cat, :url, 'available',
embedding('text-embedding-005', :title || ' ' || :bio)::vector
)
So wird sichergestellt, dass jeder Artikel sofort nach dem Posten nach seiner Bedeutung „durchsuchbar“ ist. Dieser Teil deckt die Funktion „Produkt auflisten“ der Neighbor Loop App ab.

Erweiterte Vektorsuche und intelligentes Filtern mit Gemini 3.0
Die Standardsuche nach Keywords ist eingeschränkt. Wenn Sie nach „etwas, um meinen Stuhl zu reparieren“ suchen, gibt eine herkömmliche Datenbank möglicherweise nichts zurück, wenn das Wort „Stuhl“ nicht in einem Titel enthalten ist. Neighbor Loop löst dieses Problem mit der erweiterten Vektorsuche von AlloyDB AI.
Durch die Verwendung der pgvector-Erweiterung und des für AlloyDB optimierten Speichers können wir extrem schnelle Ähnlichkeitssuchen durchführen. Das volle Potenzial entfaltet sich aber erst, wenn wir die Vektornähe mit LLM-basierter Logik kombinieren.
Mit AlloyDB AI können wir Modelle wie Gemini direkt in unseren SQL-Abfragen aufrufen. Das bedeutet, dass wir eine semantische Ermittlung durchführen können, die einen logikbasierten „Plausibilitätscheck“ mit der Funktion ai.if() umfasst:
SELECT item_id, title, bio, category, image_url,
1 - (item_vector <=> embedding('text-embedding-005', :query)::vector) as score
FROM items
WHERE status = 'available'
AND item_vector IS NOT NULL
AND ai.if(
prompt => 'Does this text: "' || bio ||'" match the user request: "' || :query || '", at least 60%? "',
model_id => 'gemini-3-flash-preview'
)
ORDER BY score DESC
LIMIT 5
Diese Abfrage stellt eine wichtige architektonische Änderung dar: Wir verlagern die Logik zu den Daten. Anstatt Tausende von Ergebnissen in den Anwendungscode zu ziehen, um sie zu filtern, führt Gemini 3 Flash einen „Vibe-Check“ in der Datenbank-Engine durch. Dadurch werden die Latenz und die Kosten für ausgehenden Traffic gesenkt und die Ergebnisse sind nicht nur mathematisch ähnlich, sondern auch kontextbezogen relevant.

Der „Swipe to Match“-Loop
Die Benutzeroberfläche ist ein klassisches Kartenspiel.
Nach links wischen: Verwerfen.
Nach rechts wischen: Es ist ein Match!

Wenn Sie nach rechts wischen, wird die Interaktion im Backend in unserer Tabelle für Wischvorgänge aufgezeichnet und das Element als „gematcht“ markiert. Im Frontend wird sofort ein Pop-up-Fenster mit den Kontaktdaten des Anbieters angezeigt, damit Sie die Abholung vereinbaren können.
8. In Cloud Run bereitstellen
- Stellen Sie die App in Cloud Run bereit, indem Sie den folgenden Befehl im Cloud Shell-Terminal ausführen, in dem das Projekt geklont wurde. Achten Sie darauf, dass Sie sich im Stammordner des Projekts befinden.
Führen Sie diesen Befehl in Ihrem Cloud Shell-Terminal aus:
gcloud beta run deploy neighbor-loop \
--source . \
--region=us-central1 \
--network=<<YOUR_NETWORK_NAME>> \
--subnet=<<YOUR_SUBNET_NAME>> \
--allow-unauthenticated \
--vpc-egress=all-traffic \
--set-env-vars GEMINI_API_KEY=<<YOUR_GEMINI_API_KEY>>,DATABASE_URL=postgresql+pg8000://postgres:<<YOUR_PASSWORD>>@<<PRIVATE_IP_HOST>>:<<PORT>>/postgres,GCS_BUCKET_NAME=<<YOUR_GCS_BUCKET>>
Ersetzen Sie die Werte für die Platzhalter <<YOUR_GEMINI_API_KEY>>, <<YOUR_PASSWORD>, <<PRIVATE_IP_HOST>>, <<PORT>> and <<YOUR_GCS_BUCKET>>.
Nach Abschluss des Befehls wird eine Dienst-URL ausgegeben. Kopieren.
- Weisen Sie dem Cloud Run-Dienstkonto die Rolle AlloyDB-Client zu.So kann Ihre serverlose Anwendung einen sicheren Tunnel zur Datenbank herstellen.
Führen Sie diesen Befehl in Ihrem Cloud Shell-Terminal aus:
# 1. Get your Project ID and Project Number
PROJECT_ID=$(gcloud config get-value project)
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
# 2. Grant the AlloyDB Client role
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role="roles/alloydb.client"
Verwenden Sie jetzt die Dienst-URL (den zuvor kopierten Cloud Run-Endpunkt) und testen Sie die App. Laden Sie ein Foto des alten Elektrowerkzeugs hoch und lassen Sie Gemini den Rest erledigen.
Wichtige Hinweise und Fehlerbehebung
Die Schleife „Überarbeitung fehlgeschlagen“ | Wenn die Bereitstellung abgeschlossen ist, die URL aber |
Die IAM-Schattenrolle | Auch wenn Sie die Berechtigung zum Bereitstellen haben, benötigt das Cloud Run-Dienstkonto (in der Regel |
9. Allgemeine Fehlerbehebung

10. Demo
Sie sollten Ihren Endpunkt für Tests verwenden können.
Zu Demozwecken können Sie aber einige Tage lang Folgendes ausprobieren:
11. Bereinigen
Vergessen Sie nicht, den AlloyDB-Cluster und die ‑Instanz zu löschen, wenn Sie dieses Lab abgeschlossen haben.
Dadurch sollte der Cluster zusammen mit seinen Instanzen bereinigt werden.
12. Glückwunsch
Sie haben die Neighbor Loop-App für nachhaltige Gemeinschaften mit Google Cloud erfolgreich erstellt. Durch die Verlagerung der Einbettungs- und Gemini 3 Flash-KI-Logik in AlloyDB ist die App unglaublich schnell (abhängig von den Bereitstellungseinstellungen) und der Code ist bemerkenswert übersichtlich. Wir speichern nicht nur Daten, sondern auch Intentionen.
Die Kombination aus der Geschwindigkeit von Gemini 3 Flash und der optimierten Vektorverarbeitung von AlloyDB ist wirklich die nächste Stufe für Community-basierte Plattformen.