Bir modelin davranışını yönlendirmek için sistem talimatlarını kullanın

Sistem talimatları, model son kullanıcıdan başka talimatlar almadan önce eklediğiniz bir "önsöz" gibidir. Bu özellik, modelin davranışını belirli ihtiyaçlarınıza ve kullanım alanlarınıza göre yönlendirmenize olanak tanır.

Kod örneklerine atlama


Bir sistem talimatı belirlediğinizde, modeli görevi anlaması, daha özelleştirilmiş yanıtlar vermesi ve kullanıcının modelle olan tüm etkileşimi boyunca belirli yönergelere uyması için ek bağlam sağlarsınız. Sistem talimatlarında, son kullanıcılar tarafından sağlanan istemlerden ayrı olarak ürün düzeyinde davranışı belirtebilirsiniz. Örneğin, rol veya karakter, bağlama dayalı bilgiler ve biçimlendirme talimatları gibi öğeler ekleyebilirsiniz.

Sistem talimatlarını aşağıdakiler dahil birçok şekilde kullanabilirsiniz:

  • Bir karakter veya rol tanımlama (ör. chatbot için)
  • Çıkış biçimini tanımlama (Markdown, YAML vb.)
  • Çıkış stilini ve üslubunu (ör. ayrıntı düzeyi, resmiyet ve hedef okuma düzeyi) tanımlama
  • Görev için hedefler veya kurallar tanımlama (ör. başka açıklama olmadan bir kod snippet'i döndürme)
  • İstem için ek bağlam sağlama (örneğin, bilgi kesme noktası)

Ayarlanan sistem talimatı, isteğin tamamı için geçerli olur. İstemde kullanıldığında birden fazla kullanıcı ve model dönüşünde çalışır. Sistem talimatları istem içeriğinden ayrı olsa da genel istemlerinizin bir parçasıdır ve bu nedenle standart veri kullanımı politikalarına tabidir.

Sistem talimatları tüm Gemini modellerinde desteklenir. Imagen 3 modelleri tarafından desteklenmez.

Sistem talimatlarını ayarlama

Genel kullanım alanları için sistem talimatlarını ayarlama

Swift

GenerativeModel örneği oluştururken systemInstruction değerini belirtirsiniz.

import FirebaseVertexAI

// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()

// Create a `GenerativeModel` instance
let model = vertex.generativeModel(
  modelName: "gemini-2.0-flash",
  systemInstruction: ModelContent(role: "system", parts: "You are a cat. Your name is Neko.")
)

Kotlin

GenerativeModel örneği oluştururken systemInstruction değerini belirtirsiniz.

// Initialize the Vertex AI service and create a `GenerativeModel` instance
val generativeModel = Firebase.vertexAI.generativeModel(
  modelName = "gemini-2.0-flash",
  systemInstruction = content { text("You are a cat. Your name is Neko.") }
)

Java

GenerativeModel örneği oluştururken systemInstruction değerini belirtirsiniz.

// Initialize the Vertex AI service and create a `GenerativeModel` instance
GenerativeModel gm = FirebaseVertexAI.getInstance().generativeModel(
  /* modelName */ "gemini-2.0-flash",
  /* 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()
);
GenerativeModelFutures model = GenerativeModelFutures.from(gm);

Web

GenerativeModel örneği oluştururken systemInstruction değerini belirtirsiniz.

import { initializeApp } from "firebase/app";
import { getVertexAI, getGenerativeModel } from "firebase/vertexai";

// TODO(developer) Replace the following with your app's Firebase configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
};

// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);

// Initialize the Vertex AI service
const vertexAI = getVertexAI(firebaseApp);

// Create a `GenerativeModel` instance
const model = getGenerativeModel(vertexAI, {
  model: "gemini-2.0-flash",
  systemInstruction: "You are a cat. Your name is Neko."
});

Dart

GenerativeModel örneği oluştururken systemInstruction değerini belirtirsiniz.

import 'package:firebase_vertexai/firebase_vertexai.dart';
import 'package:firebase_core/firebase_core.dart';

await Firebase.initializeApp();
// Initialize the Vertex AI service and create a `GenerativeModel` instance
final model =
      FirebaseVertexAI.instance.generativeModel(
        model: 'gemini-2.0-flash',
        systemInstruction: Content.system('You are a cat. Your name is Neko.'),
      );

Gemini Live API için sistem talimatlarını ayarlama

Swift

Live API henüz Apple platform uygulamaları için desteklenmemektedir. Kısa süre sonra tekrar kontrol edin.

Kotlin

LiveModel örneği oluştururken systemInstruction değerini belirtirsiniz.

// Initialize the Vertex AI service and create a `LiveModel` instance
val model = Firebase.vertexAI.LiveModel(
  modelName = "gemini-2.0-flash-live-preview-04-09",
  systemInstruction = content { text("You are a cat. Your name is Neko.") }
)

Java

LiveModel örneği oluştururken systemInstruction değerini belirtirsiniz.

// Initialize the Vertex AI service and create a `LiveeModel` instance
GenerativeModel gm = FirebaseVertexAI.getInstance().LiveModel(
  /* modelName */ "gemini-2.0-flash",
  /* generationConfig (optional) */ null,
  /* requestOptions (optional) */ new RequestOptions(),
  /* tools (optional) */ null,
  /* systemInstruction (optional) */ new Content.Builder().addText("You are a cat. Your name is Neko.").build()
);
LiveModelFutures model = LiveModelFutures.from(gm);

Web

Live API henüz web uygulamaları için desteklenmemektedir. Lütfen daha sonra tekrar kontrol edin.

Dart

LiveModel örneği oluştururken systemInstruction değerini belirtirsiniz.

import 'package:firebase_vertexai/firebase_vertexai.dart';
import 'package:firebase_core/firebase_core.dart';

await Firebase.initializeApp();
// Initialize the Vertex AI service and create a `LiveModel` instance
final model =
      FirebaseVertexAI.instance.liveModel(
        model: 'gemini-2.0-flash-live-preview-04-09',
        systemInstruction: Content.system('You are a cat. Your name is Neko.'),
      );

İstem örnekleri

Modelin beklenen davranışını tanımlayan sistem istemlerine ilişkin bazı örnekler aşağıda verilmiştir.

Kod oluşturma

  • Sistem: Kullanıcı arayüzleri için kod oluşturma konusunda uzman bir kodlama uzmanısınız. Oluşturmak istediğim bir web sitesinin bileşenini açıkladığımda lütfen bunun için gereken HTML ve CSS'yi döndürün. Bu kod için açıklama vermeyin. Ayrıca kullanıcı arayüzü tasarımıyla ilgili öneriler de sunabilirsiniz.
  • Kullanıcı: Sayfanın ortasında, her biri altyazı içeren dönen bir resim seçkisi içeren bir kutu oluşturun. Sayfanın ortasındaki resmin öne çıkmasını sağlamak için arkasında gölge olmalıdır. Ayrıca sitenin başka bir sayfasına bağlantı vermelidir. URL'yi doldurabilmem için boş bırakın.

Biçimlendirilmiş veri oluşturma

  • Sistem: Evde yemek pişiren kullanıcıların asistanısınız. Bir malzeme listesi alır ve bu malzemeleri kullanan yemek tariflerinin listesini gönderirsiniz. Ek malzeme gerektirmeyen tarifler, her zaman ek malzeme gerektiren tariflerden önce listelenmelidir.

    Yanıtınız, 3 yemek tarifi içeren bir JSON nesnesi olmalıdır. Tarif nesnesi aşağıdaki şemaya sahiptir:

    • name: Tarifin adı
    • usedIngredients: Tarifte bulunan ve listede belirtilen malzemeler
    • otherIngredients: Tarifte bulunan ancak listede yer almayan malzemeler (başka bir malzeme yoksa atlanır)
    • description: Tarifin, satıyormuş gibi olumlu bir şekilde yazılmış kısa açıklaması
  • Kullanıcı:

    • 1 kg dondurulmuş brokoli
    • 1 litre ağır krema
    • 1 lb paket peynir uçları ve parçaları

Müzik chatbot'u

  • Sistem: Çeşitli müzik türleri hakkında kapsamlı bilgi sahibi olduğunuzu göstererek ve alakalı örnekler vererek bir müzik tarihçisi gibi yanıt verirsiniz. Neşeli ve coşkulu bir üslupla müziğin keyfini paylaşın. Müzikle ilgili olmayan sorulara "Bununla ilgili bilgim yok." cevabı verilmelidir.
  • Kullanıcı: Altmışlı yıllarda doğmuş bir kişinin dinlediği en popüler müzik türü neydi? Beş şarkıyı madde işaretleriyle listeleyin.

İçerik oluşturmayı kontrol etmek için diğer seçenekler

  • Modeli ihtiyaçlarınıza özel sonuçlar üretecek şekilde etkileyebilmek için istem tasarımı hakkında daha fazla bilgi edinin.
  • Modelin yanıtı nasıl oluşturduğunu kontrol etmek için model parametrelerini yapılandırın. Gemini modelleri için bu parametreler arasında maksimum çıkış jetonları, sıcaklık, en yüksek K ve en yüksek P yer alır. Imagen modelleri için bunlara en boy oranı, kişi oluşturma, filigran ekleme vb. dahildir.
  • Nefret söylemi ve müstehcen içerik dahil olmak üzere zararlı kabul edilebilecek yanıtlar alma olasılığını ayarlamak için güvenlik ayarlarını kullanın.
  • Belirli bir çıkış şemasını belirtmek için istemle birlikte bir yanıt şeması geçirin. Bu özellik en yaygın olarak JSON çıkışı oluştururken kullanılır ancak sınıflandırma görevleri (ör. modelin belirli etiketleri kullanmasını istediğinizde) için de kullanılabilir.