Pembuatan teks

Panduan ini menunjukkan cara mengirim perintah chat ke model Gemini. Halaman ini membahas beberapa topik berikut:

  • Pilih metode untuk membuat teks: Bandingkan metode yang tersedia untuk pembuatan teks, termasuk konsol Google Cloud , REST API, dan SDK.
  • Buat teks: Pelajari cara mengirim perintah chat menggunakan konsol, atau secara terprogram menggunakan REST API atau SDK.
  • Respons streaming vs. non-streaming: Pahami perbedaan antara respons streaming dan non-streaming serta lihat contoh untuk masing-masing respons.

Diagram berikut merangkum alur kerja keseluruhan:

Untuk mempelajari cara menambahkan gambar dan media lain ke permintaan Anda, lihat Pemahaman gambar.

Untuk mengetahui daftar bahasa yang didukung oleh Gemini, lihat Dukungan bahasa.


Untuk mempelajari model dan API AI generatif yang tersedia di Vertex AI, buka Model Garden di konsol Google Cloud .

Buka Model Garden


Jika Anda mencari cara untuk menggunakan Gemini langsung dari aplikasi seluler dan web, lihat SDK klien Firebase AI Logic untuk aplikasi Swift, Android, Web, Flutter, dan Unity.

Memilih metode untuk membuat teks

Anda dapat berinteraksi dengan model Gemini melalui tiga cara. Tabel berikut membantu Anda memilih metode terbaik untuk kasus penggunaan Anda.

Metode Deskripsi Kasus Penggunaan
Vertex AI Studio UI berbasis web di konsol Google Cloud yang memungkinkan Anda membuat prototipe dan bereksperimen dengan perintah. Paling cocok untuk mempelajari kemampuan model, menguji berbagai parameter, dan melakukan iterasi pada desain perintah tanpa menulis kode.
REST API API web standar yang memungkinkan Anda mengirim permintaan ke endpoint model menggunakan metode HTTP. Mengintegrasikan pembuatan teks ke dalam aplikasi apa pun yang dapat membuat permintaan HTTP.
SDK (Python, Go, dll.) Library khusus bahasa yang menyederhanakan interaksi dengan API dengan menangani detail seperti autentikasi dan pemformatan permintaan. Direkomendasikan untuk membangun aplikasi dalam bahasa yang didukung. SDK memberikan integrasi yang lebih idiomatis dan andal daripada panggilan API mentah.

Buat teks

Untuk menguji dan melakukan iterasi pada perintah chat, gunakan konsol Google Cloud . Untuk mengirim prompt secara terprogram, gunakan REST API, Google Gen AI SDK, Vertex AI SDK untuk Python, atau library atau SDK lain yang didukung.

Anda dapat menggunakan petunjuk sistem untuk mengarahkan perilaku model berdasarkan kebutuhan atau kasus penggunaan tertentu. Misalnya, Anda dapat menentukan persona atau peran untuk chatbot yang merespons permintaan layanan pelanggan. Untuk mengetahui informasi selengkapnya, lihat contoh kode petunjuk sistem.

Konsol

