Thiết lập chỉ dẫn cho hệ thống

Chỉ dẫn hệ thống cho phép bạn cung cấp cho mô hình một tính cách, đặt giọng điệu cho câu trả lời hoặc cung cấp các quy tắc cụ thể mà mô hình phải tuân theo. Những hướng dẫn này tách biệt với câu lệnh của người dùng và được mô hình xử lý với mức độ ưu tiên cao hơn để đảm bảo mô hình hoạt động như mong đợi.

Các trường hợp sử dụng phổ biến bao gồm:

  • Thiết lập vai trò: Ví dụ: "Bạn là một gia sư toán nhiệt tình".
  • Áp dụng định dạng đầu ra: Ví dụ: "Luôn trả lời bằng dấu đầu dòng".
  • Đặt ra các quy tắc ràng buộc: Ví dụ: "Không trả lời các câu hỏi về chính trị".

Điều kiện tiên quyết

Chỉ dẫn hệ thống hoạt động trên các thiết bị chạy Gemini Nano phiên bản 3 trở lên. Để biết danh sách các thiết bị được hỗ trợ, hãy xem phần Hỗ trợ thiết bị truy cập trực tiếp vào mô hình.

Các điểm hạn chế

Bạn không nên sử dụng chỉ dẫn hệ thống với tính năng lưu tiền tố vào bộ nhớ đệm. Nhìn chung, hãy sử dụng chỉ dẫn hệ thống cho các chỉ dẫn ngắn xác định cách mô hình nên hoạt động; sử dụng tính năng lưu vào bộ nhớ đệm tiền tố nếu bạn cần lặp lại một phần lớn câu lệnh trên các truy vấn và cần tối ưu hoá hiệu suất.

Cách sử dụng chỉ dẫn hệ thống

Để cung cấp chỉ dẫn hệ thống, hãy tạo một đối tượng SystemInstruction và truyền đối tượng đó đến trình tạo 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
}

Bạn có thể đơn giản hoá mã hơn nữa bằng cách truyền trực tiếp chỉ dẫn hệ thống vào trình tạo yêu cầu 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
}

Các phương pháp hay nhất

Sau đây là một số phương pháp hay nhất khi sử dụng chỉ dẫn hệ thống:

  • Rõ ràng và trực tiếp: Mô hình sẽ làm theo các hướng dẫn rõ ràng, trực tiếp tốt hơn so với các hướng dẫn mơ hồ. Dưới đây là một số ví dụ:
    • Mơ hồ (nên tránh): "Đừng viết quá nhiều. Hãy cố gắng tỏ ra hữu ích và thân thiện, đồng thời định dạng kết quả sao cho đẹp mắt."
    • Rõ ràng (nên dùng): "Bạn là một trợ lý hỗ trợ khách hàng thân thiện. Giới hạn câu trả lời của bạn ở mức tối đa 3 câu. Định dạng danh sách bằng dấu đầu dòng."
  • Ngắn gọn: Mặc dù chỉ dẫn hệ thống rất mạnh mẽ, nhưng những chỉ dẫn quá dài có thể làm tiêu tốn cửa sổ ngữ cảnh hạn chế của mô hình.
  • Tính đến số lượng mã thông báo: Đảm bảo rằng logic đếm mã thông báo của bạn bao gồm cả chỉ dẫn hệ thống để tránh ước tính thấp hơn kích thước yêu cầu. Bạn nên giữ cho hướng dẫn hệ thống dưới 150 từ (100-200 mã thông báo).
  • Thử nghiệm và lặp lại: Hành vi của mô hình có thể thay đổi tuỳ theo cách diễn đạt. Kiểm thử bằng nhiều dữ liệu đầu vào của người dùng để đảm bảo mô hình duy trì tính cách một cách nhất quán.