Definir instruções do sistema

As instruções do sistema permitem que você dê ao modelo uma persona, defina o tom das respostas ou forneça 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 orientador de matemática prestativo".
  • Impor o formato de saída:por exemplo, "Sempre responda em tópicos".
  • Definir 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 com suporte, consulte Suporte a dispositivos da API Prompt.

Limitações

Não recomendamos o uso de instruções do sistema com o 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 consultas e otimizar a performance.

Como usar 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
}

Você pode simplificar ainda mais o código transmitindo 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 ao usar 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 prestativo e amigável e formate a saída de maneira agradável".
    • Claro (preferido): "Você é um assistente de suporte ao cliente amigável. Limite suas respostas a um máximo de três frases. Formate todas as listas usando tópicos".
  • 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 manter as instruções do sistema com menos de 150 palavras (100 a 200 tokens).
  • Teste e faça iterações:o comportamento do modelo pode variar com base na fraseologia. Teste com várias entradas do usuário para garantir que o modelo mantenha a persona de maneira consistente.