En el contexto de la API de OpenAI, los roles “system”, “assistant” y “user” se refieren a los diferentes participantes en una conversación generada por el modelo de lenguaje.
System: El rol de “system” se utiliza para proporcionar instrucciones o establecer el comportamiento global de la conversación. Por ejemplo, el “system” puede proporcionar una introducción inicial, definir reglas o guiar al “assistant” en su respuesta.
Assistant: El rol de “assistant” se refiere al modelo de lenguaje de OpenAI, que es el asistente virtual o agente conversacional desarrollado por OpenAI. El “assistant” genera respuestas en función del contexto de la conversación y las instrucciones que recibe de los roles “system” y “user”.
User: El rol de “user” representa al usuario o interlocutor humano en la conversación. El “user” envía mensajes o preguntas al “assistant” y recibe las respuestas generadas por el modelo.
En la API de OpenAI, la conversación se estructura como una lista de objetos, donde cada objeto tiene una propiedad “role” y una propiedad “content”. El “role” define si el mensaje es del “system”, “user” o “assistant”, y “content” contiene el texto del mensaje correspondiente.
Al especificar la conversación en la API de OpenAI, se pueden alternar entre los roles “user” y “assistant” para simular una interacción en tiempo real.
Ejemplo simple de un Chatbot interactivo con GPT-3.5-turbo en Python:
import openai
def chat_with_bot():
# Iniciamos con un mensaje del sistema
messages = [
{"role": "system", "content": "You are a helpful assistant."}
]
while True:
# El usuario ingresa un mensaje
user_input = input("User: ")
# Agregamos el mensaje del usuario a la lista de mensajes
messages.append({"role": "user", "content": user_input})
# Llamamos a la API de OpenAI para obtener la respuesta del bot
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=messages
)
# Obtenemos la respuesta generada por el bot
bot_response = response['choices'][0]['message']['content']
# Mostramos la respuesta del bot en la consola
print("Bot:", bot_response)
# Agregamos la respuesta del bot a la lista de mensajes
messages.append({"role": "assistant", "content": bot_response})
# Iniciamos la conversación con el bot
chat_with_bot()
El código utiliza la biblioteca openai
para interactuar con el modelo GPT-3.5-turbo de OpenAI y generar respuestas de chat. La función chat_with_bot
implementa un bucle infinito donde el usuario puede ingresar mensajes y recibir respuestas del bot.
En cada iteración del bucle:
- El usuario ingresa un mensaje y se agrega a la lista
messages
con el rol “user”. - Se llama a la API de OpenAI con los mensajes existentes en
messages
. - Se obtiene la respuesta del bot a partir de la respuesta de la API y se muestra en la consola.
- La respuesta del bot se agrega a
messages
con el rol “assistant”.
De esta manera, el bucle se repite indefinidamente, permitiendo una conversación fluida con el bot. El contexto de la conversación se mantiene a medida que se agregan mensajes a messages
, lo que permite que el bot genere respuestas en función de los mensajes anteriores.
Recuerda que necesitarás tener una cuenta en OpenAI y una clave de API válida para poder utilizar el servicio de completado de chat. Asegúrate de tener una cuenta configurada y una clave de API válida antes de ejecutar el código
Nota del maestro: Recuerda que este curso es gratuito y no cuenta con soporte. Si tienes problemas o dudas, puedes escribirme en Twitter haciendo clic aquí y esperar a que tenga un tiempo libre para poder contestarte. También puedes considerar tomar el curso profesional en nuestra plataforma de Azul School, que incluye soporte prioritario para todos nuestros cursos y muchos más beneficios. Haz clic aquí para comprar tu membresía anual u obtener más información al respecto.