Pembuatan teks

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 Vision dan Audio.

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:

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());

Dalam hal ini, perintah ("Jelaskan cara kerja AI") 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:

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());

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.

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);
}

Membuat percakapan chat

Gemini SDK memungkinkan Anda mengumpulkan beberapa putaran pertanyaan dan respons, sehingga pengguna dapat melangkah secara bertahap menuju jawaban atau mendapatkan bantuan untuk masalah multibagian. Fitur SDK ini menyediakan antarmuka untuk melacak histori percakapan, tetapi di balik layar menggunakan metode generateContent yang sama untuk membuat respons.

Contoh kode berikut menunjukkan implementasi chat dasar:

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());

Anda juga dapat menggunakan streaming dengan chat, seperti yang ditunjukkan pada contoh berikut:

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);
}

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.

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());

Menambahkan petunjuk sistem

Petunjuk sistem memungkinkan Anda mengarahkan perilaku model berdasarkan kebutuhan dan kasus penggunaan tertentu.

Dengan memberikan petunjuk sistem model, Anda memberikan konteks tambahan ke model untuk memahami tugas, menghasilkan respons yang lebih disesuaikan, dan mematuhi pedoman tertentu selama interaksi pengguna penuh dengan model. Anda juga dapat menentukan perilaku tingkat produk dengan menetapkan petunjuk sistem, terpisah dari perintah yang diberikan oleh pengguna akhir.

Anda dapat menetapkan petunjuk sistem saat melakukan inisialisasi model:

// 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.",
});

Kemudian, Anda dapat mengirim permintaan ke model seperti biasa.

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.
  • Pemahaman audio: Pelajari cara menggunakan pemahaman audio native Gemini untuk memproses file audio.