1. Einführung
In diesem Codelab fügen Sie einem E‑Commerce-Shop für Outdoor-Ausrüstung namens Rugged Terrain Guide ein intelligentes Kundensupport-Chat-Widget hinzu. Sie verwenden Firebase AI Logic, um diesen Agenten zu erstellen, und erfahren, wie Sie eine serverseitige Prompt-Vorlage (product-agent) konfigurieren, die die Rolle der KI, strenge Regeln für Kulanzleistungen und den Produktkatalog dynamisch als Kontext verwendet.
Aufgaben:
- Startcode für die Webanwendung dieses Codelabs abrufen
- Firebase-Projekt einrichten
- Firebase-Dienste (z. B. Firebase AI Logic) in einer Webanwendung einrichten und initialisieren
- Serverseitige Prompt-Vorlage in der Firebase Console konfigurieren
- Über einen Aufruf des generativen KI-Dienstes aus einem React-ähnlichen TypeScript-Frontend auf die Vorlage zugreifen
Voraussetzungen:
- Ein Webbrowser wie Chrome.
- Grundlegende Kenntnisse in TypeScript und Node.js
- Eine IDE oder ein Texteditor Ihrer Wahl Antigravity ist eine gute Wahl.
2. Startcode abrufen
- Klonen Sie in Ihrem Terminal das Starter-Repository:
git clone https://github.com/GoogleCloudPlatform/devrel-demos.git - Wechseln Sie zum Codeverzeichnis und installieren Sie die Abhängigkeiten:
cd devrel-demos/codelabs/firebase-server-prompt-templates-codelab npm install
3. Firebase-Projekt einrichten
Firebase-Projekt erstellen
- Melden Sie sich mit Ihrem Google-Konto in der Firebase Console an.
- Klicken Sie auf die Schaltfläche, um ein neues Projekt zu erstellen, und geben Sie dann einen Projektnamen ein (z. B.
rugged-terrain-ai).
- Klicken Sie auf Weiter.
- Überprüfen und akzeptieren Sie gegebenenfalls die Firebase-Nutzungsbedingungen und klicken Sie dann auf Weiter.
- (Optional) Aktivieren Sie die KI-Unterstützung in der Firebase Console (Gemini in Firebase).
- Für dieses Codelab benötigen Sie kein Google Analytics. Deaktivieren Sie daher die Google Analytics-Option.
- Klicken Sie auf Projekt erstellen, warten Sie, bis Ihr Projekt bereitgestellt wurde, und klicken Sie dann auf Weiter.
Firebase-Tarif aktualisieren
Damit Sie die Firebase-Dienste in diesem Codelab verwenden können, muss für Ihr Firebase-Projekt der Pay-as-you-go-Tarif (Blaze) gelten. Das bedeutet, dass es mit einem Cloud-Rechnungskonto verknüpft ist.
- Für ein Cloud-Rechnungskonto ist eine Zahlungsmethode wie eine Kreditkarte erforderlich.
- Bei Sonderaktionen oder wenn Sie dieses Codelab im Rahmen einer Veranstaltung durchführen, sind möglicherweise Google Cloud-Guthaben verfügbar.
- Wenn Sie Firebase und Google Cloud noch nicht kennen, prüfen Sie, ob Sie Anspruch auf ein Guthaben in Höhe von 300 $ und ein kostenloses Cloud-Rechnungskonto für den Testzeitraum haben.
So aktualisieren Sie Ihr Projekt auf den Blaze-Tarif:
- Wählen Sie in der Firebase Console die Option zum Aktualisieren Ihres Tarifs aus.
- Wählen Sie den Blaze-Tarif aus. Folgen Sie der Anleitung auf dem Bildschirm, um ein Cloud-Rechnungskonto mit Ihrem Projekt zu verknüpfen.
- Wenn Sie für dieses Codelab Google Cloud-Guthaben verwenden, heißt das Rechnungskonto wahrscheinlich
Google Cloud Platform Trial Billing AccountoderMy Billing Account. - Wenn Sie im Rahmen dieses Upgrades ein Cloud-Rechnungskonto erstellen mussten, müssen Sie möglicherweise zum Upgrade-Ablauf in der Firebase Console zurückkehren, um das Upgrade abzuschließen.
- Wenn Sie für dieses Codelab Google Cloud-Guthaben verwenden, heißt das Rechnungskonto wahrscheinlich
4. Firebase-Dienste einrichten und Anwendung verbinden
Für dieses Codelab müssen Sie Cloud Storage for Firebase und Firebase AI Logic in Ihrem Firebase-Projekt einrichten. Außerdem müssen Sie den Quellcode Ihrer Anwendung mit Ihrem Firebase-Projekt verbinden.
Cloud Storage for Firebase einrichten
In diesem Codelab werden Produktbeschreibungen in Cloud Storage for Firebase gespeichert.
- Wechseln Sie in der Firebase Console zu Datenbanken und Speicher > Speicher.
- Klicken Sie auf Jetzt starten.
- Wählen Sie einen Standort für Ihren Standard-Storage-Bucket aus.
Für Buckets inUS-WEST1,US-CENTRAL1undUS-EAST1kann der kostenlose Tarif für Google Cloud Storage genutzt werden. Für Buckets an allen anderen Standorten gelten die Preise und die Nutzung von Google Cloud Storage. - Klicken Sie auf Produktionsmodus. In den folgenden Schritten aktualisieren Sie diese Sicherheitsregeln, damit sie für dieses Codelab spezifisch sind.
- Klicken Sie auf Erstellen.
- Aktualisieren Sie Ihre Sicherheitsregeln:
- Wechseln Sie nach der Bereitstellung des Buckets zum Tab Regeln.
- Kopieren Sie die folgenden Regeln und fügen Sie sie ein:
rules_version = '2'; service firebase.storage { match /b/{bucket}/o { match /products.txt { allow read; } } } - Klicken Sie auf Veröffentlichen.
- Laden Sie die Produktbeschreibungen aus dem Startcode hoch:
- Klicken Sie für Ihren Storage-Bucket auf den Tab Dateien.
- Klicken Sie auf Datei hochladen und laden Sie dann die
products.txtDatei aus dem Startcode hoch. Diese Datei finden Sie untersrc/data/products.txt.
Firebase AI Logic konfigurieren
Firebase AI Logic ist der wichtigste Firebase-Dienst, den Sie in diesem Codelab verwenden.
- Wechseln Sie in der Firebase Console zu KI-Dienste > AI Logic.
- Klicken Sie auf Jetzt starten.
- Klicken Sie auf der Karte Agent Platform Gemini API auf Erste Schritte mit dieser API und folgen Sie der Anleitung auf dem Bildschirm. In diesem Ablauf werden die erforderlichen APIs aktiviert, damit Sie Firebase AI Logic mit der Agent Platform Gemini API verwenden können.
- (Optional) Wählen Sie KI-Monitoring aktivieren aus, damit Sie verschiedene Messwerte und die Nutzung auf App-Ebene beobachten können, um umfassende Einblicke in Ihre Anfragen über Firebase AI Logic zu erhalten.
Code mit Firebase-Projekt verbinden
Im Rahmen der Einrichtung von Firebase AI Logic werden Sie aufgefordert, eine Firebase-Webanwendung zu erstellen und Ihre Konfiguration zum Quellcode hinzuzufügen.
- Klicken Sie bei der entsprechenden Aufforderung im Einrichtungsworkflow von Firebase AI Logic auf das Symbol Web (
), um eine neue Webanwendung zu registrieren. - Geben Sie der Anwendung einen Namen (z. B.
Rugged Web). - Kopieren Sie das Objekt
firebaseConfigaus der Einrichtungsanleitung.
Aktualisieren Sie als Nächstes den Startcode:
- Öffnen Sie in Ihrem Codeeditor
src/firebase.ts. - Ersetzen Sie die vorhandene
firebaseConfigdurch die, die Sie aus der Firebase Console kopiert haben.
Ihre Datei sollte nun in etwa so aussehen:
import { getAI, getTemplateGenerativeModel, AgentPlatformBackend } from "firebase/ai";
import { initializeApp } from "firebase/app";
// Your web app's Firebase configuration
const firebaseConfig = {
apiKey: "YOUR_API_KEY",
authDomain: "YOUR_PROJECT_ID.firebaseapp.com",
projectId: "YOUR_PROJECT_ID",
storageBucket: "YOUR_PROJECT_ID.firebasestorage.app",
messagingSenderId: "YOUR_MESSAGING_SENDER_ID",
appId: "YOUR_APP_ID"
};
// Initialize Firebase
export const app = initializeApp(firebaseConfig);
const ai = getAI(app, { backend: new AgentPlatformBackend() });
5. Serverseitige Prompt-Vorlage erstellen
Anstatt komplexe KI-Prompts in der Client-App fest zu codieren, verwenden Sie die Dotprompt-Syntax , um Anweisungen sicher auf dem Server zu verwalten.
So wird verhindert, dass Endnutzer die geheimen Regeln für das Kulanzbudget sehen.
- Wechseln Sie in der Firebase Console zur Registerkarte KI-Dienste > AI Logic > Prompt-Vorlagen.
- Klicken Sie auf Vorlage erstellen und wählen Sie Leere Vorlage aus.
- Legen Sie den Vorlagennamen auf
Product Agentund die ID aufproduct-agentfest. - Legen Sie das Modell auf
gemini-3.1-flash-lite(oder die neueste verfügbare Version) fest. - Kopieren Sie aus dem für dieses Codelab bereitgestellten Startcode den Inhalt von
product-agent.prompt(diese Datei befindet sich im Stammverzeichnis). Fügen Sie diesen Inhalt dann in der Firebase Console in das Feld Prompt und (optionale) Systemanweisungen der Server-Prompt-Vorlage ein. Dieser Inhalt weist das Modell sicher an, wie es sich als „Rugged Operator“ verhalten und auf den Produktkatalog verweisen soll. - Definieren Sie im Feld Testeingabe das Eingabeschema genau so:
{ "type": "object", "required": [ "query" ], "properties": { "query": { "type": "string", "description": "the customers ask of the robot" }, "productId": { "type": "string", "description": "the product the customer is looking at right now" }, "history": { "type": "array", "description": "list of previous history between the user and system", "items": { "type": "object", "required": [ "role", "contents" ], "properties": { "role": { "type": "string" }, "contents": { "type": "string" } } } } } } - Klicken Sie auf Vorlage speichern , um die Vorlage
product-agentzu speichern und zu veröffentlichen.
6. KI-Modell aufrufen
Nachdem die Vorlage sicher auf dem Server definiert wurde, müssen Sie sie nur noch über das Frontend Ihrer Anwendung aufrufen.
- Kehren Sie in Ihrem Codeeditor zu
src/firebase.tszurück. - Verwenden Sie unter der Initialisierung
getTemplateGenerativeModel, um eine Verbindung zur Vorlage herzustellen:const model = getTemplateGenerativeModel(ai); export const callCustomerSupportModel = async (query: string, productId?: string, history?: { role: string, contents: string }[]) => { // Generate content using the published 'product-agent' template const result = await model.generateContent('product-agent', { query, productId, history, }); return result.response.text(); }
7. Agent mit Firebase App Check schützen
KI-Modelle sind leistungsstark, können aber auch missbraucht werden, wenn öffentliche Endpunkte ungeschützt bleiben. Sie sollten immer Firebase App Check verwenden, um sicherzustellen, dass nur Ihre tatsächliche Webanwendung erfolgreiche Anfragen an die Gemini API senden kann. Bots und nicht autorisierte Clients werden blockiert.
- Wechseln Sie in der Google Cloud Console zu Sicherheit > Fraud Defense
- Klicken Sie auf Schlüssel erstellen und füllen Sie die Felder aus:
- Anzeigename:
Codelab Key - Anwendungstyp: Web
- Domainliste: Fügen Sie
localhostund127.0.0.1hinzu, damit Ihr lokaler Vite-Server Anfragen senden darf.
- Anzeigename:
- Klicken Sie auf Schlüssel erstellen , um den Schlüssel zu registrieren.
- Kopieren Sie oben auf der Seite mit den Details zum Fraud Defense-Schlüssel die ID des Websiteschlüssels in die Zwischenablage.
- Wechseln Sie in der Firebase Console zu Sicherheit > App Check.
- Klicken Sie auf den Tab Apps , maximieren Sie Ihre Webanwendung (
Rugged Web) und klicken Sie auf den Anbieter reCAPTCHA Enterprise. - Fügen Sie im Feld reCAPTCHA Enterprise-Websiteschlüssel die ID des Websiteschlüssels von der Seite mit den Details zum Fraud Defense-Schlüssel ein und klicken Sie auf Speichern.
- Öffnen Sie in Ihrem Codeeditor noch einmal
src/firebase.ts. - Fügen Sie oben die folgenden Importe hinzu:
import { initializeAppCheck, ReCaptchaEnterpriseProvider } from "firebase/app-check"; - Fügen Sie die App Check-Initialisierung direkt nach dem Aufruf von
initializeApp(firebaseConfig)hinzu und fügen Sie die kopierte ID des Websiteschlüssels ein:// Initialize App Check const appCheck = initializeAppCheck(app, { provider: new ReCaptchaEnterpriseProvider('YOUR_RECAPTCHA_ENTERPRISE_SITE_KEY'), isTokenAutoRefreshEnabled: true }); - Aktualisieren Sie den Aufruf der Funktion
getAI(), um diese Tokens zu verwenden. Nehmen Sie die folgende Änderung vor: Wenn Sie den Wert vonconst ai = getAI(app, { backend: new AgentPlatformBackend(), useLimitedUseAppCheckTokens: true });useLimitedUseAppCheckTokensauf „true“ setzen, werden kurzlebige Tokens angewendet, um den Missbrauch Ihres Backends zu begrenzen.
8. Anwendung ausführen
Nachdem Sie die Firebase-Konfiguration eingerichtet und das Support-Chat-Widget verbunden haben, können Sie die Anwendung ausführen.
- Führen Sie in Ihrem Terminal den Vite-Entwicklungsserver aus:
npm run dev - Öffnen Sie die angegebene lokale URL (in der Regel
http://localhost:5173/). - Klicken Sie rechts unten auf die Floating Action Button (FAB) Tactical Support.
- Stellen Sie Fragen zu den Produkten, z. B.:
- „Ich suche eine wetterfeste Jacke.“
- „Meine Sub-Zero-Mütze ist defekt. Was kann ich tun?“
- Drängen Sie weiter nach, um die Logik für das Kulanzbudget der KI auszulösen.
9. (Optional) Ressourcen aus Codelab bereinigen
Um mögliche Gebühren für Ihr Google Cloud-Rechnungskonto zu vermeiden, können Sie die Ressourcen löschen, die während dieses Codelabs erstellt wurden.
- Wechseln Sie in der Firebase Console zur Registerkarte Einstellungen > Allgemein.
- Achten Sie darauf, dass das angezeigte Projekt das Projekt ist, das Sie für dieses Codelab verwendet haben. Wenn es sich nicht um das Projekt Ihres Codelabs handelt, können Sie das Projekt über die Projektauswahl oben links ändern.
- Scrollen Sie zum Ende der Seite und klicken Sie auf Projekt löschen.
- Folgen Sie der Anleitung auf dem Bildschirm, um das Löschen zu bestätigen.
10. Glückwunsch!
🎊 Aufgabe abgeschlossen! Sie haben einen robusten, vorlagenbasierten KI-Kundensupportagenten eingebunden.
Ergebnisse:
- Firebase und das Agent Platform-Backend in einer Client-App initialisiert.
- Sichere serverseitige Prompt-Vorlage mit Handlebars und strengen Eingabeschemas konfiguriert, um das komplexe Verhalten des Agenten zu definieren.
- LLM dynamisch aufgerufen und dabei sicher den Chatverlauf und kontextbezogene Produkt-IDs übergeben, ohne die interne Prompt-Logik für den Client offenzulegen.
Nächste Schritte
- Firebase App Check: Schützen Sie Ihre KI-Endpunkte vor Missbrauch.