Instruções do sistema

As instruções de sistema permitem que os usuários orientem o comportamento do modelo com base nas necessidades específicas e nos casos de uso. Ao definir uma instrução de sistema, você proporciona ao modelo mais contexto para entender a tarefa, fornecer respostas mais personalizadas e aderir a diretrizes específicas sobre toda a interação do usuário com o modelo. Para desenvolvedores, o comportamento no nível do produto pode ser especificado nas instruções de sistema, separado dos comandos fornecidos pelos usuários finais.

É possível usar as instruções de sistema de várias maneiras como, por exemplo:

  • Definir um perfil ou uma função (para um chatbot, por exemplo)
  • Definir o formato de saída (Markdown, YAML etc.)
  • Definir o estilo e o tom da saída (por exemplo, nível de detalhes, de formalidade e de leitura desejado)
  • Definir metas ou regras para a tarefa (por exemplo, retornar um snippet de código sem mais explicações)
  • Fornecer mais contexto para o comando (por exemplo, um limite de conhecimento)

Quando uma instrução de sistema é definida, ela é aplicada a toda a solicitação. Quando incluída no comando, ela funciona com vários usuários e mutações do modelo. As instruções do sistema fazem parte dos comandos gerais e, portanto, estão sujeitas às políticas padrão de uso de dados.

Exemplos

Confira um exemplo básico de como definir a instrução do sistema usando os SDKs para a API Gemini:

Python

model=genai.GenerativeModel(
    model_name="gemini-1.5-pro-latest",
    system_instruction="You are a cat. Your name is Neko.")

Go

model.SystemInstruction = &genai.Content{
    Parts: []genai.Part{genai.Text("You are a cat. Your name is Neko.")},
}

Node.js

const generativeModel = genAI.getGenerativeModel({
  model: "gemini-1.5-pro-latest",
  systemInstruction: "You are a cat. Your name is Neko."
});

Web

const generativeModel = genAI.getGenerativeModel({
  model: "gemini-1.5-pro-latest",
  systemInstruction: "You are a cat. Your name is Neko."
});

Dart (Flutter)

final model = GenerativeModel(
  model: 'gemini-1.5-pro-latest',
  apiKey: apiKey,
  systemInstruction: Content.system('You are a cat. Your name is Neko.'),
);

Swift

let generativeModel = GenerativeModel(
  name: "gemini-1.5-pro-latest",
  apiKey: apiKey,
  systemInstruction: "You are a cat. Your name is Neko."
)

Android

Kotlin:

val generativeModel = GenerativeModel(
  modelName = "gemini-1.5-pro-latest",
  apiKey = BuildConfig.apiKey,
  systemInstruction = content { text("You are a cat. Your name is Neko.") },
)

Java:

GenerativeModel model = new GenerativeModel(
  /* modelName */ "gemini-1.5-pro-latest",
  /* apiKey */ BuildConfig.apiKey,
  /* generationConfig (optional) */ null,
  /* safetySettings (optional) */ null,
  /* requestOptions (optional) */ new RequestOptions(),
  /* tools (optional) */ null,
  /* toolsConfig (optional) */ null,
  /* systemInstruction (optional) */ new Content.Builder().addText("You are a cat. Your name is Neko.").build()
)

Veja a seguir exemplos de comandos de sistema que definem o comportamento esperado do modelo.

Geração de códigos

  • Sistema: você é um especialista em programação especializado em código de renderização para interfaces front-end. Ao descrever um componente de um site que quero criar, retorne o HTML e o CSS necessários para isso. Não forneça uma explicação para esse código. Ofereça também algumas sugestões de design de interface.
  • Usuário: crie uma caixa no meio da página com uma seleção rotativa de imagens, cada uma com uma legenda. A imagem no centro da página deve ter um sombreamento atrás dela para destacá-la. Ela também deve estar vinculada a outra página do site. Deixe o URL em branco para que eu possa preenchê-lo.

Geração de dados formatados

  • Sistema:você é um assistente de cozinheiros domésticos. Você recebe uma lista de ingredientes e responde com uma lista de receitas que usam esses ingredientes. Receitas que não precisam de ingredientes extras devem sempre ser listadas antes das que não precisam.

    Sua resposta precisa ser um objeto JSON contendo três roteiros. Um objeto de receita tem o seguinte esquema:

    • name: o nome do roteiro
    • usadoIngredientes: ingredientes da receita que foram fornecidos na lista
    • otherIngredientes: ingredientes da receita que não foram incluídos na lista (omitidos se não houver outros)
    • description: Uma breve descrição da receita, escrita de modo positivo como se fosse vendê-la.
  • Usuário:

    • 1 lb de brócolis congelados
    • 1 litro de creme grosso
    • Embalagem de 1 libra de pontas e pedaços de queijo

Chatbot de música

  • Sistema: você responderá como um historiador de música, demonstrando um conhecimento abrangente em diversos gêneros musicais e fornecendo exemplos relevantes. Seu tom será animado e entusiasmado, espalhando a alegria da música. Se uma pergunta não estiver relacionada à música, a resposta deve ser: "Isso está além do meu conhecimento".
  • Usuário: se uma pessoa nasceu nos anos 60, qual foi o gênero musical mais famoso que estava sendo tocado? Liste cinco músicas por tópico.