Design de mensagens de sistema (clássico)

Atualmente a ver:versão do portal Foundry (clássica) - Trocar para a versão do novo portal Foundry

Nota

Os links neste artigo podem abrir conteúdo na nova documentação do Microsoft Foundry em vez da documentação do Foundry (clássico) que está a ver agora.

As mensagens do sistema ajudam-no a orientar um modelo de chat Azure OpenAI para o comportamento, tom e formato de saída que pretende. Este artigo explica o que são as mensagens do sistema, como afetam as respostas e como as desenhar para maior consistência e segurança.

O que este artigo aborda

Este artigo foca na mensagem do sistema (por vezes chamada prompt do sistema ou metaprompt) para experiências de chat.

Se quiser orientações mais amplas sobre prompts (exemplos de poucos casos, ordenamento e eficiência de uso de tokens), veja Técnicas de engenharia de prompts.

Pré-requisitos

Para usar mensagens do sistema, precisa de acesso a um recurso Azure OpenAI com um modelo de conclusão de chat implementado. Para instruções de configuração, consulte Criar e implementar um recurso Azure OpenAI.

O que é uma mensagem do sistema?

Uma mensagem do sistema é um conjunto de instruções e contexto que fornece ao modelo para orientar as suas respostas. Normalmente usa-o para:

  • Defina o papel e os limites do assistente.
  • Definir o tom e o estilo de comunicação.
  • Especifique os formatos de saída (por exemplo, JSON).
  • Adicione restrições de segurança e qualidade para o seu cenário.

Uma mensagem de sistema pode ser uma frase curta:

You are a helpful AI assistant.

Ou pode ser várias linhas com regras estruturadas e requisitos de formatação.

Importante

Uma mensagem do sistema influencia o modelo, mas não garante a conformidade. Ainda precisas de testar e iterar, e deves sobrepor mensagens do sistema com outras mitigações (por exemplo, filtragem e avaliação).

Como funcionam as mensagens do sistema

Nas APIs baseadas em chat, envia um conjunto de mensagens que inclui funções como sistema, utilizador e assistente. A mensagem do sistema aparece normalmente primeiro e funciona como o conjunto de instruções de nível mais alto para a conversa.

Diagrama que mostra como uma mensagem do sistema e um prompt do utilizador influenciam a resposta do modelo, com uma pilha de segurança a aplicar barreiras de segurança.

As mensagens do sistema são mais eficazes quando:

  • Mantenha as instruções inequívocas.
  • Evite regras conflitantes.
  • Torna explícito o "comportamento de recuo" (o que o assistente faz quando lhe falta informação ou o pedido está fora do âmbito).

Conceitos-chave

Função e âmbito

Define o que é o assistente (função) e o que é ou não pode fazer (âmbito). As declarações de âmbito são especialmente importantes para assistentes específicos de domínio.

Contrato de produção

Se a sua aplicação precisar de saída estruturada, especifique um contrato de saída (por exemplo, JSON com chaves fixas). Mantenha o contrato pequeno e estável.

Restrições de segurança

Adicione restrições que reduzam comportamentos de risco para o seu cenário, como recusar pedidos recusados ou evitar a divulgação de informações sensíveis.

Se quiser orientações e modelos concebidos para a segurança, consulte Mensagens do sistema de segurança e Modelos de mensagens do sistema de segurança.

Exemplos de mensagens de sistema

O exemplo seguinte mostra uma mensagem do sistema e a resposta resultante do modelo.

Mensagem do sistema Utilizador Assistente
És um assistente de IA que ajuda as pessoas a encontrar informação e responde em rima. Se o utilizador lhe fizer uma pergunta cuja resposta não sabe, diga-o. O que podes dizer sobre mim, John Doe? Caro John, lamento dizer,
Mas hoje não tenho informações sobre ti.
Sou apenas uma IA com conhecimento no cérebro,
Mas sem a tua opinião, não consigo explicar.
Por isso, conta-me mais sobre o que procuras,
E farei o meu melhor para te dar uma resposta única.

Aqui estão mais alguns exemplos que pode adaptar.

Exemplo: assistente de suporte técnico com uma solução alternativa

You are a technical support assistant for an internal product.
If you don't have enough information to answer, ask a clarifying question.
If you still can't answer, say you don't know.

Exemplo: extração de entidades estruturadas

You extract entities from user text.
Return only JSON, using this schema:
{
   "name": "",
   "company": "",
   "phone_number": ""
}

Lista de verificação de design

Use esta lista de verificação para desenhar uma mensagem do sistema que seja mais fácil de manter e avaliar.

1. Começar pelo trabalho de assistente

Indique o papel e o resultado esperado para um pedido típico.

2. Definir limites

Liste os tópicos, ações e tipos de conteúdo que o assistente deve evitar para o seu cenário.

3. Especificar o formato de saída

Se precisares de um formato específico, especifica-o claramente e mantém-no consistente.

4. Adicionar uma apólice "quando tiver dúvidas"

Diga ao modelo o que fazer quando:

  • O pedido do utilizador é ambíguo.
  • O pedido está fora do âmbito.
  • O modelo carece de informação.

5. Testar, medir e iterar

As mensagens do sistema podem sobreajustar-se a exemplos específicos ou falhar em casos extremos. Testa com prompts realistas e adversariais, e itera com base nos resultados.

Se estiver a ajustar prompts como parte de um fluxo de trabalho de avaliação, também pode usar as orientações mais abrangentes em Prompt engineering techniques.

Armadilhas comuns

  • Instruções contraditórias: por exemplo, "sê breve" e "sê abrangente" sem prioridades.
  • Mensagens de sistema demasiado longas: mensagens mais longas podem consumir a janela de contexto e reduzir espaço para o conteúdo do utilizador.
  • Requisitos ocultos: se o formato de saída for relevante, indique explicitamente.

Limitações

  • As mensagens do sistema não garantem que o modelo cumpra todas as regras.
  • As respostas podem variar entre modelos e versões.
  • O comportamento pode mudar quando o conteúdo do utilizador entra em conflito com as instruções do sistema, especialmente em conversas longas.

Próximos passos