Engenharia de prompts iterativa e refinamento

Engenharia rápida com a API OpenAI

Fouad Trad

Machine Learning Engineer

Engenharia de prompts iterativa

  • Nenhum prompt é perfeito no começo
  • Engenharia de prompts é um processo iterativo em que:
    • Criamos um prompt
    • Enviamos ao modelo
    • Observamos e analisamos a saída
    • Iteramos para melhorar o prompt

Imagem representando um ciclo. Um círculo azul com quatro setas em sequência.

Engenharia rápida com a API OpenAI

Refinando prompts

Prompt inicial
prompt = "Generate an Excel sheet containing
five student names and their grades"

print(get_response(prompt))
Desculpa, mas como uma IA baseada em texto,
não consigo gerar diretamente uma planilha do Excel.
Posso, no entanto, te ajudar a criar uma
representação de exemplo dos dados solicitados.
Prompt refinado
prompt = "Generate a table that I can copy 
to Excel, containing five student names and 
their grades"
print(get_response(prompt))
| Nome do aluno | Nota |
|---------------|------|
| Aluno 1       |  90  |
| Aluno 2       |  85  |
| Aluno 3       |  95  |
| Aluno 4       |  88  |
| Aluno 5       |  92  |
Engenharia rápida com a API OpenAI

Exemplo: analisando uma função em Python

code = '''
def calculate_rectangle_area(length, width):
    area = length * width
    return area
'''

Imagem mostrando um retângulo e a fórmula para calcular sua área a partir da largura e do comprimento. Área = comprimento\*largura.

Engenharia rápida com a API OpenAI

Exemplo: prompt inicial

prompt = f"""
  Analyze the code delimited by triple backticks with one sentence
  ```{code}```.
"""
print(get_response(prompt))
O código calcula a área de um retângulo com base no comprimento e na largura.
Engenharia rápida com a API OpenAI

Exemplo: refinando o prompt

Ajustamos o prompt para obter a linguagem de programação

prompt = f"""
  Analyze the code delimited by triple backticks and provide its programming 
  language with one sentence 
  ```{code}```.
"""
print(get_response(prompt))
O código fornecido é uma função em Python que calcula a área de um
retângulo com base no comprimento e na largura.
Engenharia rápida com a API OpenAI

Exemplo: refinando o prompt

Ajustamos o prompt para obter saída estruturada

prompt = f"""
  For the function delimited by triple backticks, provide in a structured format
  the following:
  - description: one sentence short description
  - language: the programming language used
  - input: the inputs to the function
  - output: the output returned by the function
  ```{code}```.
"""
print(get_response(prompt))
Engenharia rápida com a API OpenAI

Exemplo: refinando o prompt

description: Esta função calcula a área de um retângulo.

language: Python

input:
 - length: O comprimento do retângulo.
 - width: A largura do retângulo.

output:
 - area: A área calculada do retângulo, que é o produto de comprimento 
 e largura.
Engenharia rápida com a API OpenAI

Refinamento de prompt com few-shot

  • Classificação de descrições do clima

Prompt inicial

prompt = """
Clear skies and a gentle breeze. -> Sunny
Heavy rain and thunderstorms expected. -> Rainy
Fresh snowfall with freezing temperatures. -> 
"""
print(get_response(prompt))
Snowy
Engenharia rápida com a API OpenAI

Refinamento de prompt com few-shot

  • Classificação de descrições do clima

Prompt inicial

prompt = """
Clear skies and a gentle breeze. -> Sunny
Heavy rain and thunderstorms expected. -> Rainy
The wind of change brought a refreshing breeze to the company's operations. -> 
"""
print(get_response(prompt))
Windy
Engenharia rápida com a API OpenAI

Refinamento de prompt com few-shot

Prompt refinado

prompt = """
Clear skies and a gentle breeze. -> Sunny
Heavy rain and thunderstorms expected. -> Rainy
The political climate in the country was stormy -> Unknown
The wind of change brought a refreshing breeze to the company's operations. -> 
"""
print(get_response(prompt))
Unknown
Engenharia rápida com a API OpenAI

Refinar prompts por tipo de prompt

  • Prompts few-shot: refine os exemplos
  • Prompts em várias etapas: refine as etapas-guia
  • Chain-of-thought e self-consistency: refine a descrição do problema

Imagem com três linhas de controles deslizantes, com uma mão ajustando-os para refletir o refinamento.

Engenharia rápida com a API OpenAI

Vamos praticar!

Engenharia rápida com a API OpenAI

Preparing Video For Download...