Definir instruções do sistema

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.