Erste Schritte mit Server-Promptvorlagen


In jeder Anfrage an ein Modell senden Sie einen Prompt und optional ein Schema und Konfigurationen, um die Antwort des Modells zu steuern. Wenn Sie Firebase AI Logic verwenden, können Sie alle diese Informationen direkt über Ihren Clientcode senden oder serverseitig mit Server-Prompt-Vorlagen angeben.

Wenn Sie Server-Prompt-Vorlagen verwenden, speichern Sie Ihren Prompt, Ihr Schema und Ihre Konfigurationen serverseitig. Ihre App übergibt vom Client an den Server nur den Schlüssel (die Vorlagen-ID), der auf eine bestimmte Vorlage verweist, sowie die erforderlichen Eingaben für diese Vorlage.

Wenn Sie Server-Prompt-Vorlagen verwenden, speichern Sie Ihren Prompt und Ihre Konfigurationen serverseitig und geben in der Codebasis Ihrer App nur einen Schlüssel (die Vorlagen-ID) an. Hier sind einige Vorteile dieses Ansatzes:

  • Schutz vor der Offenlegung Ihres Prompts auf der Clientseite

  • Prompt und Konfiguration aktualisieren, ohne eine neue App-Version zu veröffentlichen

In diesem Leitfaden wird beschrieben, wie Sie mit der Verwendung von Server-Promptvorlagen beginnen.

 Zur Übersicht  Zur detaillierten Anleitung

Unterstützte Modelle und Funktionen



Gesamtübersicht

So verwenden Sie Server-Promptvorlagen:

  1. Erstellen Sie die Vorlage über die geführte Benutzeroberfläche in der Firebase-Konsole.

  2. Testen Sie die Vorlage in einer echten Anfrage über die Testfunktion der Firebase-Konsole.

  3. Greifen Sie über Ihre App auf die Vorlage zu.

Einfaches Format von Server-Promptvorlagen

Für Firebase AI Logic bietet die Firebase-Konsole eine geführte Benutzeroberfläche, über die Sie den Inhalt einer Vorlage angeben können.

Server-Prompt-Vorlagen verwenden eine Dotprompt-basierte Syntax und ein Dotprompt-basiertes Format. Weitere Informationen finden Sie unter Vorlagenformat, ‑syntax und ‑beispiele.

Hier sind die wichtigsten Komponenten für eine Beispielanfrage an ein Gemini-Modell:

---
model: 'gemini-2.5-flash'
---

{{role "system"}}
All output must be a clearly structured invoice document.
Use a tabular or clearly delineated list format for line items.

{{role "user"}}
Create an example customer invoice for a customer named {{customerName}}.
  • Der obere Bereich zwischen den drei Bindestrichen enthält den Modellnamen sowie optional eine beliebige Modellkonfiguration, Eingabevalidierung oder ein Schema, das Sie in der Anfrage senden möchten. Die Daten werden in Schlüssel/Wert-Paaren angeordnet und werden häufig als YAML-Frontmatter bezeichnet.

  • Der Text der Vorlage enthält den Prompt. Optional können auch Systemanweisungen und Eingabewerte (mit Handlebars-Syntax) enthalten sein.

Vorlage im Code verwenden

Klicken Sie auf Ihren Gemini API-Anbieter, um anbieterspezifische Inhalte und Code auf dieser Seite aufzurufen.

So verwenden Sie die Vorlage in Ihrem Code:

Swift


// ...

// Initialize the Gemini Developer API backend service
// Create a `TemplateGenerativeModel` instance
let model = FirebaseAI.firebaseAI(backend: .googleAI()).templateGenerativeModel()

let customerName = "Jane"

do {
    let response = try await model.generateContent(
        // Specify your template ID
        templateID: "my-first-template-v1-0-0",
        // Provide the values for any input variables required by your template.
        inputs: [
            "customerName": customerName
        ]
    )
    if let text = response.text {
        print("Response Text: \(text)")
    }
} catch {
    print("An error occurred: \(error)")
}
print("\n")

Kotlin


// ...

