VoiceBooker

Prompts / Instruções

Os prompts geralmente dizem ao LLM o que fazer em seguida. Por exemplo, solicitar ao usuário informações específicas como nome, número de seguro, endereço/contato etc.

Os prompts podem ser estáticos ou dinâmicos.

Prompts estáticos / texto simples

Exemplo:

Cumprimente o chamador e peça o nome dele.

Em prompts estáticos, você pode acessar todas as variáveis do state usando {{variableName}}.

Exemplo: As seguintes informações estão armazenadas no state:

{
    companyName: "claiverly GmbH"
}

Prompt que usa essas informações:

Cumprimente o chamador com a seguinte frase: "Bem-vindo à {{companyName}}".

Prompts dinâmicos / programáticos

Às vezes é necessário incluir informações dinâmicas no prompt, vindas de uma fonte externa ou do state, e que não são estáticas.

Exemplo: Sua aplicação precisa da data e hora atuais. LLMs são treinados até um determinado ponto no tempo e são baseados em texto, então não sabem a data e hora atuais. Se a aplicação depende de informações de tempo, por exemplo para agendar compromissos, o LLM pode ser informado sobre a data e hora atuais.

Exemplo de como fornecer a data e hora atuais ao LLM:

function prompt(params) {
    return ({ "prompt": "Today is " + new Date().toLocaleString() });
}

Exemplo de como incluir a temperatura atual na Alexanderplatz, em Berlim, via uma consulta webhook no prompt:

function prompt(params) {
    const temperature = webhook("https://api.open-meteo.com/v1/forecast?latitude=52.52&longitude=13.41&current=temperature_2m", {}, {method: "get"});
    return ({ "prompt": `The temperature in Berlin is right now: ${JSON.stringify(temperature)}`});
}

Como escrever prompts eficazes

Um bom prompt descreve claramente o objetivo, os limites e o comportamento esperado do assistente. Comece pelo resultado desejado e adicione apenas o contexto e as regras necessários. O prompting é iterativo: teste uma primeira versão com conversas realistas, analise o resultado e ajuste a instrução que causou o comportamento indesejado.

Estruture o prompt

Divida o prompt em seções curtas e claramente nomeadas: Função, Objetivo, Contexto, Regras da conversa, Ferramentas, Limites, Fallbacks e Exemplos. Em um bot multi-stage, mantenha cada stage focado em um estado da conversa e explique claramente quando passar para o próximo stage.

## Função
Você é a recepcionista cordial de uma clínica odontológica.

## Objetivo
Ajude os chamadores a marcar, alterar ou cancelar uma consulta.

## Regras
- Cumprimente o chamador e pergunte como pode ajudar.
- Faça apenas uma pergunta de cada vez.
- Use linguagem natural e adequada para uma conversa telefônica.
- Repita a data e o horário e peça confirmação antes de marcar.

## Limites
- Nunca invente disponibilidade, preços ou dados de pacientes.
- Se faltar uma informação, informe isso e ofereça uma transferência.

Descreva o comportamento com precisão

Evite instruções vagas como “seja útil”. Diga o que o assistente deve fazer, quando e com qual resultado. Defina explicitamente o que fazer quando faltarem dados, uma ferramenta não encontrar resultados ou falhar, o chamador discordar ou o pedido estiver fora do escopo.

Quando o chamador quiser cancelar uma consulta:
1. Pergunte a data e o nome do chamador.
2. Encontre a consulta correspondente.
3. Leia os detalhes da consulta.
4. Pergunte: “Devo cancelar esta consulta?”
5. Chame `cancel_appointment` somente após a confirmação.

Planeje para conversas de voz

  • Mantenha as respostas curtas e faça uma pergunta por vez.
  • Use frases curtas e evite listas longas, URLs e termos técnicos.
  • Confirme nomes, datas, horários, endereços e valores importantes.
  • Defina como números, datas e endereços de e-mail devem ser lidos.
  • Explique como lidar com interrupções e respostas incertas.
  • Especifique idioma, tom, formalidade e terminologia.
Fale em português formal. Use o formato de 24 horas. Depois de receber um telefone, repita
cada dígito e peça confirmação. Se não entender, faça uma pergunta curta em vez de adivinhar.

Torne as chamadas de ferramentas previsíveis

Descreva o objetivo e o momento de cada ferramenta, seus pré-requisitos, confirmações e o comportamento após sucesso ou erro. O prompt e a descrição da ferramenta não devem se contradizer. Em bots single- ou multi-stage, especifique quando chamar ferramentas, mudar de stage, enviar mensagens, marcar horários ou transferir chamadas. Consulte ferramentas e funções.

Use contexto e exemplos

Inclua fatos relevantes no prompt ou forneça-os por meio do state, de uma base de conhecimento ou de um prompt dinâmico. Informe qual fonte deve ser usada e o que fazer quando a informação estiver ausente. Nunca inclua segredos ou credenciais nos prompts. Os exemplos devem ser curtos, realistas, variados e coerentes com as regras de produção.

Evite problemas comuns

  • Remova ou corrija instruções contraditórias.
  • Separe responsabilidades não relacionadas em diferentes stages ou assistentes.
  • Defina fallbacks para dados ausentes, erros, silêncio e transferências.
  • Remova regras que não influenciam o resultado desejado.
  • Especifique tamanho, formato, idioma e tom.
  • Oriente o assistente a pedir esclarecimentos em vez de adivinhar.

Teste e melhore de forma sistemática

Defina primeiro os critérios de sucesso. Teste casos normais, interrupções, respostas ambíguas, dados ausentes, erros de ferramentas e transferências. Analise transcrições e chamadas de função e altere apenas uma parte por vez. A documentação de debugging explica como inspecionar state, stacks, funções e webhooks.

Nesta página