OpenAI
Esta página se tradujo automáticamente. Ver el artículo original en inglés.

Buenas prácticas para la ingeniería de prompts con la API de OpenAI

Cómo dar instrucciones claras y eficaces a los modelos de OpenAI

Actualización: 8 hours ago

Cómo funciona la ingeniería de prompts

Debido a la forma en que se entrenan los modelos de OpenAI, existen formatos de prompt específicos que funcionan especialmente bien y producen resultados del modelo más útiles.

La guía oficial de ingeniería de prompts de OpenAI suele ser el mejor lugar para empezar a obtener consejos sobre prompts.

A continuación presentamos varios formatos de prompt que creemos que funcionan bien, pero no dudes en explorar formatos distintos, que pueden ajustarse mejor a tu tarea.

Reglas prácticas y ejemplos

Nota: "{text input here}" es un marcador de posición para texto/contexto real

1. Usa el modelo más reciente

Para obtener los mejores resultados, en general recomendamos usar los modelos más recientes y más capaces. Los modelos más nuevos suelen ser más fáciles de trabajar con ingeniería de prompts.


Nota: Hay algunas diferencias que conviene tener en cuenta al hacer prompts para un modelo de razonamiento frente a un modelo GPT. Más detalles aquí.

2. Coloca las instrucciones al principio del prompt y usa ### o """ para separar la instrucción del contexto

Menos eficaz ❌:

Resume el texto siguiente como una lista con viñetas de los puntos más importantes.

{text input here}

Mejor ✅:

Resume el texto siguiente como una lista con viñetas de los puntos más importantes.

Texto: """
{text input here}
"""

3. Sé específico, descriptivo y tan detallado como sea posible sobre el contexto, el resultado, la longitud, el formato, el estilo, etc. deseados

Sé específico sobre el contexto, el resultado, la longitud, el formato, el estilo, etc.

Menos eficaz ❌:

Escribe un poema sobre OpenAI. 

Mejor ✅:

Escribe un poema corto e inspirador sobre OpenAI, centrado en el reciente lanzamiento del producto DALL-E (DALL-E es un modelo de ML de texto a imagen) al estilo de {famous poet}

4. Expresa el formato de salida deseado mediante ejemplos

Menos eficaz ❌:

Extrae las entidades mencionadas en el texto siguiente. Extrae estos 4 tipos de entidades: nombres de empresas, nombres de personas, temas específicos y temas generales.

Texto: {text}

Muestra y explica: los modelos responden mejor cuando se les muestran requisitos de formato específicos. Esto también facilita analizar de forma programática varias salidas de manera fiable.

Mejor ✅:

Extrae las entidades importantes mencionadas en el texto siguiente. Primero extrae todos los nombres de empresas, después todos los nombres de personas, luego temas específicos que encajen con el contenido y, por último, temas generales predominantes

Formato deseado:
Nombres de empresas: <lista_de_nombres_de_empresas_separados_por_comas>
Nombres de personas: -||-
Temas específicos: -||-
Temas generales: -||-

Texto: {text}

5. Empieza con sin ejemplos, luego con pocos ejemplos; si ninguno funciona, ajusta el modelo

✅ Sin ejemplos

Extrae palabras clave del texto siguiente.

Texto: {text}

Palabras clave:

✅ Pocos ejemplos: proporciona un par de ejemplos

Extrae palabras clave de los textos correspondientes a continuación.

Texto 1: Stripe proporciona API que los desarrolladores web pueden usar para integrar el procesamiento de pagos en sus sitios web y aplicaciones móviles.
Palabras clave 1: Stripe, procesamiento de pagos, API, desarrolladores web, sitios web, aplicaciones móviles
##
Texto 2: OpenAI ha entrenado modelos de lenguaje de vanguardia que son muy buenos para comprender y generar texto. Nuestra API proporciona acceso a estos modelos y puede usarse para resolver prácticamente cualquier tarea que implique procesar lenguaje.
Palabras clave 2: OpenAI, modelos de lenguaje, procesamiento de texto, API.
##
Texto 3: {text}
Palabras clave 3:

✅ Ajuste fino: consulta las mejores prácticas de ajuste fino aquí.

6. Reduce las descripciones “vacías” e imprecisas

Menos eficaz ❌:

La descripción de este producto debe ser bastante corta, solo unas pocas frases y no mucho más.

Mejor ✅:

Usa un párrafo de 3 a 5 frases para describir este producto.

7. En lugar de decir solo lo que no hay que hacer, di qué hacer en su lugar

Menos eficaz ❌:

La siguiente es una conversación entre un agente y un cliente. NO PIDAS EL NOMBRE DE USUARIO NI LA CONTRASEÑA. NO LO REPITAS.

Cliente: No puedo iniciar sesión en mi cuenta.
Agente:

Mejor ✅:

La siguiente es una conversación entre un agente y un cliente. El agente intentará diagnosticar el problema y sugerir una solución, evitando hacer cualquier pregunta relacionada con PII. En lugar de pedir PII, como el nombre de usuario o la contraseña, remite al usuario al artículo de ayuda www.samplewebsite.com/help/faq

Cliente: No puedo iniciar sesión en mi cuenta.
Agente:

8. Específico para la generación de código: usa “palabras iniciales” para orientar el modelo hacia un patrón concreto

Menos eficaz ❌:

# Escribe una función sencilla de python que
# 1. Me pida un número en millas
# 2. Convierta millas a kilómetros

En el siguiente ejemplo de código, añadir “import” le indica al modelo que debe empezar a escribir en Python. (De forma similar, “SELECT” es una buena pista para el inicio de una sentencia SQL.)

Mejor ✅:

# Escribe una función sencilla de python que
# 1. Me pida un número en millas
# 2. Convierta millas a kilómetros

import

9. Usa la función Generate Anything

Los desarrolladores pueden usar la función 'Generate Anything' para describir una tarea o un resultado esperado en lenguaje natural y recibir un prompt adaptado.

Más información sobre cómo usar la función 'Generate Anything'.

Parámetros

En general, vemos que model y temperature son los parámetros que se usan con más frecuencia para alterar la salida del modelo.

  1. model - Los modelos de mayor rendimiento suelen ser más caros y pueden tener más latencia.

  2. temperature - Una medida de la frecuencia con la que el modelo genera un token menos probable. Cuanto mayor sea la temperature, más aleatoria (y normalmente creativa) será la salida. Sin embargo, esto no es lo mismo que la “veracidad”. Para la mayoría de los casos de uso factual, como la extracción de datos y las preguntas y respuestas veraces, lo mejor es una temperature de 0.

  3. max_completion_tokens (longitud máxima) - No controla la longitud de la salida, sino un límite estricto para la generación de tokens. Lo ideal es no alcanzar este límite con frecuencia, ya que tu modelo se detendrá cuando crea que ha terminado o cuando alcance una secuencia de parada que hayas definido.

  4. stop (secuencias de parada) - Un conjunto de caracteres (tokens) que, al generarse, hará que la generación de texto se detenga.

Para ver otras descripciones de parámetros, consulta la referencia de la API.

¿Te ha resultado útil este artículo?