// Initialize the Gemini Developer API backend service
// Create a `TemplateGenerativeModel` instance
val model = Firebase.googleAI.templateGenerativeModel()

val customerName = "Jane"

val response = model.generateContent(
    // Specify your template ID
    "my-first-template-v1-0-0",
    // Provide the values for any input variables required by your template.
    mapOf(
        "customerName" to customerName
    )
)

val text = response.text
println(text)

Java


// ...

// Initialize the Gemini Developer API backend service
// Create a `TemplateGenerativeModel` instance
TemplateGenerativeModel generativeModel = FirebaseAI.getInstance().templateGenerativeModel();

TemplateGenerativeModelFutures model = TemplateGenerativeModelFutures.from(generativeModel);

String customerName = "Jane";

Future response = model.generateContent(
    // Specify your template ID
    "my-first-template-v1-0-0",
    // Provide the values for any input variables required by your template.
    mapOf("customerName", customerName)
);
addCallback(response,
       new FutureCallback() {
           public void onSuccess(GenerateContentResponse result) {
             System.out.println(result.getText());
           }
           public void onFailure(Throwable t) {
             reportError(t);
           }
    }
executor);

Web


// ...

// Initialize the Gemini Developer API backend service
const ai = getAI(app, { backend: new GoogleAIBackend() });

// Create a `TemplateGenerativeModel` instance
const model = getTemplateGenerativeModel(ai);

const customerName = 'Jane';

const result = await model.generateContent(
  // Specify your template ID
  'my-first-template-v1-0-0',
  // Provide the values for any input variables required by your template
  {
    customerName: customerName,
  }
);

const response = response.result;
const text = response.text();

Dart

Das Flutter-Plug-in wird bald Server-Prompt-Vorlagen unterstützen.

Einheit

Das Unity-Paket unterstützt bald Server-Promptvorlagen.



Detaillierte Anleitung

In diesem Abschnitt finden Sie eine detaillierte Anleitung zum Erstellen, Testen und Verwenden von Server-Promptvorlagen.

Hinweis

  • Falls noch nicht geschehen, folgen Sie dem Startleitfaden. Darin wird beschrieben, wie Sie Ihr Firebase-Projekt einrichten, Ihre App mit Firebase verbinden, das SDK hinzufügen, den Backend-Dienst für den ausgewählten Gemini API-Anbieter initialisieren und eine GenerativeModel-Instanz erstellen.

  • Sie benötigen die erforderlichen Berechtigungen, um Server-Prompt-Vorlagen zu erstellen und zu verwalten. Standardmäßig sind alle diese Berechtigungen in der Rolle „Inhaber“ enthalten.

  • Wenn Sie Vertex AI Gemini API und wenn für Ihren Anwendungsfall standortbasierte Einschränkungen erforderlich sind verwenden, unterstützen wir erweiterte Workflows für Vorlagen.

Schritt 1: Server-Prompt-Vorlage erstellen

