El autor seleccionó el Programa de Socorro Directo para recibir una donación como parte del programa Escribir para Donaciones.
Introducción
Los modelos GPT de OpenAI han ganado popularidad debido a su amplio uso en la generación de contenido de texto para diversas tareas como redacción de correos electrónicos, respuestas a preguntas frecuentes de servicio al cliente y traducción de idiomas, entre otras.
Estos modelos GPT generalmente se utilizan a través de ChatGPT, un chatbot lanzado por OpenAI, o mediante APIs y bibliotecas que proporcionan un mayor control. Este tutorial te guiará sobre cómo aprovechar estos modelos utilizando la API de OpenAI dentro de tu proyecto web Django. Aprenderás cómo llamar a la API de Completado de Chat usando diferentes parámetros y cómo formatear y utilizar sus respuestas.
Al final de este tutorial, habrás creado un punto final de Django que, al ser llamado, envía una solicitud a OpenAI para construir una historia corta utilizando las palabras proporcionadas y devuelve su respuesta.
Prerrequisitos
Para completar este tutorial, necesitarás:
-
Un proyecto Django existente. Si estás empezando desde cero, puedes configurar un proyecto Django siguiendo el tutorial cómo configurar un entorno de desarrollo Django.
-
Una cuenta de OpenAI: Ve al sitio web de la plataforma de OpenAI y busca el botón ‘Registrarse’. Después de registrarte, debes verificar tu dirección de correo electrónico e ingresar información personal.
-
Una clave de API de OpenAI: Una vez que tu cuenta esté configurada, inicia sesión y ve a la sección de Claves de API desde tu panel de control. Haz clic en ‘Crear nueva clave secreta’. Tu clave de API se generará y se verá algo así como
sk-abcdefghijklmnop
. Asegúrate de guardar esta clave en un lugar seguro, ya que no podrás verla nuevamente. -
El paquete de Python de OpenAI: Si siguió el tutorial en el primer requisito previo, ya debería tener un entorno virtual llamado
env
activo dentro de un directorio llamadodjango-apps
. Asegúrese de que su entorno virtual esté activo al confirmar que su nombre aparece entre paréntesis al inicio de su indicador de terminal. Si no está activo, puede activarlo manualmente ejecutando el siguiente comando:
En su terminal desde el directorio django-apps
. Una vez que su entorno esté activo, ejecute lo siguiente para instalar el paquete de Python de OpenAI:
Paso 1 — Realizar llamadas a OpenAI
En este paso, agregarás tu clave de API de OpenAI al cliente de OpenAI y realizarás una llamada de API simple a la API de ChatCompletion. También examinarás la respuesta que recibes de la API.
Para comenzar, abre tu intérprete de Python:
Primero, importa el cliente de OpenAI y agrega tu clave de API al cliente:
Reemplaza "tu-clave-de-api"
con la clave de API real que obtuviste de la plataforma de OpenAI.
Ahora, hagamos una llamada de API a la API de ChatCompletion. Utiliza el método chat.completions.create()
:
En el código anterior, especificamos el modelo a utilizar como gpt-3.5-turbo
, agregamos un único objeto mensaje que contiene el rol usuario
(otras opciones son sistema
y asistente
) y el contenido / indicación contar del 1 al 10
.
Para ver la respuesta de la llamada de API, puedes imprimir el mensaje de respuesta, que debería contener los números del 1 al 10 en una pequeña lista agradable:
Salida:
¡Felicidades! Has realizado con éxito una llamada de API simple a OpenAI y has recuperado una respuesta. Formatearemos y utilizaremos la respuesta de la API para crear una historia corta en los próximos pasos.
Paso 2 — Trabajar con parámetros
Ahora que has realizado con éxito una llamada de API simple al API de ChatCompletion, exploremos cómo trabajar con parámetros para personalizar el comportamiento del modelo. Hay varios parámetros disponibles que te permiten controlar la generación de texto. Echaremos un vistazo a los tres siguientes.
1. Temperatura: El parámetro de temperatura determina qué tan aleatorio es el contenido generado. Un valor de temperatura más alto, como 0.8, dará respuestas más diversas y creativas, mientras que un valor de temperatura más bajo, como 0.1, producirá respuestas más similares. Por ejemplo:
Intentemos nuevamente temperature=0.1
para ver el texto recién generado:
El texto resultó ser el mismo. Ahora, intentemos temperature=0.8
dos veces:
2. Máximo de tokens: Esto te permite limitar la longitud del texto generado. Establecer un valor específico garantiza que la respuesta no exceda un cierto número de tokens. Los tokens son proporcionales al número de palabras en la respuesta. Por ejemplo:
Cambiando el valor a 20:
3. Transmisión: Esto determina si las respuestas deben ser transmitidas o devueltas. Cuando se establece en True
, la respuesta de la API se transmitirá, lo que significa que recibirás la salida en fragmentos a medida que se genere. Esto es útil para conversaciones largas o aplicaciones en tiempo real. Para habilitar la transmisión, agrega el parámetro stream
con un valor de True
a la llamada de API. Por ejemplo:
En el código anterior, la variable chunk_message
contiene el contenido del mensaje en cada fragmento devuelto por la API. Antes de agregar cada uno a la lista collected_messages
, verificamos si el fragmento es None
, ya que el contenido del último fragmento suele ser None
.
Utilizando estos parámetros, puedes personalizar el comportamiento del modelo y controlar las respuestas generadas para que se ajusten mejor a tu aplicación o proyecto. Experimenta con diferentes valores para obtener los resultados deseados.
En el siguiente paso, proporcionaremos algo de contexto al modelo en forma de un indicador de sistema.
Paso 3 — Creación de un indicador de sistema
En este paso, combinaremos toda la información que hemos aprendido y crearemos un indicador de sistema que proporcione contexto al modelo GPT, indicándole su propósito y especificando sus reglas.
Primero, creemos un módulo de Python que contenga una función para manejar esta tarea. Cierra el intérprete y crea un nuevo archivo llamado story_generator.py
en el directorio de tu proyecto de Django.
A continuación, puedes agregar la clave de la API de OpenAI a tus variables de entorno para no tener que agregarla directamente al archivo Python:
Abre story_generator.py
e dentro de él, crea un cliente de OpenAI y define una función llamada generate_story
que tome una colección de palabras como entrada:
En esta función, llamamos a una función separada, get_short_story
, para hacer la llamada a la API de OpenAI para obtener la historia y luego otra función, format_response,
, para formatear la respuesta de la API.
Ahora, enfoquémonos en la función get_short_story
. Agrega lo siguiente al final de tu archivo story_generator.py
:
En esta función, primero configuramos la indicación del sistema, que informa al modelo sobre la tarea que debe realizar y especifica qué tan larga debe ser la historia. Luego pasamos esta indicación del sistema a la API de Completado de Chat y devolvemos su respuesta.
Finalmente, podemos implementar la función format_response
. Agrega lo siguiente al final de tu archivo story_generator.py
:
Ahora puedes probar estas funciones llamando a la función generate_story
, pasando una colección de palabras como argumento e imprimiendo su respuesta. Agrega lo siguiente al final de tu archivo story_generator.py
:
Ahora guarda y sale del archivo. Ejecuta el script para ver la historia generada:
Salida:
¡Bastante interesante! Vamos a eliminar la línea con la declaración print
ya que llamaremos a la función generate_story
desde una vista de Django. Elimina la línea resaltada de tu archivo story_generator.py
:
Siéntete libre de experimentar con la solicitud del sistema y agregar más contexto y reglas para mejorar las historias generadas.
Continúa con el siguiente paso para integrar el módulo story_generator
en tu proyecto de Django.
Paso 4 – Integración con una vista del backend:
Debes crear una vista de Django y una ruta de URL para integrar el módulo story_generator
en tu proyecto de Django. En la vista, extraerás las palabras esperadas de la solicitud, llamarás a la función generate_story
y devolverás la respuesta.
Primero, abre el archivo views.py
en el directorio de tu aplicación de Django. Importa los módulos necesarios y agrega una función de vista llamada generate_story_from_words
:
A continuación, abre el archivo urls.py
y agrega un patrón de URL para la vista generate_story_from_words
:
Ahora, puedes solicitar el endpoint /generate-story/
. Por ejemplo, para probar usando curl, puedes hacer una solicitud GET al endpoint con las palabras esperadas como parámetro de consulta. Abre tu terminal y ejecuta el siguiente comando:
Asegúrate de reemplazar "http://tu_dominio"
con el dominio real donde se aloja tu proyecto de Django. Las palabras "gato,libro,computadora,sol,agua"
representan las palabras esperadas con las que deseas generar una historia. Puedes cambiarlas por las palabras que prefieras.
Después de ejecutar el comando, deberías ver la respuesta del servidor, que contendrá la historia generada:
Salida:
Conclusión
Después de completar este tutorial, has aprendido cómo integrar modelos de OpenAI GPT en tu proyecto Django usando la API de OpenAI. Has realizado llamadas a la API de Completado de Chat, personalizado el comportamiento del modelo trabajando con parámetros como temperatura y máximo de tokens, y creado un prompt de sistema para proporcionar contexto al modelo. También has integrado el módulo story_generator
en tu proyecto Django. Ahora, puedes generar cuentos cortos solicitando el endpoint /generate-story/
con las palabras esperadas como parámetro de consulta.
Para mejorar aún más tu proyecto Django, puedes explorar funcionalidades adicionales de la API de OpenAI y experimentar con diferentes prompts de sistema y parámetros para generar historias únicas y creativas.