Com as instruções do sistema, você pode dar uma persona ao modelo, definir o tom das respostas ou fornecer regras específicas que ele precisa seguir. Essas instruções são separadas do comando do usuário e são tratadas com maior prioridade pelo modelo para garantir que ele se comporte conforme o esperado.
Os casos de uso comuns incluem:
- Definir uma persona: por exemplo, "Você é um professor de matemática prestativo".
- Formato da resposta: por exemplo, "Sempre responda em tópicos".
- Definição de restrições: por exemplo, "Não responda a perguntas sobre política".
Pré-requisitos
As instruções do sistema funcionam em dispositivos com o Gemini Nano V3 e versões mais recentes. Para uma lista de dispositivos compatíveis, consulte Suporte a dispositivos com acesso direto ao modelo.
Limitações
Não recomendamos o uso de instruções do sistema com armazenamento em cache de prefixo. Em geral, use instruções do sistema para instruções curtas que definem como o modelo deve se comportar. Use o armazenamento em cache de prefixo se precisar repetir uma grande parte do comando em várias consultas e precisar otimizar o desempenho.
Como usar as instruções do sistema
Para fornecer instruções do sistema, crie um objeto SystemInstruction e transmita-o
ao builder 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
}
Para simplificar ainda mais o código, transmita as instruções do sistema diretamente
para o builder de solicitações 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
}
Práticas recomendadas
Confira algumas práticas recomendadas para usar as instruções do sistema:
- Seja claro e direto: o modelo segue instruções claras e diretas melhor do que as ambíguas. Confira alguns exemplos:
- Vago (evite): "Não escreva muito. Tente ser útil e amigável e formate a saída de maneira adequada."
- Claro (preferencial): "Você é um assistente de suporte ao cliente amigável. Limite suas respostas a no máximo três frases. Formate as listas usando marcadores."
- Seja conciso: embora as instruções do sistema sejam eficientes, instruções muito longas podem consumir a janela de contexto limitada do modelo.
- Considere as contagens de tokens: verifique se a lógica de contagem de tokens inclui as instruções do sistema para evitar subestimar o tamanho da solicitação. Recomendamos que as instruções do sistema tenham menos de 150 palavras (100 a 200 tokens).
- Teste e faça iterações: o comportamento do modelo pode variar de acordo com a frase. Teste com várias entradas do usuário para garantir que o modelo mantenha a persona de forma consistente.