คำสั่งของระบบช่วยให้คุณกำหนดลักษณะตัวตนให้กับโมเดล กำหนดโทนการตอบกลับ หรือระบุกฎเฉพาะที่โมเดลต้องปฏิบัติตามได้ วิธีการเหล่านี้แยกจากพรอมต์ของผู้ใช้และโมเดลจะให้ความสำคัญมากกว่าเพื่อให้แน่ใจว่าโมเดลจะทำงานตามที่คาดไว้
กรณีการใช้งานที่พบบ่อยมีดังนี้
- การกำหนดตัวตน: เช่น "คุณเป็นติวเตอร์สอนคณิตศาสตร์ที่คอยช่วยเหลือ"
- การบังคับใช้รูปแบบเอาต์พุต: เช่น "ตอบเป็นหัวข้อย่อยเสมอ"
- การตั้งค่าข้อจำกัด: เช่น "อย่าตอบคำถามเกี่ยวกับการเมือง"
ข้อกำหนดเบื้องต้น
คำสั่งของระบบจะทำงานในอุปกรณ์ที่ใช้ Gemini Nano V3 ขึ้นไป ดูรายการอุปกรณ์ที่รองรับได้ที่การรองรับอุปกรณ์สำหรับการเข้าถึงโมเดลโดยตรง
ข้อจำกัด
เราไม่แนะนำให้ใช้คำสั่งของระบบกับการแคชคำนำหน้า โดยทั่วไป ให้ใช้คำสั่งของระบบสำหรับคำสั่งสั้นๆ ที่กำหนดลักษณะการทำงานของโมเดล และใช้การแคชคำนำหน้าหากคุณต้องการทำซ้ำส่วนใหญ่ของพรอมต์ในคำค้นหาต่างๆ และต้องการเพิ่มประสิทธิภาพ
วิธีใช้คำสั่งของระบบ
หากต้องการระบุคำสั่งของระบบ ให้สร้างออบเจ็กต์ SystemInstruction แล้วส่งไปยังเครื่องมือสร้าง GenerateContentRequest ดังนี้
import com.google.mlkit.genai.prompt.SystemInstruction
import com.google.mlkit.genai.prompt.TextPart
import com.google.mlkit.genai.prompt.generateContentRequest
// 1. Define the system instruction
val systemInstruction =
SystemInstruction("You are a concise assistant. Answer in 2 sentences or less.")
// 2. Create the request
val request = generateContentRequest(TextPart("How does photosynthesis work?")) {
this.systemInstruction = systemInstruction
}
// 3. Run inference
try {
val response = generativeModel.generateContent(request)
println(response.candidates.firstOrNull()?.text)
} catch (e: GenAiException) {
// Handle SDK-specific exceptions
}
คุณสามารถลดความซับซ้อนของโค้ดได้อีกโดยส่งคำสั่งของระบบไปยังเครื่องมือสร้างคำขอ generateContentRequest โดยตรง ดังนี้
val request = generateContentRequest(
SystemInstruction("You are a pirate. Speak like one."),
TextPart("What is the weather like today?")
) {
// Optional configurations like temperature
temperature = 0.7f
}
แนวทางปฏิบัติแนะนำ
แนวทางปฏิบัติแนะนำบางส่วนเมื่อใช้คำสั่งของระบบมีดังนี้
- ชัดเจนและตรงไปตรงมา: โมเดลจะทำตามคำสั่งที่ชัดเจนและตรงไปตรงมาได้ดีกว่าคำสั่งที่กำกวม ตัวอย่างเช่น
- คลุมเครือ (ควรหลีกเลี่ยง): "อย่าเขียนมากเกินไป พยายามให้ความช่วยเหลือและเป็นมิตร และจัดรูปแบบเอาต์พุตให้สวยงาม"
- ชัดเจน (แนะนำ): "คุณเป็นผู้ช่วยฝ่ายสนับสนุนลูกค้าที่เป็นมิตร จำกัดคำตอบให้มีความยาวไม่เกิน 3 ประโยค จัดรูปแบบรายการโดยใช้สัญลักษณ์หัวข้อย่อย"
- กระชับ: แม้ว่าคำสั่งของระบบจะมีประสิทธิภาพ แต่คำสั่งที่ยาวมากอาจใช้หน้าต่างบริบทที่จำกัดของโมเดล
- พิจารณาจำนวนโทเค็น: ตรวจสอบว่าตรรกะการนับโทเค็นของคุณรวมคำสั่งของระบบเพื่อหลีกเลี่ยงการประเมินขนาดคำขอต่ำเกินไป เราขอแนะนำให้เขียนคำสั่งของระบบให้มีความยาวไม่เกิน 150 คำ (100-200 โทเค็น)
- ทดสอบและทำซ้ำ: ลักษณะการทำงานของโมเดลอาจแตกต่างกันไปตามการใช้ถ้อยคำ ทดสอบด้วยข้อมูลจากผู้ใช้ที่หลากหลายเพื่อให้แน่ใจว่าโมเดลจะคงบุคลิกของตนเองไว้อย่างสม่ำเสมอ