Wenn Sie die Gemini API über ein Vertex AI in Firebase SDK von Ihrer App aus aufrufen, können Sie das Gemini-Modell auffordern, Text basierend auf einer multimodalen Eingabe zu generieren. Multimodale Prompts können mehrere Modalitäten (oder Eingabetypen) umfassen, z. B. Text zusammen mit Bildern, PDFs, Textdateien, Video und Audio.
In jeder multimodalen Anfrage müssen Sie immer Folgendes angeben:
Die
mimeType
der Datei. Informationen zu den unterstützten MIME-Typen der einzelnen EingabedateienDie Datei. Sie können die Datei entweder als Inline-Daten (wie auf dieser Seite gezeigt) oder über die URL oder den URI bereitstellen.
Zum Testen und Iterieren multimodaler Prompts empfehlen wir die Verwendung von Vertex AI Studio.
Hinweis
Lesen Sie den Einstiegsleitfaden für die Vertex AI in Firebase SDKs, falls Sie dies noch nicht getan haben. Achten Sie darauf, dass Sie Folgendes getan haben:
Richten Sie ein neues oder vorhandenes Firebase-Projekt ein. Verwenden Sie dabei den Blaze-Preisplan und aktivieren Sie die erforderlichen APIs.
Verbinden Sie Ihre App mit Firebase. Dazu müssen Sie Ihre App registrieren und die Firebase-Konfiguration hinzufügen.
Fügen Sie das SDK hinzu und initialisieren Sie den Vertex AI-Dienst und das generative Modell in Ihrer App.
Nachdem Sie Ihre App mit Firebase verbunden, das SDK hinzugefügt und den Vertex AI-Dienst und das generative Modell initialisiert haben, können Sie Gemini API aufrufen.
Text aus Text und einem einzelnen Bild generieren Text aus Text und mehreren Bildern generieren Text aus Text und einem Video generieren
Beispielmediendateien
Wenn Sie noch keine Mediadateien haben, können Sie die folgenden öffentlich zugänglichen Dateien verwenden:
Bild:
gs://cloud-samples-data/generative-ai/image/scones.jpg
mit dem MIME-Typimage/jpeg
Dieses Bild ansehen oder herunterladenPDF:
gs://cloud-samples-data/generative-ai/pdf/2403.05530.pdf
mit dem MIME-Typapplication/pdf
Diese PDF-Datei ansehen oder herunterladenVideo:
gs://cloud-samples-data/video/animals.mp4
mit dem MIME-Typvideo/mp4
Dieses Video ansehen oder herunterladenAudio:
gs://cloud-samples-data/generative-ai/audio/pixel.mp3
mit dem MIME-Typaudio/mp3
Diesen Audiotrack anhören oder herunterladen
Text aus Text und einem einzelnen Bild generieren
Lesen Sie den Abschnitt Vorbereitung in dieser Anleitung, bevor Sie dieses Beispiel ausprobieren.
Sie können Gemini API mit multimodalen Prompts aufrufen, die sowohl Text als auch eine einzelne Datei enthalten, z. B. ein Bild (wie in diesem Beispiel). Für diese Aufrufe müssen Sie ein Modell verwenden, das Medien in Prompts unterstützt (z. B. Gemini 1.5 Flash).
Lesen Sie sich die Anforderungen und Empfehlungen für Eingabedateien durch.
Wählen Sie aus, ob Sie die Antwort streamen (generateContentStream
) oder bis zur vollständigen Generierung des Ergebnisses warten möchten (generateContent
).
Streaming
Sie können schnellere Interaktionen erzielen, wenn Sie nicht auf das vollständige Ergebnis der Modellgenerierung warten, sondern stattdessen Streaming zum Verarbeiten von Teilergebnissen verwenden.
In diesem Beispiel wird gezeigt, wie Sie mit generateContentStream()
generierten Text aus einer multimodalen Prompt-Anfrage streamen, die Text und ein einzelnes Bild enthält:
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Initialize the generative model with a model that supports your use case
// Gemini 1.5 models are versatile and can be used with all API capabilities
let model = vertex.generativeModel(modelName: "gemini-1.5-flash")
guard let image = UIImage(systemName: "bicycle") else { fatalError() }
// Provide a text prompt to include with the image
let prompt = "What's in this picture?"
// To stream generated text output, call generateContentStream and pass in the prompt
let contentStream = try model.generateContentStream(image, prompt)
for try await chunk in contentStream {
if let text = chunk.text {
print(text)
}
}
Ohne Streaming
Alternativ können Sie auf das vollständige Ergebnis warten, anstatt es zu streamen. Das Ergebnis wird erst zurückgegeben, wenn das Modell den gesamten Generierungsprozess abgeschlossen hat.
In diesem Beispiel wird gezeigt, wie Sie mit generateContent()
Text aus einer multimodalen Promptanfrage generieren, die Text und ein einzelnes Bild enthält:
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Initialize the generative model with a model that supports your use case
// Gemini 1.5 models are versatile and can be used with all API capabilities
let model = vertex.generativeModel(modelName: "gemini-1.5-flash")
guard let image = UIImage(systemName: "bicycle") else { fatalError() }
// Provide a text prompt to include with the image
let prompt = "What's in this picture?"
// To generate text output, call generateContent and pass in the prompt
let response = try await model.generateContent(image, prompt)
print(response.text ?? "No text in response.")
Informationen zum Auswählen eines Gemini-Modells und optional eines Standorts, der für Ihren Anwendungsfall und Ihre App geeignet ist.
Text aus Text und mehreren Bildern generieren
Lesen Sie den Abschnitt Vorbereitung in dieser Anleitung, bevor Sie dieses Beispiel ausprobieren.
Sie können Gemini API mit multimodalen Prompts aufrufen, die sowohl Text als auch mehrere Dateien (z. B. Bilder, wie in diesem Beispiel) enthalten. Für diese Aufrufe müssen Sie ein Modell verwenden, das Medien in Prompts unterstützt (z. B. Gemini 1.5 Flash).
Lesen Sie sich die Anforderungen und Empfehlungen für Eingabedateien durch.
Wählen Sie aus, ob Sie die Antwort streamen (generateContentStream
) oder bis zur vollständigen Generierung des Ergebnisses warten möchten (generateContent
).
Streaming
Sie können schnellere Interaktionen erzielen, wenn Sie nicht auf das vollständige Ergebnis der Modellgenerierung warten, sondern stattdessen Streaming zum Verarbeiten von Teilergebnissen verwenden.
In diesem Beispiel wird gezeigt, wie Sie mit generateContentStream()
generierten Text aus einer multimodalen Prompt-Anfrage streamen, die Text und mehrere Bilder enthält:
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Initialize the generative model with a model that supports your use case
// Gemini 1.5 models are versatile and can be used with all API capabilities
let model = vertex.generativeModel(modelName: "gemini-1.5-flash")
guard let image1 = UIImage(systemName: "car") else { fatalError() }
guard let image2 = UIImage(systemName: "car.2") else { fatalError() }
// Provide a text prompt to include with the images
let prompt = "What's different between these pictures?"
// To stream generated text output, call generateContentStream and pass in the prompt
let contentStream = try model.generateContentStream(image1, image2, prompt)
for try await chunk in contentStream {
if let text = chunk.text {
print(text)
}
}
Ohne Streaming
Alternativ können Sie auch auf das vollständige Ergebnis warten, anstatt es zu streamen. Das Ergebnis wird erst zurückgegeben, wenn das Modell den gesamten Generierungsprozess abgeschlossen hat.
In diesem Beispiel wird gezeigt, wie Sie mit generateContent()
Text aus einer multimodalen Promptanfrage generieren, die Text und mehrere Bilder enthält:
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Initialize the generative model with a model that supports your use case
// Gemini 1.5 models are versatile and can be used with all API capabilities
let model = vertex.generativeModel(modelName: "gemini-1.5-flash")
guard let image1 = UIImage(systemName: "car") else { fatalError() }
guard let image2 = UIImage(systemName: "car.2") else { fatalError() }
// Provide a text prompt to include with the images
let prompt = "What's different between these pictures?"
// To generate text output, call generateContent and pass in the prompt
let response = try await model.generateContent(image1, image2, prompt)
print(response.text ?? "No text in response.")
Informationen zum Auswählen eines Gemini-Modells und optional eines Standorts, der für Ihren Anwendungsfall und Ihre App geeignet ist.
Text aus Text und einem Video generieren
Lesen Sie den Abschnitt Vorbereitung in dieser Anleitung, bevor Sie dieses Beispiel ausprobieren.
Sie können Gemini API mit multimodalen Prompts aufrufen, die sowohl Text als auch Videodateien enthalten (wie in diesem Beispiel gezeigt). Für diese Aufrufe müssen Sie ein Modell verwenden, das Medien in Prompts unterstützt (z. B. Gemini 1.5 Flash).
Lesen Sie sich die Anforderungen und Empfehlungen für Eingabedateien durch.
Wählen Sie aus, ob Sie die Antwort streamen (generateContentStream
) oder bis zur vollständigen Generierung des Ergebnisses warten möchten (generateContent
).
Streaming
Sie können schnellere Interaktionen erzielen, wenn Sie nicht auf das vollständige Ergebnis der Modellgenerierung warten, sondern stattdessen Streaming zum Verarbeiten von Teilergebnissen verwenden.
In diesem Beispiel wird gezeigt, wie Sie mit generateContentStream()
generierten Text aus einer multimodalen Promptanfrage streamen, die Text und ein einzelnes Video enthält:
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Initialize the generative model with a model that supports your use case
// Gemini 1.5 models are versatile and can be used with all API capabilities
let model = vertex.generativeModel(modelName: "gemini-1.5-flash")
// Provide the video as `Data` with the appropriate MIME type
let video = InlineDataPart(data: try Data(contentsOf: videoURL), mimeType: "video/mp4")
// Provide a text prompt to include with the video
let prompt = "What is in the video?"
// To stream generated text output, call generateContentStream with the text and video
let contentStream = try model.generateContentStream(video, prompt)
for try await chunk in contentStream {
if let text = chunk.text {
print(text)
}
}
Ohne Streaming
Alternativ können Sie auf das vollständige Ergebnis warten, anstatt es zu streamen. Das Ergebnis wird erst zurückgegeben, wenn das Modell den gesamten Generierungsprozess abgeschlossen hat.
In diesem Beispiel wird gezeigt, wie Sie mit generateContent()
Text aus einer multimodalen Promptanfrage generieren, die Text und ein einzelnes Video enthält:
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Initialize the generative model with a model that supports your use case
// Gemini 1.5 models are versatile and can be used with all API capabilities
let model = vertex.generativeModel(modelName: "gemini-1.5-flash")
// Provide the video as `Data` with the appropriate MIME type.
let video = InlineDataPart(data: try Data(contentsOf: videoURL), mimeType: "video/mp4")
// Provide a text prompt to include with the video
let prompt = "What is in the video?"
// To generate text output, call generateContent with the text and video
let response = try await model.generateContent(video, prompt)
print(response.text ?? "No text in response.")
Informationen zum Auswählen eines Gemini-Modells und optional eines Standorts, der für Ihren Anwendungsfall und Ihre App geeignet ist.
Anforderungen und Empfehlungen für Eingabedateien
Unter Unterstützte Eingabedateien und Anforderungen für die Vertex AI Gemini API finden Sie Informationen zu folgenden Themen:
- Verschiedene Optionen zum Einreichen einer Datei in einer Anfrage
- Unterstützte Dateitypen
- Unterstützte MIME-Typen und deren Angabe
- Anforderungen und Best Practices für Dateien und multimodale Anfragen
Was können Sie sonst noch tun?
- Informationen zum Zählen von Tokens, bevor lange Prompts an das Modell gesendet werden
- Richten Sie Cloud Storage for Firebase ein, damit Sie große Dateien in Ihre multimodalen Anfragen aufnehmen und eine besser verwaltete Lösung für die Bereitstellung von Dateien in Prompts haben können. Dateien können Bilder, PDFs, Videos und Audiodateien enthalten.
- Überlegen Sie, wie Sie sich auf die Produktion vorbereiten können, einschließlich der Einrichtung von Firebase App Check, um die Gemini API vor Missbrauch durch nicht autorisierte Clients zu schützen.
Weitere Funktionen des Gemini API ausprobieren
- Unterhaltungen in mehreren Runden (Chat) erstellen
- Text aus nur-Text-Prompts generieren
- Sie können sowohl aus Text- als auch aus multimodalen Prompts strukturierte Ausgabe (z. B. JSON) generieren.
- Verwenden Sie Funktionsaufrufe, um generative Modelle mit externen Systemen und Informationen zu verbinden.
Inhaltserstellung steuern
- Informationen zum Prompt-Design, einschließlich Best Practices, Strategien und Beispiel-Prompts.
- Konfigurieren Sie Modellparameter wie Temperatur und maximale Ausgabetokens.
- Mit den Sicherheitseinstellungen können Sie die Wahrscheinlichkeit anpassen, dass Sie Antworten erhalten, die als schädlich eingestuft werden könnten.
Weitere Informationen zu den Gemini-Modellen
Hier finden Sie Informationen zu den Modellen, die für verschiedene Anwendungsfälle verfügbar sind, sowie zu ihren Kontingenten und Preisen.Feedback zu Vertex AI in Firebase geben