Untuk menggunakan Vertex AI Studio guna mengirimkan perintah chat di konsolGoogle Cloud , lakukan hal berikut:

  1. Di bagian Vertex AI pada konsol Google Cloud , buka halaman Vertex AI Studio.

    Buka Vertex AI Studio

  2. Di Mulai percakapan, klik Chat teks.
  3. Opsional: Konfigurasikan model dan parameter:

    • Model: Pilih Gemini Pro.
    • Region: Pilih region yang ingin Anda gunakan.
    • Suhu: Gunakan penggeser atau kotak teks untuk memasukkan nilai suhu.

      Suhu digunakan untuk pengambilan sampel selama pembuatan respons, yang terjadi saat topP dan topK diterapkan. Suhu mengontrol tingkat keacakan dalam pemilihan token. Suhu yang lebih rendah cocok untuk perintah yang memerlukan respons yang kurang terbuka atau kreatif, sedangkan suhu yang lebih tinggi dapat memberikan hasil yang lebih beragam atau kreatif. Suhu 0 berarti token probabilitas tertinggi selalu dipilih. Dalam hal ini, respons untuk permintaan tertentu sebagian besar deterministik, tetapi sedikit variasi masih dapat dilakukan.

      Jika model menampilkan respons yang terlalu umum, terlalu pendek, atau model memberikan respons pengganti, coba tingkatkan suhunya.

    • Batas token output: Gunakan penggeser atau kotak teks untuk memasukkan nilai batas output maksimum.

      Jumlah maksimum token yang dapat dibuat dalam respons. Token terdiri dari sekitar empat karakter. 100 token setara dengan sekitar 60-80 kata.

      Tentukan nilai yang lebih rendah untuk respons yang lebih singkat dan nilai yang lebih tinggi untuk potensi respons yang lebih panjang.

    • Tambahkan urutan perhentian: Opsional. Masukkan urutan penghentian, yaitu serangkaian karakter yang mencakup spasi. Jika model menemukan urutan berhenti, pembuatan respons akan berhenti. Urutan perhentian tidak disertakan dalam respons, dan Anda dapat menambahkan hingga lima urutan perhentian.
  4. Opsional: Untuk mengonfigurasi parameter lanjutan, klik Lanjutan dan konfigurasi sebagai berikut:

    Klik untuk meluaskan konfigurasi lanjutan

    • Top-K: Gunakan penggeser atau kotak teks untuk memasukkan nilai untuk top-K.

      Top-K mengubah cara model memilih token untuk output. Top-K 1 berarti token yang dipilih berikutnya adalah yang paling mungkin di antara semua token dalam kosakata model (juga disebut decoding greedy), sedangkan top-K 3 berarti token berikutnya dipilih di antara tiga token yang paling mungkin dengan menggunakan suhu.

      Untuk setiap langkah pemilihan token, token top-K dengan probabilitas tertinggi akan diambil sampelnya. Kemudian token akan difilter lebih lanjut berdasarkan top-P dengan token akhir yang dipilih menggunakan pengambilan sampel suhu.

      Tentukan nilai yang lebih rendah untuk respons acak yang lebih sedikit dan nilai yang lebih tinggi untuk respons acak yang lebih banyak.

    • Top-P: Gunakan penggeser atau kotak teks untuk memasukkan nilai untuk top-P. Token dipilih dari yang paling mungkin hingga yang paling tidak mungkin sampai jumlah probabilitasnya sama dengan nilai top-P. Untuk hasil yang paling sedikit variabelnya, tetapkan top-P ke 0.
    • Aktifkan Perujukan: Tambahkan sumber perujukan dan jalur untuk menyesuaikan fitur ini.
  5. Masukkan perintah teks Anda di panel Prompt. Model ini menggunakan pesan sebelumnya sebagai konteks untuk respons baru.
  6. Opsional: Untuk menampilkan jumlah token teks, klik Lihat token. Anda dapat melihat token atau ID token perintah teks Anda.
    • Untuk melihat token dalam perintah teks yang ditandai dengan warna berbeda yang menandai batas setiap ID token, klik ID token ke teks. Token media tidak didukung.
    • Untuk melihat ID token, klik ID Token.

      Untuk menutup panel alat tokenizer, klik X, atau klik di luar panel.

  7. Klik Kirim.
  8. Opsional: Untuk menyimpan perintah Anda ke My prompts, klik Save.
  9. Opsional: Untuk mendapatkan kode Python atau perintah curl untuk perintah Anda, klik Get code.
  10. Opsional: Untuk menghapus semua pesan sebelumnya, klik Hapus percakapan

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • GENERATE_RESPONSE_METHOD: Jenis respons yang Anda inginkan dari model. Pilih metode yang menghasilkan cara yang Anda inginkan untuk menampilkan respons model:
    • streamGenerateContent: Respons di-streaming saat dibuat untuk mengurangi persepsi latensi bagi audiens manusia.
    • generateContent: Respons ditampilkan setelah sepenuhnya dihasilkan.
  • LOCATION: Region untuk memproses permintaan. Opsi yang tersedia meliputi:

    Klik untuk meluaskan daftar sebagian wilayah yang tersedia

    • us-central1
    • us-west4
    • northamerica-northeast1
    • us-east4
    • us-west1
    • asia-northeast3
    • asia-southeast1
    • asia-northeast1
  • PROJECT_ID: Project ID Anda.
  • MODEL_ID: ID model multimodal yang ingin Anda gunakan.
  • TEXT1
    Petunjuk teks yang akan disertakan dalam perintah pertama percakapan bolak-balik. Misalnya, What are all the colors in a rainbow?
  • TEXT2
    Petunjuk teks yang akan disertakan dalam perintah kedua. Misalnya, Why does it appear when it rains?
  • TEMPERATURE: Suhu digunakan untuk pengambilan sampel selama pembuatan respons, yang terjadi saat topP dan topK diterapkan. Suhu mengontrol tingkat keacakan dalam pemilihan token. Suhu yang lebih rendah cocok untuk perintah yang memerlukan respons yang kurang terbuka atau kreatif, sedangkan suhu yang lebih tinggi dapat memberikan hasil yang lebih beragam atau kreatif. Suhu 0 berarti token probabilitas tertinggi selalu dipilih. Dalam hal ini, respons untuk permintaan tertentu sebagian besar deterministik, tetapi sedikit variasi masih dapat dilakukan.

    Jika model menampilkan respons yang terlalu umum, terlalu pendek, atau model memberikan respons pengganti, coba tingkatkan suhunya.

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:

cat > request.json << 'EOF'
{
  "contents": [
    {
      "role": "user",
      "parts": { "text": "TEXT1" }
    },
    {
      "role": "model",
      "parts": { "text": "What a great question!" }
    },
    {
      "role": "user",
      "parts": { "text": "TEXT2" }
    }
  ],
  "generation_config": {
    "temperature": TEMPERATURE
  }
}
EOF

Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD"

