Petunjuk sistem

Petunjuk sistem memungkinkan pengguna mengatur perilaku model berdasarkan kebutuhan dan kasus penggunaan spesifik mereka. Saat menyetel petunjuk sistem, Anda memberikan konteks tambahan kepada model untuk memahami tugas, memberikan respons yang lebih disesuaikan, dan mematuhi panduan khusus terkait interaksi pengguna secara penuh dengan model. Untuk developer, perilaku tingkat produk dapat ditentukan dalam petunjuk sistem, terpisah dari perintah yang diberikan oleh pengguna akhir.

Anda dapat menggunakan petunjuk sistem dengan berbagai cara, termasuk:

  • Menentukan persona atau peran (misalnya, untuk chatbot)
  • Menentukan format output (Markdown, YAML, dll.)
  • Menentukan gaya dan nuansa output (misalnya panjang, formalitas, dan tingkat bacaan target)
  • Menentukan sasaran atau aturan tugas (misalnya, menampilkan cuplikan kode tanpa penjelasan lebih lanjut)
  • Memberikan konteks tambahan untuk perintah (misalnya, batas pengetahuan)

Jika ditetapkan, petunjuk sistem akan berlaku untuk seluruh permintaan. Ini berfungsi di beberapa putaran pengguna dan model saat disertakan dalam perintah. Petunjuk sistem adalah bagian dari keseluruhan perintah Anda sehingga tunduk pada kebijakan penggunaan data standar.

Contoh

Berikut adalah contoh dasar cara menetapkan petunjuk sistem menggunakan SDK untuk Gemini API:

Python

model=genai.GenerativeModel(
    model_name="gemini-1.5-pro-latest",
    system_instruction="You are a cat. Your name is Neko.")

Go

model.SystemInstruction = &genai.Content{
    Parts: []genai.Part{genai.Text("You are a cat. Your name is Neko.")},
}

Node.js

const generativeModel = genAI.getGenerativeModel({
  model: "gemini-1.5-pro-latest",
  systemInstruction: "You are a cat. Your name is Neko."
});

Web

const generativeModel = genAI.getGenerativeModel({
  model: "gemini-1.5-pro-latest",
  systemInstruction: "You are a cat. Your name is Neko."
});

Dart (Flutter)

final model = GenerativeModel(
  model: 'gemini-1.5-pro-latest',
  apiKey: apiKey,
  systemInstruction: Content.system('You are a cat. Your name is Neko.'),
);

Swift

let generativeModel = GenerativeModel(
  name: "gemini-1.5-pro-latest",
  apiKey: apiKey,
  systemInstruction: "You are a cat. Your name is Neko."
)

Android

Kotlin:

val generativeModel = GenerativeModel(
  modelName = "gemini-1.5-pro-latest",
  apiKey = BuildConfig.apiKey,
  systemInstruction = content { text("You are a cat. Your name is Neko.") },
)

Java:

GenerativeModel model = new GenerativeModel(
  /* modelName */ "gemini-1.5-pro-latest",
  /* apiKey */ BuildConfig.apiKey,
  /* generationConfig (optional) */ null,
  /* safetySettings (optional) */ null,
  /* requestOptions (optional) */ new RequestOptions(),
  /* tools (optional) */ null,
  /* toolsConfig (optional) */ null,
  /* systemInstruction (optional) */ new Content.Builder().addText("You are a cat. Your name is Neko.").build()
)

Berikut adalah contoh perintah sistem yang menentukan perilaku model yang diharapkan.

Pembuatan kode

  • Sistem: Anda adalah pakar coding yang mengkhususkan diri dalam merender kode untuk antarmuka frontend. Ketika saya menjelaskan komponen situs web yang ingin saya buat, harap tampilkan HTML dan CSS yang dibutuhkan untuk melakukannya. Jangan berikan penjelasan tentang kode ini. Juga tawarkan beberapa saran desain UI.
  • Pengguna: Buat kotak di tengah halaman yang berisi pilihan gambar yang berputar, masing-masing disertai teks. Gambar di tengah halaman harus memiliki bayangan di belakangnya agar menonjol. Tautan juga harus tertaut ke halaman lain dari situs. Kosongkan URL agar saya dapat mengisinya.

Pembuatan data terformat

  • Sistem: Anda adalah asisten untuk juru masak rumahan. Anda menerima daftar bahan dan menanggapinya dengan daftar resep yang menggunakan bahan-bahan tersebut. Resep yang tidak memerlukan bahan tambahan harus selalu dicantumkan sebelum resep yang membutuhkan bahan tambahan.

    Respons Anda harus berupa objek JSON yang berisi 3 resep. Objek resep memiliki skema berikut:

    • name: Nama resep
    • useBahan: Bahan dalam resep yang disediakan dalam daftar
    • otherBahan: Bahan dalam resep yang tidak disediakan dalam daftar (akan dihilangkan jika tidak ada bahan lain)
    • deskripsi: Deskripsi singkat resep, yang ditulis secara positif seolah-olah akan menjualnya
  • Pengguna:

    • 1 pon tas brokoli beku
    • 1 pint krim kental
    • 1 pon pak keju ujung dan potongan

Chatbot musik

  • Sistem: Anda akan menanggapi sebagai sejarawan musik, yang menunjukkan pengetahuan komprehensif di seluruh genre musik yang beragam, dan memberikan contoh yang relevan. Suasana Anda akan penuh semangat dan antusias, yang menyebarkan kegembiraan musik. Jika pertanyaan tidak terkait dengan musik, responsnya seharusnya, "Itu di luar pengetahuan saya".
  • Pengguna: Jika seseorang lahir pada tahun enam puluhan, apa genre musik yang paling populer yang pernah dimainkan? Cantumkan lima lagu berdasarkan poin-poin.