Introdução ao prompt engineering

Engenharia rápida com a API OpenAI

Fouad Trad

Machine Learning Engineer

O que é prompt engineering?

Criar prompts ou instruções para LLMs a fim de obter respostas desejadas

Imagem mostrando uma pessoa apresentando a terminologia de prompt engineering.

Engenharia rápida com a API OpenAI

Prompt engineering é como criar uma receita

Imagem mostrando um chef preparando uma refeição.

Engenharia rápida com a API OpenAI

Por que prompt engineering?

  Diagrama mostrando que prompts de alta qualidade geram respostas de alta qualidade

Engenharia rápida com a API OpenAI

Por que prompt engineering?

  Diagrama mostrando como a qualidade das respostas é afetada pela qualidade dos prompts de entrada. Prompts bons geram respostas boas; prompts ruins geram respostas ruins.

Engenharia rápida com a API OpenAI

Revisão: OpenAI API

  • Permite interagir com modelos da OpenAI
  • Já configurado neste curso
  • Acesso ao endpoint de Chat Completions

logotipo branco do ChatGPT

Engenharia rápida com a API OpenAI

Revisão: papéis da mensagem

Cada mensagem tem um de três papéis

Imagem mostrando um ícone para o papel de usuário.

Engenharia rápida com a API OpenAI

Revisão: papéis da mensagem

Cada mensagem tem um de três papéis

Imagem mostrando ícones para dois papéis: usuário e assistente.

Engenharia rápida com a API OpenAI

Revisão: papéis da mensagem

Cada mensagem tem um de três papéis

Imagem mostrando um ícone para cada um dos três papéis: usuário, sistema e assistente

Engenharia rápida com a API OpenAI

Revisão: papéis da mensagem

Cada mensagem tem um de três papéis

Imagem mostrando um ícone para cada um dos três papéis, com uma seta de comunicação entre sistema e assistente para enviar mensagens do sistema.

  • Mensagem do sistema: orienta o comportamento do modelo
Engenharia rápida com a API OpenAI

Revisão: papéis da mensagem

Cada mensagem tem um de três papéis

Imagem mostrando um ícone para cada um dos três papéis, com uma seta entre sistema e assistente para enviar mensagens do sistema, e outra entre usuário e assistente para enviar um prompt.

  • Mensagem do sistema: orienta o comportamento do modelo
  • Mensagem do usuário: prompt do usuário
Engenharia rápida com a API OpenAI

Revisão: papéis da mensagem

Cada mensagem tem um de três papéis

Imagem mostrando um ícone para cada um dos três papéis, com uma seta entre sistema e assistente para enviar mensagens do sistema, uma seta entre usuário e assistente para enviar um prompt e uma seta entre assistente e usuário para enviar a resposta.

  • Mensagem do sistema: orienta o comportamento do modelo
  • Mensagem do usuário: prompt do usuário
  • Mensagem do assistente: resposta ao prompt
Engenharia rápida com a API OpenAI

Revisão: parâmetros de controle

Imagem mostrando um ícone de termômetro com valores entre 0 e 2, onde 0 indica nenhuma aleatoriedade e 2 a maior aleatoriedade.

  • temperature: controla a aleatoriedade da resposta
Engenharia rápida com a API OpenAI

Revisão: parâmetros de controle

Imagem com um termômetro (0 a 2: 0 sem aleatoriedade, 2 máxima) e um controle deslizante representando `max_tokens`, onde valores menores geram respostas mais curtas.

  • temperature: controla a aleatoriedade da resposta
  • max_tokens: controla o tamanho da resposta
Engenharia rápida com a API OpenAI

Revisão: comunicando com a OpenAI API

prompt = "What is prompt engineering?"

client = OpenAI(api_key="api_key")
response = client.chat.completions.create(
model = "gpt-3.5-turbo",
messages = [{"role": "user", "content": prompt}],
temperature = 0 )
print(response.choices[0].message.content)
Prompt engineering refers to the process of designing and refining prompts or 
instructions given to a language model like ChatGPT in order to elicit desired 
responses or behaviors. It involves formulating specific guidelines or hints to 
guide the model's output towards a desired outcome.
Engenharia rápida com a API OpenAI

Criando a função get_response()

def get_response(prompt):

response = client.chat.completions.create( model = "gpt-3.5-turbo", messages = [{"role": "user", "content": prompt}], temperature = 0 )
return response.choices[0].message.content

Uso

response = get_response("What is prompt engineering?")
print(response)
Prompt engineering refers to the process of designing and refining prompts or instructions given to a language model 
like ChatGPT in order to elicit desired responses or behaviors. It involves formulating specific guidelines or hints 
to guide the model's output towards a desired outcome.
Engenharia rápida com a API OpenAI

Melhorando o prompt

prompt = "What is prompt engineering? Explain it in terms that can be understood 
by a 5-year-old"
response = get_response(prompt)
print(response)
Imagine que você tem um amigo muito esperto que entende e responde muitas 
perguntas. Mas às vezes ele pode não entender exatamente o que você quer ou dar 
a resposta errada. Então, prompt engineering é como dar instruções ou dicas bem 
claras ao seu amigo para ajudar a dar a melhor resposta possível.
Engenharia rápida com a API OpenAI

Vamos praticar!

Engenharia rápida com a API OpenAI

Preparing Video For Download...