Introducción al prompt engineering

Ingeniería rápida con la API de OpenAI

Fouad Trad

Machine Learning Engineer

¿Qué es el prompt engineering?

Diseñar prompts o instrucciones para LLMs para obtener las respuestas deseadas

Imagen de una persona presentando la terminología de prompt engineering.

Ingeniería rápida con la API de OpenAI

El prompt engineering es como crear una receta

Imagen de un chef preparando un plato.

Ingeniería rápida con la API de OpenAI

¿Por qué prompt engineering?

  Diagrama que muestra que prompts de alta calidad dan respuestas de alta calidad

Ingeniería rápida con la API de OpenAI

¿Por qué prompt engineering?

  Diagrama que muestra cómo la calidad de las respuestas depende de la calidad de los prompts: alta calidad da respuestas de alta calidad y baja calidad da respuestas de baja calidad.

Ingeniería rápida con la API de OpenAI

Repaso: OpenAI API

  • Permite interactuar con modelos de OpenAI
  • Ya configurado en este curso
  • Acceso al endpoint Chat Completions

Logotipo de ChatGPT en blanco.

Ingeniería rápida con la API de OpenAI

Repaso: roles de mensaje

Cada mensaje tiene uno de tres roles

Imagen con un icono para el rol de usuario.

Ingeniería rápida con la API de OpenAI

Repaso: roles de mensaje

Cada mensaje tiene uno de tres roles

Imagen con iconos para dos roles: usuario y asistente.

Ingeniería rápida con la API de OpenAI

Repaso: roles de mensaje

Cada mensaje tiene uno de tres roles

Imagen con un icono para cada uno de los tres roles: usuario, sistema y asistente

Ingeniería rápida con la API de OpenAI

Repaso: roles de mensaje

Cada mensaje tiene uno de tres roles

Imagen con un icono para cada uno de los tres roles, con una flecha de comunicación entre sistema y asistente para enviar mensajes del sistema.

  • Mensaje del sistema: guía el comportamiento del modelo
Ingeniería rápida con la API de OpenAI

Repaso: roles de mensaje

Cada mensaje tiene uno de tres roles

Imagen con un icono para cada uno de los tres roles, con una flecha de comunicación entre sistema y asistente para enviar mensajes del sistema, y otra entre usuario y asistente para enviar un prompt.

  • Mensaje del sistema: guía el comportamiento del modelo
  • Mensaje del usuario: prompt del usuario
Ingeniería rápida con la API de OpenAI

Repaso: roles de mensaje

Cada mensaje tiene uno de tres roles

Imagen con un icono para cada uno de los tres roles, con una flecha entre sistema y asistente para mensajes del sistema, otra entre usuario y asistente para enviar el prompt, y otra entre asistente y usuario para enviar la respuesta.

  • Mensaje del sistema: guía el comportamiento del modelo
  • Mensaje del usuario: prompt del usuario
  • Mensaje del asistente: respuesta al prompt
Ingeniería rápida con la API de OpenAI

Repaso: parámetros de control

Imagen de un termómetro con valores entre 0 y 2: 0 sin aleatoriedad y 2 máxima aleatoriedad.

  • temperature: controla la aleatoriedad de la respuesta
Ingeniería rápida con la API de OpenAI

Repaso: parámetros de control

Imagen de un termómetro con valores entre 0 y 2 (0 sin aleatoriedad, 2 máxima) y un control deslizante que representa max_tokens: valores bajos dan respuestas más cortas.

  • temperature: controla la aleatoriedad de la respuesta
  • max_tokens: controla la longitud de la respuesta
Ingeniería rápida con la API de OpenAI

Repaso: comunicación con la 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.
Ingeniería rápida con la API de OpenAI

Creación de la función 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.
Ingeniería rápida con la API de OpenAI

Mejora del 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 you have a very smart friend who can understand and answer lots of 
questions. But sometimes, they might not understand exactly what you want or give 
the wrong answer. So, prompt engineering is like giving your friend really clear 
instructions or hints to help them give you the best answer possible.
Ingeniería rápida con la API de OpenAI

¡Vamos a practicar!

Ingeniería rápida con la API de OpenAI

Preparing Video For Download...