Track
Tutorial de la API de OpenAI Assistants
El OpenAI Dev Day marcó un hito importante en la inteligencia artificial, al desvelar un conjunto de innovadores servicios de IA, como GPTs, GPTs App Store, GPT-4 Turbo y la innovadora API Assistants.
Esta API pone a disposición de los desarrolladores herramientas avanzadas de inteligencia artificial que permiten crear asistentes personalizados capaces de realizar diversas tareas.
En este tutorial, nos adentramos en el mundo de los Asistentes, ofreciendo una exploración detallada de sus capacidades, aplicaciones prácticas en distintos sectores y una guía paso a paso para implementarlos utilizando Python. Acompáñanos en la navegación por los entresijos de la creación de tu propio asistente de IA personalizado.
Visión general de la API de asistentes
En el momento de escribir este artículo, la API de Asistentes es beta, y el equipo de desarrolladores de OpenAI está trabajando activamente para incluir más funciones, pero antes de eso, ¡exploremos lo que ofrece la versión actual!
Esta sección ofrece más información sobre el funcionamiento de los Asistentes y la interacción entre los componentes subyacentes.
¿Cómo funciona Assistants API?
Las dos columnas vertebrales de los Asistentes son los modelos y las herramientas de OpenAI.
- Existe un variado conjunto de modelos, entre los que se incluyen: GPT-4, GPT-4 Turbo, GPT-3.5, GPT-3, DALL-E, TTS, Whisper, Embeddings, Moderación. Estos modelos son utilizados por los Asistentes para realizar una tarea inteligente específica.
- Las herramientas, por su parte, permiten a los asistentes acceder a las herramientas alojadas en OpenAI, como el intérprete de código y la recuperación de conocimientos. Incluso permite a los usuarios crear sus propias herramientas utilizando la función de llamada a funciones.
Exploremos ahora las cinco etapas principales de la implantación de un Asistente.
- Crear y describir un Asistente: Un Asistente es una IA especializada desarrollada mediante modelos, directrices y diversas herramientas.
- Iniciar un hilo: un hilo representa una secuencia de diálogo iniciada por el usuario en la que pueden añadirse mensajes, formando un intercambio atractivo.
- Añadir mensajes: Los mensajes se componen de las entradas textuales del usuario y pueden abarcar texto, archivos e imágenes.
- Activa el Asistente: El asistente se activa para analizar la rosca, utilizar las herramientas específicas necesarias y producir una respuesta adecuada.
Casos de uso de los asistentes API en la industria
Aprovechar la Assistant API puede ser una forma potente de integrar la IA en diversos procesos empresariales, permitiéndoles mejorar la eficiencia, automatizar tareas aburridas y ofrecer respuestas más rápidas y precisas a las consultas de los usuarios.
A continuación se exponen cinco casos de uso industriales convincentes para la Assistant API.
Apoyo al desarrollo
El Asistente puede actuar como ayudante de codificación a petición. Utilizando el intérprete de código, puede traducir fragmentos de código de un lenguaje de programación a otro, ayudando en el desarrollo de software y facilitando la curva de aprendizaje de nuevos lenguajes. Esta función es especialmente útil en equipos que trabajan con varios lenguajes de programación o en entornos educativos para enseñar a programar.
Gestión del conocimiento empresarial
La función de recuperación puede aprovecharse para la gestión del conocimiento dentro de las organizaciones. Al cargar y procesar documentos, informes y manuales internos, el Asistente se convierte en un depósito centralizado de conocimientos. Los empleados pueden consultar el Asistente para obtener información específica, lo que mejora la eficacia y reduce el tiempo dedicado a buscar información en grandes conjuntos de documentos.
Automatización de la atención al cliente
El Asistente puede integrarse en los sistemas de atención al cliente. Mediante llamadas a funciones, puede responder a las consultas de los clientes obteniendo información de API o bases de datos externas, lo que automatiza eficazmente las respuestas a las preguntas más habituales. Esta integración puede mejorar la experiencia del cliente proporcionando respuestas rápidas y precisas y reduciendo la carga del personal de asistencia.
Análisis de datos
Mediante la descripción de funciones para el análisis de datos, los usuarios pueden pedir al Asistente que realice manipulaciones de datos complejas y genere informes, traduciendo las consultas en lenguaje natural en tareas estructuradas de análisis de datos.
Automatización de las operaciones informáticas
Los equipos informáticos pueden utilizar el Asistente para automatizar operaciones rutinarias. Al definir funciones que corresponden a tareas informáticas comunes, como diagnósticos del sistema, comprobaciones de la red o actualizaciones de software, el Asistente puede ejecutar estas tareas en respuesta a órdenes del usuario. Esta capacidad puede reducir significativamente el tiempo que los profesionales de TI dedican al mantenimiento rutinario, permitiéndoles centrarse en cuestiones más complejas.
Manos a la obra: Primeros pasos con la API de asistentes de OpenAI
Con estos conocimientos sobre la API de OpenAI, pasemos a un caso de uso más práctico. Esta sección se centra en guiar a través del proceso de creación de un asistente que recupere conocimientos de archivos PDF.
El cuaderno completo está disponible en DataLab.
Flujo de trabajo de recuperación de conocimientos
Para cualquier implementación técnica, es mejor proporcionar un flujo de trabajo visual que ilustre la interacción entre los principales componentes de la aplicación global que se está desarrollando.
Este flujo de trabajo pone de relieve los cinco pasos principales de la implementación del asistente, desde la carga de archivos hasta la generación de la respuesta final.
Cinco pasos principales del flujo de trabajo de recuperación de conocimientos
- Carga de archivos: el proceso comienza con la carga de los archivos PDF con los que los usuarios desean interactuar.
- Creación del asistente: el asistente está diseñado específicamente para procesar y comprender la información de los archivos PDF cargados.
- Iniciar la interacción: es el punto de partida del hilo de conversación, donde los usuarios proporcionan mensajes de entrada que serán procesados por el asistente.
- Activar el asistente: ahora, el asistente procesa los mensajes de entrada para generar una respuesta pertinente.
- Salida de respuestas: es la fase final, en la que el asistente muestra las respuestas al mensaje de los usuarios.
Configurar la llave OpenAI KEY
Las principales herramientas necesarias para reproducir con éxito los resultados de este tutorial son:
- Python: es el principal lenguaje de programación que utilizaremos en este tutorial. Una opción alternativa es NodeJS.
- OpenAI: el paquete para interactuar con los servicios de OpenAI. Nuestra hoja de trucos sobre la API OpenAI en Python proporciona una visión completa para dominar los fundamentos de cómo aprovechar la API OpenAI.
- OS: el paquete del sistema operativo para configurar la variable de entorno.
El primer paso es adquirir la llave OpenAI KEY, que permite acceder al modelo DALL-E 3. A continuación se ilustran las principales etapas:
Cuatro pasos principales para crear una OpenAI KEY pasos principales para crear una OpenAI KEY
Los cuatro pasos principales anteriores se explican por sí solos. Sin embargo, es importante crear una cuenta desde el sitio web oficial de OpenAI.
Puede explorar más a fondo la API OpenAI en nuestra guía para principiantes Beginner's Guide to The OpenAI API: Tutorial práctico y buenas prácticas. Te presenta la API OpenAI, sus casos de uso, un enfoque práctico para utilizar la API y todas las prácticas recomendadas que debes seguir.
Empezar a construir el asistente
Una vez obtenida la CLAVE, asegúrate de no compartirla con nadie. La clave debe permanecer privada. A continuación, configure la clave de la variable de entorno de la siguiente manera para poder trabajar con:
import os
OPENAI_API_KEY= "<YOUR PRIVATE KEY>"
os.environ["OPENAI_API_KEY"] = OPENAI_API_KEY
Carga de archivos
La siguiente función de ayuda aprovecha la función "crear" para cargar automáticamente en su cuenta de OpenAI el archivo con el que los usuarios quieren interactuar.
La función "crear" tiene dos parámetros principales:
- La ruta del archivo a cargar
- La finalidad de uso de ese fichero, que en este caso es "asistentes"
def upload_file(file_path):
# Upload a file with an "assistants" purpose
file_to_upload = client.files.create(
file=open(file_path, "rb"),
purpose='assistants'
)
return file_to_upload
La función helper se utiliza finalmente para desencadenar el proceso de carga del papel de transformadores ubicado en la carpeta de datos.
transformer_paper_path = "./data/transformer_paper.pdf"
file_to_upload = upload_file(transformer_paper_path)
Tras la ejecución correcta de la función, el transformer_paper.pdf se carga y es visible desde la pestaña de archivos, como se muestra a continuación.
Transformer paper subido a la cuenta de OpenAI
Asistente de creación
La creación del asistente se realiza mediante la función create del módulo client.beta.assistants, y toma cinco parámetros principales:
- Nombre: es el nombre dado al asistente por su creador. Llamemos al nuestro Asistente de Documentos Científicos.
- Instrucciones: describe cómo debe comportarse el asistente o responder a las preguntas. En este caso, el asistente aplica la siguiente instrucción: "Eres un asistente educado y experto en la recuperación de conocimientos. Utiliza los documentos proporcionados como base de conocimientos para responder a las preguntas".
- Modelo: el modelo subyacente que se utilizará para la recuperación de conocimientos. Se puede utilizar cualquier modelo GPT-3 o GPT-4. Este artículo aprovecha el último modelo en el momento de escribir este artículo, que es el modelo gpt-4-1106-preview.
- Herramientas: el tipo de herramienta que se va a utilizar. Las dos opciones posibles son intérprete de código y recuperación. Este artículo se centra en la recuperación, por lo que ignoramos el intérprete.
- File_ids: lista de identificadores únicos de cada archivo de la base de conocimientos.
La función de ayuda create_assistant combina toda esta información para crear el asistente como se ilustra a continuación:
def create_assistant(assistant_name,
my_instruction,
uploaded_file,
model="gpt-4-1106-preview"):
my_assistant = client.beta.assistants.create(
name = assistant_name,
instructions = my_instruction,
model="gpt-4-1106-preview",
tools=[{"type": "retrieval"}],
file_ids=[uploaded_file.id]
)
return my_assistant
Ahora podemos ejecutar la función para crear el asistente utilizando la instrucción y el nombre del asistente:
inst="You are a polite and expert knowledge retrieval assistant. Use the documents provided as a knowledge base to answer questions"
assistant_name="Scientific Paper Assistant"
my_assistant = create_assistant(assistant_name, inst, uploaded_file)
Iniciar la interacción
Una vez creado el asistente, el siguiente paso natural es iniciar un hilo de interacción utilizando el mensaje o la solicitud del usuario.
El hilo y el mensaje se crean utilizando las funciones create de client.beta.threads y client.beta.threads.messages respectivamente.
Estas dos funciones se combinan mediante la función de ayuda initiate_interaction.
def initiate_interaction(user_message, uploaded_file):
my_thread = client.beta.threads.create()
message = client.beta.threads.messages.create(thread_id=my_thread.id,
role="user",
content=user_message,
file_ids=[uploaded_file.id]
)
return my_thread
Se puede iniciar una interacción desde la variable user_message:
user_message = "Why do authors use the self-attention strategy in the paper?"
my_thread = initiate_interaction(user_message, uploaded_file)
Activar el asistente y generar una respuesta
A partir del hilo anterior, se puede activar el asistente para que dé una respuesta al mensaje del usuario. La acción desencadenante se define en la función auxiliar trigger_assistant, y la respuesta viene dada por la variable response.
def trigger_assistant():
run = client.beta.threads.runs.create(
thread_id = my_thread.id,
assistant_id = my_assistant.id,
)
trigger_assistant()
messages = client.beta.threads.messages.list(
thread_id = my_thread.id
)
response = messages.data[0].content[0].text.value
response
La siguiente respuesta se genera después de una ejecución exitosa del código anterior.
Respuesta del asistente al mensaje del usuario
Esta respuesta es exactamente la que mencionan los autores como respuesta a la pregunta de la página 6.
Pasaje que menciona la respuesta del papel del transformador
Buenas prácticas al utilizar la API de OpenAI Assistants
Cuando se aprovecha la API de Assistant en un proyecto, es importante seguir las mejores prácticas para garantizar un rendimiento y una experiencia de usuario óptimos. A continuación se exponen algunos puntos clave a tener en cuenta.
- Definir objetivos claros: establecer metas específicas para el Asistente con el fin de garantizar que cumple eficazmente la finalidad prevista y las necesidades de los usuarios.
- Optimizar la introducción de datos: la calidad y pertinencia de los datos utilizados, como los archivos cargados, son cruciales para la precisión y eficacia de las respuestas del asistente.
- Dar prioridad a la privacidad de los usuarios: implantar protocolos sólidos de privacidad de datos para proteger la información de los usuarios y cumplir las leyes pertinentes de protección de datos.
- Probar e iterar: probar periódicamente el Asistente en situaciones reales e iterar en función de los comentarios para mejorar el rendimiento y la experiencia del usuario.
- Proporcionar documentación clara: ofrecer orientación completa sobre el uso del Asistente, ayudando a los usuarios a comprender sus funcionalidades y limitaciones.
Conclusión
En resumen, este artículo ha explorado la API de Asistentes, destacando cómo funciona y cómo puede utilizarse en diferentes sectores. Empezamos presentando la API y sus funciones clave, sentando las bases para una comprensión más profunda.
A continuación, examinamos las características específicas de la API de Asistentes y debatimos cómo pueden aplicarse en diversos sectores empresariales, lo que demuestra su amplia utilidad.
También proporcionamos una guía paso a paso sobre cómo empezar a utilizar la API de Asistentes, para que le resulte más fácil configurarla según sus necesidades.
Además, compartimos algunas prácticas recomendadas importantes que debe tener en cuenta al utilizar la API, para asegurarse de que le saca el máximo partido.
En resumen, la API de Asistentes es una herramienta versátil y valiosa que puede adaptarse a muchos usos, ofreciendo importantes ventajas a quienes aprendan a utilizarla con eficacia.
¿Estás deseando mejorar tu experiencia con las API de OpenAI y adoptar un enfoque más creativo? Nuestra Guía completa de la API de DALL-E 3 le ayudará a descubrir el poder transformador de la API de DALL-E 3, cubriendo sus características clave, aplicaciones industriales y consejos para que los usuarios liberen su potencial creativo.
Si eres un completo novato en la materia, ¿por qué no empiezas con nuestro curso Trabajando con la API de OpenAI?
Más información sobre OpenAI
Course
Working with the OpenAI API
Course
Introduction to Embeddings with the OpenAI API
blog
Cómo aprender IA desde cero en 2024: Guía completa de los expertos
blog
7 proyectos de IA para todos los niveles
tutorial
Guía para principiantes de la API de OpenAI: Tutorial práctico y prácticas recomendadas
tutorial
Cómo utilizar la API de conversión de texto a voz de OpenAI
tutorial
Visión GPT-4: Guía completa para principiantes
tutorial