Introducción a la ingeniería de prompts

Ingeniería de prompts con la API de OpenAI

Fouad Trad

Machine Learning Engineer

¿Qué es la ingeniería de prompt?

Creación de prompts o instrucciones para los LLM con el fin de obtener las respuestas deseadas

Una imagen de un ingeniero que presenta la terminología de la ingeniería de prompts.

Ingeniería de prompts con la API de OpenAI

La ingeniería de prompts es como elaborar una receta

Imagen de un chef preparando un plato.

Ingeniería de prompts con la API de OpenAI

¿Por qué la ingeniería de prompts?

Un diagrama visual que muestra que los prompt de alta calidad generan respuestas de alta calidad

Ingeniería de prompts con la API de OpenAI

¿Por qué la ingeniería de prompts?

Un diagrama visual que muestra cómo afecta la calidad de los prompts de entrada a la calidad de las respuestas. Los prompts de alta calidad generan respuestas de alta calidad, y los prompts de baja calidad generan respuestas de baja calidad.

Ingeniería de prompts con la API de OpenAI

Recapitulemos: OpenAI API

  • Permite interactuar con modelos de OpenAI
  • Ya está configurado en este curso
  • Acceso al punto de conexión Chat Completions

chatgpt_logo_white.png

Ingeniería de prompts con la API de OpenAI

Repaso: roles de los mensajes

Cada mensaje tiene uno de los tres roles

Imagen que muestra un icono para el rol de usuario.

Ingeniería de prompts con la API de OpenAI

Repaso: roles de los mensajes

Cada mensaje tiene uno de los tres roles

Imagen que muestra un icono de los dos roles: usuario y asistente.

Ingeniería de prompts con la API de OpenAI

Repaso: roles de los mensajes

Cada mensaje tiene uno de los tres roles

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

Ingeniería de prompts con la API de OpenAI

Repaso: roles de los mensajes

Cada mensaje tiene uno de tres roles

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

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

Repaso: roles de los mensajes

Cada mensaje tiene uno de los tres roles

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

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

Resumen: roles de los mensajes

Cada mensaje tiene una de las tres funciones

Imagen que muestra un icono para cada uno de los tres roles, con una flecha de comunicación entre el sistema y el asistente para enviar los mensajes del sistema, otra entre el usuario y el asistente para enviar un prompt, y otra entre el asistente y el 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 del usuario
Ingeniería de prompts con la API de OpenAI

Resumen: parámetros de control

Imagen que muestra el icono de un termómetro con los valores posibles entre 0 y 2: 0 indica que no hay aleatoriedad y 2, el máximo nivel de aleatoriedad.

  • temperature: controla la aleatoriedad de la respuesta
Ingeniería de prompts con la API de OpenAI

Resumen: parámetros de control

Imagen que muestra el icono de un termómetro con los valores posibles entre 0 y 2: 0 indica que no hay aleatoriedad y 2, el nivel máximo de aleatoriedad. También aparece el icono de un control deslizante que representa el parámetro max_tokens, donde los valores más bajos dan lugar a respuestas más cortas.

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

Resumen: comunicación con la API de OpenAI

prompt = "What is prompt engineering?"

client = OpenAI(api_key="api_key")
response = client.chat.completions.create(
model = "gpt-4o-mini",
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 de prompts con la API de OpenAI

Crear la función get_response()

def get_response(prompt):

response = client.chat.completions.create( model = "gpt-4o-mini", 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 de prompts 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 de prompts con la API de OpenAI

¡Practiquemos!

Ingeniería de prompts con la API de OpenAI

Preparing Video For Download...