In den meisten Fällen erstellen und verwalten Sie Server-Promptvorlagen in der Firebase-Konsole.

  1. Rufen Sie in der Firebase Console den Tab Firebase AI Logic Promptvorlagen auf.

  2. Klicken Sie auf Neue Vorlage erstellen und wählen Sie eine Startvorlage aus.

    • Diese Startvorlagen enthalten das Format und die Syntax für einige gängige Anwendungsfälle. Unabhängig davon, welche Option Sie auswählen, können Sie die Vorlage jedoch vollständig an Ihre Anforderungen anpassen.

    • In diesem Leitfaden für Einsteiger wird davon ausgegangen, dass Sie die Option Input + System Instructions ausgewählt haben.

  3. Geben Sie die Kennzeichnungen der Vorlage ein:

    • Vorlagenname: Dies ist ein Anzeigename für die Vorlage, z. B. My First Template. Er ist nur in Firebase-Oberflächen wie der Firebase Console sichtbar.

    • Vorlagen-ID: Dies muss eine eindeutige ID für die Vorlage in Ihrem Firebase-Projekt sein (z. B. my-first-template-v1-0-0). Sie verweisen in der Anfrage von Ihrer App auf diese ID.

      • Wir empfehlen, ein Versionsverwaltungssystem für Ihre Vorlagen-IDs zu verwenden.

      • Vorlagen-IDs dürfen maximal 63 Zeichen lang sein und können Kleinbuchstaben, Ziffern und Bindestriche enthalten.

  4. Ändern Sie den Abschnitt Konfiguration (Frontmatter) der Vorlage nach Bedarf.

    • Dieser Abschnitt muss mindestens einen Modellnamen enthalten, z. B.:

      ---
      model: 'gemini-2.5-flash'
      ---
      
    • Sie können optional auch die Konfiguration des Modells sowie Ein- und Ausgabesteuerelemente usw. angeben. Weitere Informationen und Optionen finden Sie unter Vorlagenformat, ‑syntax und ‑beispiele.

  5. Ändern Sie den Abschnitt Prompt und (falls zutreffend) Systemanweisungen der Vorlage nach Bedarf.

    • Dieser Abschnitt muss mindestens den Text-Prompt enthalten, der an das Modell gesendet wird.

      Write a story about a magic backpack.
      
    • Sie können auch komplexere Prompts erstellen, z. B. die folgenden Optionen. Weitere Informationen und Optionen finden Sie unter Vorlagenformat, ‑syntax und ‑beispiele.

      • (Optional und je nach Bedarf) Geben Sie Systemanweisungen mit der Syntax {{role "system"}} und den Text-Prompt mit der Syntax {{role "user"}} an.

      • (Optional) Geben Sie Eingabevariablen mit der Handlebars-Syntax an (z. B. {{customerName}}). Sie können einen Standardwert in der Vorlage angeben, aber der Wert dieser Eingabevariable wird in der Regel in der Anfrage übergeben.

      {{role "system"}}
      All output must be a clearly structured invoice document.
      Use a tabular or clearly delineated list format for line items.
      
      {{role "user"}}
      Create an example customer invoice for a customer named {{customerName}}.
      

Schritt 2: Vorlage in der Firebase-Konsole testen

Die Firebase-Konsole bietet eine Testumgebung für Ihre Vorlage. So können Sie sehen, was passiert, wenn Ihre Vorlage verwendet wird – sowohl das Format der Anfrage als auch die Ausgabe einer tatsächlichen Anfrage.

  1. Klicken Sie auf Vorlage speichern, damit Sie die Vorlage testen können.

    Sie können die Vorlage später jederzeit bearbeiten oder sogar löschen. Der einzige Wert, den Sie später nicht mehr ändern können, ist die Vorlagen-ID.

  2. Wenn in Ihrem Prompt Eingabevariablen verwendet werden, geben Sie Testwerte im Feld Testeingabe an. In diesem Beispiel:

      {
        "customerName": "Jane"
      }
    
  3. Wenn Sie mehrere Gemini API-Anbieter in Ihrem Firebase-Projekt aktiviert haben, können Sie auswählen, welcher für die Testanfrage verwendet werden soll. Wenn diese Option in der Console angezeigt wird, wählen Sie entweder Gemini Developer API oder Vertex AI Gemini API aus.

    Diese Auswahl gilt nur für Anfragen, die über die Firebase-Konsolentestumgebung eingereicht werden. In der tatsächlichen Anfrage Ihrer App geben Sie den ausgewählten Gemini API-Anbieter wie bei jeder anderen Anfrage an.

  4. Klicken Sie auf die Schaltfläche Formatierte Testanfrage erstellen.

    Sehen Sie sich die Formatted test request (Formatierte Testanfrage) auf der rechten Seite des Bildschirms an und bearbeiten Sie die Felder Ihrer Vorlage.

  5. Wenn Sie mit der formatierten Testanfrage zufrieden sind, klicken Sie auf die Schaltfläche Prompt-Test ausführen.

    Sehen Sie sich die Testantwort auf der rechten Seite des Bildschirms an und bearbeiten Sie die Felder Ihrer Vorlage.

  6. Wenn Sie bereit sind, über den Code Ihrer App auf die Vorlage zuzugreifen, sperren Sie die Vorlage, indem Sie rechts oben in der Vorlage auf das -Schlosssymbol klicken.

  7. Klicken Sie auf Schließen, um die Bearbeitung zu beenden.

