Die Gemini API kann Textausgaben generieren, wenn Text, Bilder, Video und Audio als Eingabe bereitgestellt werden.
In dieser Anleitung erfahren Sie, wie Sie mit den Methoden generateContent
und streamGenerateContent
Text generieren. Weitere Informationen zur Verwendung der Bild- und Audiofunktionen von Gemini finden Sie in den Leitfäden Vision und Audio.
Text aus reiner Texteingabe generieren
Die einfachste Möglichkeit, mit der Gemini API Text zu generieren, besteht darin, dem Modell eine einzelne Texteingabe zur Verfügung zu stellen, wie in diesem Beispiel gezeigt:
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const prompt = "Explain how AI works";
const result = await model.generateContent(prompt);
console.log(result.response.text());
In diesem Fall enthält der Prompt („Erkläre, wie KI funktioniert“) keine Ausgabebeispiele, Systemanweisungen oder Formatierungsinformationen. Es ist ein Zero-Shot-Ansatz. Bei einigen Anwendungsfällen kann ein Prompt vom Typ One-Shot oder Few-Shot zu einer Ausgabe führen, die den Erwartungen der Nutzer besser entspricht. In einigen Fällen können Sie auch Systemanweisungen angeben, damit das Modell die Aufgabe besser versteht oder bestimmte Richtlinien einhält.
Text aus Text- und Bildeingabe generieren
Die Gemini API unterstützt multimodale Eingaben, die Text mit Mediendateien kombinieren. Im folgenden Beispiel wird gezeigt, wie Text aus einer Text- und Bildeingabe generiert wird:
import { GoogleGenerativeAI } from "@google/generative-ai";
import * as fs from 'node:fs';
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
function fileToGenerativePart(path, mimeType) {
return {
inlineData: {
data: Buffer.from(fs.readFileSync(path)).toString("base64"),
mimeType,
},
};
}
const prompt = "Describe how this product might be manufactured.";
const imagePart = fileToGenerativePart("/path/to/image.png", "image/png");
const result = await model.generateContent([prompt, imagePart]);
console.log(result.response.text());
Textstream generieren
Standardmäßig gibt das Modell eine Antwort zurück, nachdem der gesamte Textgenerierungsprozess abgeschlossen ist. Sie können schnellere Interaktionen erzielen, wenn Sie nicht auf das vollständige Ergebnis warten, sondern stattdessen Streaming zum Verarbeiten von Teilergebnissen verwenden.
Im folgenden Beispiel wird gezeigt, wie Sie mit der Methode streamGenerateContent
Streaming implementieren, um Text aus einem nur aus Text bestehenden Eingabeprompt zu generieren.
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const prompt = "Explain how AI works";
const result = await model.generateContentStream(prompt);
for await (const chunk of result.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
Chatunterhaltung erstellen
Mit dem Gemini SDK können Sie mehrere Fragen und Antworten abfragen, damit Nutzer schrittweise Antworten erhalten oder Hilfe bei mehrteiligen Problemen erhalten können. Diese SDK-Funktion bietet eine Benutzeroberfläche, mit der Sie den Unterhaltungsverlauf im Blick behalten können. Im Hintergrund wird jedoch dieselbe generateContent
-Methode verwendet, um die Antwort zu erstellen.
Das folgende Codebeispiel zeigt eine einfache Chatimplementierung:
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const chat = model.startChat({
history: [
{
role: "user",
parts: [{ text: "Hello" }],
},
{
role: "model",
parts: [{ text: "Great to meet you. What would you like to know?" }],
},
],
});
let result = await chat.sendMessage("I have 2 dogs in my house.");
console.log(result.response.text());
let result2 = await chat.sendMessage("How many paws are in my house?");
console.log(result2.response.text());
Sie können auch Streaming mit Chat verwenden, wie im folgenden Beispiel gezeigt:
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const chat = model.startChat({
history: [
{
role: "user",
parts: [{ text: "Hello" }],
},
{
role: "model",
parts: [{ text: "Great to meet you. What would you like to know?" }],
},
],
});
let result = await chat.sendMessageStream("I have 2 dogs in my house.");
for await (const chunk of result.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
let result2 = await chat.sendMessageStream("How many paws are in my house?");
for await (const chunk of result2.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
Textgenerierung konfigurieren
Jeder Prompt, den Sie an das Modell senden, enthält Parameter, die steuern, wie das Modell Antworten generiert. Mit GenerationConfig
können Sie diese Parameter konfigurieren. Wenn Sie die Parameter nicht konfigurieren, verwendet das Modell die Standardoptionen, die je nach Modell variieren können.
Im folgenden Beispiel wird gezeigt, wie mehrere der verfügbaren Optionen konfiguriert werden.
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const result = await model.generateContent({
contents: [
{
role: 'user',
parts: [
{
text: "Explain how AI works",
}
],
}
],
generationConfig: {
maxOutputTokens: 1000,
temperature: 0.1,
}
});
console.log(result.response.text());
Systemanweisungen hinzufügen
Mit Systemanweisungen können Sie das Verhalten eines Modells entsprechend Ihren spezifischen Anforderungen und Anwendungsfällen steuern.
Wenn Sie dem Modell Systemanweisungen geben, erhalten Sie zusätzlichen Kontext, um die Aufgabe besser zu verstehen, individuellere Antworten zu generieren und bestimmte Richtlinien während der gesamten Nutzerinteraktion mit dem Modell einzuhalten. Sie können auch das Verhalten auf Produktebene angeben, indem Sie Systemanweisungen festlegen, die von Prompts von Endnutzern getrennt sind.
Sie können Systemanweisungen festlegen, wenn Sie Ihr Modell initialisieren:
// Set the system instruction during model initialization
const model = genAI.getGenerativeModel({
model: "gemini-1.5-flash",
systemInstruction: "You are a cat. Your name is Neko.",
});
Anschließend können Sie wie gewohnt Anfragen an das Modell senden.
Nächste Schritte
Nachdem Sie sich mit den Grundlagen der Gemini API vertraut gemacht haben, können Sie Folgendes ausprobieren:
- Visuelles Verstehen: Hier erfahren Sie, wie Sie das native visuelle Verstehen von Gemini zur Verarbeitung von Bildern und Videos verwenden.
- Audioverständnis: Hier erfahren Sie, wie Sie das native Audioverständnis von Gemini zur Verarbeitung von Audiodateien verwenden.