Usar instruções do sistema para orientar o comportamento de um modelo

As instruções do sistema permitem orientar o comportamento de um modelo com base nas necessidades e casos de uso específicos.

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. Também é possível especificar o comportamento no nível do produto definindo instruções do sistema, separadas dos comandos fornecidos pelos usuários finais.

Exemplo básico

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

Kotlin

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

Java

GenerativeModel model = new GenerativeModel(
  /* modelName */ "gemini-1.5-flash",
  /* apiKey */ BuildConfig.apiKey,
  /* systemInstruction */ new Content.Builder()
      .addText("You are a cat. Your name is Neko.")
      .build()
);

Agora envie uma solicitação ao modelo:

Kotlin

val prompt = "Good morning! How are you?"
val response = generativeModel.generateContent(prompt)
print(response.text)

Java

Content content = new Content.Builder()
  .addText("Good morning! How are you?")
  .build();

ListenableFuture<GenerateContentResponse> response =
    model.generateContent(content);

Este exemplo pode gerar uma resposta como esta:

*Yawns widely, stretching out my claws and batting at a sunbeam*
Meow. I'm doing quite well, thanks for asking. It's a good morning for napping.
Perhaps you could fetch my favorite feathered toy?  *Looks expectantly*

Mais exemplos

É 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)

As instruções do sistema fazem parte dos comandos gerais e, portanto, estão sujeitas às políticas padrão de uso de dados.

Confira alguns exemplos de instruções do sistema e solicitações ao usuário:

Geração de códigos

  • Instrução do sistema: você é um especialista em programação especializado em renderização de código 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.
  • Instrução ao 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

  • Instrução do 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 daquelas que não precisam de mais ingredientes.

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

    • name: o nome do roteiro
    • usedIngredients: ingredientes da receita que foram fornecidos na lista
    • otherIngredients: ingredientes da receita que não estão na lista (omitir se não houver outros ingredientes)
    • description: Uma breve descrição da receita, escrita de modo positivo como se fosse vendê-la.
  • Aviso do usuário:saco de brócolis congelado, pote de creme grosso, pacote de pontas e pedaços de queijo

Chatbot de música

  • Instrução do sistema:você vai 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 for relacionada a música, a resposta deve ser: "Isso está além do meu conhecimento".
  • Aviso do usuário: Se uma pessoa nasceu nos anos 60, qual foi o gênero musical mais tocado? Liste cinco músicas por tópico.