PowerShell

Simpan isi permintaan dalam file bernama request.json. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:

@'
{
  "contents": [
    {
      "role": "user",
      "parts": { "text": "TEXT1" }
    },
    {
      "role": "model",
      "parts": { "text": "What a great question!" }
    },
    {
      "role": "user",
      "parts": { "text": "TEXT2" }
    }
  ],
  "generation_config": {
    "temperature": TEMPERATURE
  }
}
'@  | Out-File -FilePath request.json -Encoding utf8

Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD" | Select-Object -Expand Content

Anda akan menerima respons JSON yang mirip dengan berikut ini.

SDK

Anda dapat menggunakan Google Gen AI SDK untuk mengirim permintaan jika Anda menggunakan Gemini 2.0 Flash.

Contoh berikut menunjukkan permintaan pembuatan teks non-streaming.

Python

Instal

pip install --upgrade google-genai

Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.

Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True

from google import genai
from google.genai.types import HttpOptions

client = genai.Client(http_options=HttpOptions(api_version="v1"))
response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents="How does AI work?",
)
print(response.text)
# Example response:
# Okay, let's break down how AI works. It's a broad field, so I'll focus on the ...
#
# Here's a simplified overview:
# ...

Go

Pelajari cara menginstal atau mengupdate Go.

Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.

Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True

import (
	"context"
	"fmt"
	"io"

	"google.golang.org/genai"
)

// generateWithText shows how to generate text using a text prompt.
func generateWithText(w io.Writer) error {
	ctx := context.Background()

	client, err := genai.NewClient(ctx, &genai.ClientConfig{
		HTTPOptions: genai.HTTPOptions{APIVersion: "v1"},
	})
	if err != nil {
		return fmt.Errorf("failed to create genai client: %w", err)
	}

	resp, err := client.Models.GenerateContent(ctx,
		"gemini-2.5-flash",
		genai.Text("How does AI work?"),
		nil,
	)
	if err != nil {
		return fmt.Errorf("failed to generate content: %w", err)
	}

	respText := resp.Text()

	fmt.Fprintln(w, respText)
	// Example response:
	// That's a great question! Understanding how AI works can feel like ...
	// ...
	// **1. The Foundation: Data and Algorithms**
	// ...

	return nil
}

Node.js

Instal

npm install @google/genai

Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.

Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True

const {GoogleGenAI} = require('@google/genai');

const GOOGLE_CLOUD_PROJECT = process.env.GOOGLE_CLOUD_PROJECT;
const GOOGLE_CLOUD_LOCATION = process.env.GOOGLE_CLOUD_LOCATION || 'global';

async function generateContent(
  projectId = GOOGLE_CLOUD_PROJECT,
  location = GOOGLE_CLOUD_LOCATION
) {
  const ai = new GoogleGenAI({
    vertexai: true,
    project: projectId,
    location: location,
  });

  const response = await ai.models.generateContent({
    model: 'gemini-2.5-flash',
    contents: 'How does AI work?',
  });

  console.log(response.text);

  return response.text;
}

Java

Pelajari cara menginstal atau mengupdate Java.

Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.

Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True


import com.google.genai.Client;
import com.google.genai.types.Content;
import com.google.genai.types.GenerateContentResponse;
import com.google.genai.types.HttpOptions;
import com.google.genai.types.Part;

public class TextGenerationWithText {

  public static void main(String[] args) {
    // TODO(developer): Replace these variables before running the sample.
    String modelId = "gemini-2.5-flash";
    generateContent(modelId);
  }

  // Generates text with text input
  public static String generateContent(String modelId) {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (Client client =
        Client.builder()
            .location("global")
            .vertexAI(true)
            .httpOptions(HttpOptions.builder().apiVersion("v1").build())
            .build()) {

      GenerateContentResponse response =
          client.models.generateContent(modelId, "How does AI work?", null);

      System.out.print(response.text());
      // Example response:
      // Okay, let's break down how AI works. It's a broad field, so I'll focus on the ...
      //
      // Here's a simplified overview:
      // ...
      return response.text();
    }
  }
}

Respons streaming vs. non-streaming

Respons streaming dan non-streaming

Anda dapat memilih apakah model menghasilkan respons streaming atau respons non-streaming. Untuk respons streaming, Anda akan menerima setiap respons segera setelah token outputnya dibuat. Untuk respons non-streaming, Anda akan menerima semua respons setelah semua token output dibuat.

Contoh berikut menunjukkan permintaan pembuatan teks streaming.

Python

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI.

Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

from google import genai
from google.genai.types import HttpOptions

client = genai.Client(http_options=HttpOptions(api_version="v1"))
chat_session = client.chats.create(model="gemini-2.5-flash")

for chunk in chat_session.send_message_stream("Why is the sky blue?"):
    print(chunk.text, end="")
# Example response:
# The
#  sky appears blue due to a phenomenon called **Rayleigh scattering**. Here's
#  a breakdown of why:
# ...

Langkah berikutnya