Gemini API dapat menghasilkan output teks saat teks, gambar, video, dan audio diberikan sebagai input.
Panduan ini menunjukkan cara membuat teks menggunakan metode
generateContent
dan
streamGenerateContent
. Untuk mempelajari cara menggunakan kemampuan audio dan visi Gemini,
lihat panduan Visi dan Audio.
Sebelum memulai: Menyiapkan project dan kunci API
Sebelum memanggil Gemini API, Anda perlu menyiapkan project dan mengonfigurasi kunci API.
Membuat teks dari input khusus teks
Cara termudah untuk membuat teks menggunakan Gemini API adalah dengan memberikan satu input khusus teks ke model, seperti yang ditunjukkan dalam contoh ini:
// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const prompt = "Write a story about a magic backpack.";
const result = await model.generateContent(prompt);
console.log(result.response.text());
Dalam hal ini, perintah ("Tulis cerita tentang ransel ajaib") tidak menyertakan contoh output, petunjuk sistem, atau informasi pemformatan. Ini adalah pendekatan zero-shot. Untuk beberapa kasus penggunaan, perintah one-shot atau few-shot mungkin menghasilkan output yang lebih selaras dengan ekspektasi pengguna. Dalam beberapa kasus, Anda mungkin juga ingin memberikan petunjuk sistem untuk membantu model memahami tugas atau mengikuti panduan tertentu.
Membuat teks dari input teks dan gambar
Gemini API mendukung input multimodal yang menggabungkan teks dengan file media. Contoh berikut menunjukkan cara membuat teks dari input teks dan gambar:
// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.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.";
// Note: The only accepted mime types are some image types, image/*.
const imagePart = fileToGenerativePart(
`${mediaPath}/jetpack.jpg`,
"image/jpeg",
);
const result = await model.generateContent([prompt, imagePart]);
console.log(result.response.text());
Seperti prompt teks saja, prompt multimodal dapat melibatkan berbagai pendekatan dan peningkatan. Bergantung pada output dari contoh ini, sebaiknya Anda menambahkan langkah ke perintah atau lebih spesifik dalam petunjuk Anda. Untuk mempelajari lebih lanjut, lihat Strategi perintah file.
Membuat streaming teks
Secara default, model akan menampilkan respons setelah menyelesaikan seluruh proses pembuatan teks. Anda dapat mencapai interaksi yang lebih cepat dengan tidak menunggu seluruh hasil, dan sebagai gantinya menggunakan streaming untuk menangani hasil sebagian.
Contoh berikut menunjukkan cara menerapkan streaming menggunakan
metode streamGenerateContent
untuk
membuat teks dari perintah input khusus teks.
// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const prompt = "Write a story about a magic backpack.";
const result = await model.generateContentStream(prompt);
// Print text as it comes in.
for await (const chunk of result.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
Membuat chat interaktif
Anda dapat menggunakan Gemini API untuk membuat pengalaman chat interaktif bagi pengguna. Dengan menggunakan fitur chat API, Anda dapat mengumpulkan beberapa putaran pertanyaan dan respons, sehingga pengguna dapat melangkah secara bertahap menuju jawaban atau mendapatkan bantuan untuk masalah multibagian. Fitur ini ideal untuk aplikasi yang memerlukan komunikasi berkelanjutan, seperti chatbot, tutor interaktif, atau asisten dukungan pelanggan.
Contoh kode berikut menunjukkan implementasi chat dasar:
// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.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());
result = await chat.sendMessage("How many paws are in my house?");
console.log(result.response.text());
Mengaktifkan streaming chat
Anda juga dapat menggunakan streaming dengan chat, seperti yang ditunjukkan pada contoh berikut:
// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.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);
}
result = await chat.sendMessageStream("How many paws are in my house?");
for await (const chunk of result.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
Mengonfigurasi pembuatan teks
Setiap perintah yang Anda kirim ke model menyertakan
parameter yang
mengontrol cara model menghasilkan respons. Anda dapat menggunakan
GenerationConfig
untuk
mengonfigurasi parameter ini. Jika Anda tidak mengonfigurasi parameter, model akan menggunakan opsi default, yang dapat bervariasi menurut model.
Contoh berikut menunjukkan cara mengonfigurasi beberapa opsi yang tersedia.
// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({
model: "gemini-1.5-flash",
generationConfig: {
candidateCount: 1,
stopSequences: ["x"],
maxOutputTokens: 20,
temperature: 1.0,
},
});
const result = await model.generateContent(
"Tell me a story about a magic backpack.",
);
console.log(result.response.text());
candidateCount
menentukan jumlah respons yang dihasilkan untuk ditampilkan.
Saat ini, nilai ini hanya dapat ditetapkan ke 1. Jika tidak ditetapkan, setelan defaultnya adalah 1.
stopSequences
menentukan kumpulan urutan karakter (maksimal 5) yang akan menghentikan pembuatan output. Jika ditentukan, API akan berhenti pada kemunculan pertama
stop_sequence. Urutan perhentian tidak akan disertakan sebagai bagian dari respons.
maxOutputTokens
menetapkan jumlah maksimum token yang akan disertakan dalam kandidat.
temperature
mengontrol keacakan output. Gunakan nilai yang lebih tinggi untuk respons yang lebih
kreatif, dan nilai yang lebih rendah untuk respons yang lebih deterministik. Nilai
dapat berkisar dari [0,0, 2,0].
Anda juga dapat mengonfigurasi setiap panggilan ke generateContent
:
const result = await model.generateContent({
contents: [
{
role: 'user',
parts: [
{
text: prompt,
}
],
}
],
generationConfig: {
maxOutputTokens: 1000,
temperature: 0.1,
},
});
console.log(result.response.text());
Setiap nilai yang ditetapkan pada setiap panggilan akan mengganti nilai pada konstruktor model.
Langkah berikutnya
Setelah menjelajahi dasar-dasar Gemini API, Anda dapat mencoba:
- Pemahaman visi: Pelajari cara menggunakan pemahaman visi native Gemini untuk memproses gambar dan video.
- Petunjuk sistem: Petunjuk sistem memungkinkan Anda mengarahkan perilaku model berdasarkan kebutuhan dan kasus penggunaan tertentu.
- Pemahaman audio: Pelajari cara menggunakan pemahaman audio native Gemini untuk memproses file audio.