Schritt 3: Über den Code auf die Vorlage zugreifen

Klicken Sie auf Ihren Gemini API-Anbieter, um anbieterspezifische Inhalte und Code auf dieser Seite aufzurufen.

Eine Anfrage mit einer Server-Promptvorlage ähnelt anderen Anfragen, mit den folgenden Anpassungen:

  • Verwenden Sie nach Bedarf templateGenerativeModel oder templateImagenModel.
  • Geben Sie die Vorlagen-ID an.
  • Geben Sie die Werte aller variablen Eingaben an, die für Ihre Vorlage erforderlich sind.

Nachdem Sie Ihre Vorlage erstellt oder aktualisiert haben, kann es einige Minuten dauern, bis sie auf allen Firebase-Servern verfügbar ist. Erst dann können Sie über Ihren Code darauf zugreifen.

Swift

Erstellen Sie eine templateGenerativeModel-Instanz (oder templateImagenModel), um eine Vorlage in Ihrer Anfrage zu verwenden.


// ...

// Initialize the Gemini Developer API backend service
// Create a `TemplateGenerativeModel` instance
let model = FirebaseAI.firebaseAI(backend: .googleAI()).templateGenerativeModel()

let customerName = "Jane"

do {
    let response = try await model.generateContent(
        // Specify your template ID
        templateID: "my-first-template-v1-0-0",
        // Provide the values for any input variables required by your template.
        inputs: [
            "customerName": customerName
        ]
    )
    if let text = response.text {
        print("Response Text: \(text)")
    }
} catch {
    print("An error occurred: \(error)")
}
print("\n")

Kotlin

Erstellen Sie eine templateGenerativeModel-Instanz (oder templateImagenModel), um eine Vorlage in Ihrer Anfrage zu verwenden.


// ...

// Initialize the Gemini Developer API backend service
// Create a `TemplateGenerativeModel` instance
val model = Firebase.googleAI.templateGenerativeModel()

val customerName = "Jane"

val response = model.generateContent(
    // Specify your template ID
    "my-first-template-v1-0-0",
    // Provide the values for any input variables required by your template.
    mapOf(
        "customerName" to customerName
    )
)

val text = response.text
println(text)

Java

Erstellen Sie eine templateGenerativeModel-Instanz (oder templateImagenModel), um eine Vorlage in Ihrer Anfrage zu verwenden.


// ...

// Initialize the Gemini Developer API backend service
// Create a `TemplateGenerativeModel` instance
TemplateGenerativeModel generativeModel = FirebaseAI.getInstance().templateGenerativeModel();

TemplateGenerativeModelFutures model = TemplateGenerativeModelFutures.from(generativeModel);

String customerName = "Jane";

Future response = model.generateContent(
    // Specify your template ID
    "my-first-template-v1-0-0",
    // Provide the values for any input variables required by your template.
    mapOf("customerName", customerName)
);
addCallback(response,
       new FutureCallback() {
           public void onSuccess(GenerateContentResponse result) {
             System.out.println(result.getText());
           }
           public void onFailure(Throwable t) {
             reportError(t);
           }
    }
executor);

Web

Erstellen Sie eine templateGenerativeModel-Instanz (oder templateImagenModel), um eine Vorlage in Ihrer Anfrage zu verwenden.


// ...

// Initialize the Gemini Developer API backend service
const ai = getAI(app, { backend: new GoogleAIBackend() });

// Create a `TemplateGenerativeModel` instance
const model = getTemplateGenerativeModel(ai);

const customerName = 'Jane';

const result = await model.generateContent(
  // Specify your template ID
  'my-first-template-v1-0-0',
  // Provide the values for any input variables required by your template
  {
    customerName: customerName,
  }
);

const response = response.result;
const text = response.text();

Dart

Das Flutter-Plug-in wird bald Server-Prompt-Vorlagen unterstützen.

Einheit

Das Unity-Paket unterstützt bald Server-Promptvorlagen.



Nächste Schritte