banner
Hogar / Blog / Cree un chatbot capacitado con sus propios datos a través de la API OpenAI - SitePoint
Blog

Cree un chatbot capacitado con sus propios datos a través de la API OpenAI - SitePoint

Aug 23, 2023Aug 23, 2023

En este artículo, aprenderá cómo entrenar y probar su propio chatbot utilizando la API OpenAI y cómo convertirlo en una aplicación web que pueda compartir con el mundo.

Dado que la IA ha revolucionado las tecnologías de la información, muchos la han aprovechado utilizando proveedores de API como OpenAI para integrar la IA en sus datos.

Una forma particularmente buena de utilizar la IA para sus datos es crear su propio chatbot.

Por ejemplo, imagine que tiene un conjunto de datos que consta de miles de informes de ganancias de la empresa. Le gustaría explorarlo y analizarlo sin perder horas de su tiempo. Una buena opción sería crear un chatbot para responder cualquier pregunta que pueda tener sobre los documentos, para evitar tener que buscarlos manualmente.

Por ejemplo, es posible que desee preguntar "¿qué empresa tuvo las mejores ganancias el último trimestre?" — una pregunta que normalmente tendrías que responder investigando manualmente tu conjunto de datos. Al utilizar un chatbot entrenado con tus datos, puedes obtener la respuesta a esa pregunta en cuestión de segundos.

Para comenzar con su propio chatbot, primero necesita acceso a la API de OpenAI. Para obtener su clave API de OpenAI, regístrese en el sitio web de OpenAI. Luego haga clic en el ícono de su perfil ubicado en la esquina superior derecha de la página de inicio, seleccioneVer claves APIy haga clicCrear nueva clave secretapara generar una nueva clave API.

Para este tutorial, usaré la página de Wikipedia para computadoras para crear un chatbot simple que pueda responder cualquier pregunta general sobre las computadoras y su historia.

Puede descargar el conjunto de datos en formato de texto desde el repositorio de GitHub de este artículo.

Crea una nueva carpeta donde crearás tu chatbot. Luego cree una carpeta llamada chatbot_docs dentro de la carpeta de su proyecto y pegue el archivo del conjunto de datos en esa carpeta. (El nombre de la carpeta no importa, pero para este tutorial es mucho más fácil llamarla chatbot_docs).

Una vez que tenga su clave API y su archivo de conjunto de datos, puede comenzar con el código real.

Vaya a la carpeta de su proyecto y cree un archivo Python vacío dentro de su nueva carpeta de proyecto.

Una vez que haya hecho eso, descargue las bibliotecas que usaremos ejecutando lo siguiente en su terminal:

Finalmente, una vez que haya instalado todas las bibliotecas necesarias, pegue este código Python de nuestro repositorio en su archivo Python.

Para este tutorial, estoy usando el modelo OpenAI gpt-3.5-turbo, ya que es el más rápido y el más rentable. Como habrás notado si has mirado el código, configuré la temperatura del chatbot en 0. Hice esto para que el chatbot fuera lo más preciso posible. Eltemperatura El parámetro determina la creatividad del chatbot, donde una temperatura de 0 significa que el chatbot siempre es objetivamente preciso y una temperatura de 1 significa que el chatbot tiene total libertad para inventar respuestas y detalles en aras de la creatividad, incluso si son no es correcto. Cuanto mayor es la temperatura, más creativo y menos preciso es el chatbot.

A lo largo de este código, menciono la palabra "incrustaciones". Esto es exactamente en lo que se convierte el texto de su documento de Wikipedia para que el chatbot lo entienda y le dé sentido. Cada incrustación es una lista de números que van de -1 a 1 que asocian cada pieza de información según su relación con otra. En caso de que se pregunte qué significa text-embedding-ada-002, este es solo el modelo que se está utilizando para realizar las incrustaciones, porque es el más eficiente en términos de costo y tiempo.

Este código crea un archivo CSV de incrustaciones para cada documento en su carpeta chatbot_docs y, como solo tiene uno (para los propósitos de este tutorial), solo crea un archivo de incrustaciones. Pero si tuviera más documentos, el código crearía un archivo incrustado para cada documento. Este enfoque hace que su chatbot sea más escalable.

Probablemente también te estés preguntando acerca de la parte con los trozos:

Dejame explicar. Este código divide la página de Wikipedia sobre computadoras en fragmentos de 2000 caracteres y un fragmento superpuesto de 250 caracteres. Cuanto mayor sea el tamaño del fragmento, mayor será el contexto del chatbot, pero esto también puede hacerlo más lento, por lo que elegí 2000 como un buen término medio entre 0 y 4096 (el tamaño máximo del fragmento) para este tutorial.

En cuanto a la superposición de fragmentos, ChatGPT recomienda mantener la superposición de fragmentos entre el 10% y el 20% del tamaño del fragmento. Esto mantiene algo de contexto entre los diferentes fragmentos. También garantiza que los fragmentos no sean redundantes, evitando que contengan demasiados datos de los fragmentos anteriores.

Cuanto menor sea la superposición de los fragmentos, menor será el contexto entre los fragmentos. Cuanto mayor sea la superposición de los fragmentos, mayor será el contexto entre los fragmentos y más redundantes serán los datos de los fragmentos.

Este código también divide el documento por párrafos, dividiendo el texto cada vez que hay una nueva línea (\n o \n\n). Esto hace que los fragmentos sean más cohesivos, al garantizar que no se divida a mitad del párrafo.

Una vez que haya ejecutado su código, habrá preparado sus datos para que los utilice el chatbot. Esto significa que ahora puedes crear el chatbot real.

Si bien el archivo Python que acaba de ejecutar creó las incrustaciones necesarias para que funcione el chatbot, ahora tendrá que crear otro archivo Python para el chatbot real. Esto tomará una pregunta como entrada y generará una respuesta realizada por el chatbot.

Una vez que haya creado un nuevo archivo Python, agregue este código Python desde el repositorio.

Ahora, si ejecuta su chatbot, debería obtener el siguiente resultado después de un par de segundos de procesamiento.

Ahora que tienes tu chatbot, ¡puedes experimentar con diferentes preguntas! También puedes experimentar con diferentes fragmentos y superposiciones de fragmentos, así como con la temperatura (si no necesitas que tu chatbot sea 100% preciso).

Si bien tener un chatbot simple es bueno, probablemente estés buscando algo real: tener una interfaz de usuario para tu chatbot que permita a usuarios de todo el mundo usarlo.

Para comenzar con su aplicación web de chatbot, cree una carpeta de plantillas dentro del directorio de su proyecto. Dentro de eso, cree un archivo HTML llamado bot.html y un archivo CSS llamado style.css.

También asegúrese de crear una carpeta de chat vacía dentro del directorio de su proyecto. Esto se utilizará para la comunicación backend-frontend.

Ahora agregue este código CSS a su archivo style.css.

Una vez que hayas hecho eso, agrega este HTML a tu archivo bot.html.

Ahora, tendrá que cambiar la secuencia de comandos del chatbot de Python para recibir solicitudes de su página web y enviar respuestas usando Flask. Cambie su secuencia de comandos Python a este código.

¡Ahora probemos su aplicación web de chatbot! Ejecute su archivo Python y abra localhost:8001. Ahora deberías ver tu página web, como se muestra a continuación.

Ahora, si ingresa una pregunta, debería ver una animación de carga mientras el chatbot la procesa.

Finalmente, después de unos segundos, deberías recibir una respuesta del chatbot, como se muestra a continuación.

Ahora puedes experimentar con tu chatbot. Utilice diferentes conjuntos de datos y cree sobre esta sencilla aplicación web para crear sus propias aplicaciones web totalmente funcionales. La belleza de los chatbots es que se les puede entrenar en cualquier cosa, desde transcripciones de podcasts hasta libros de filosofía.

Espero que este tutorial te haya resultado útil. ¡Feliz codificación!

Soy un desarrollador full-stack con 3 años de experiencia con PHP, Python, Javascript y CSS. Me encanta escribir blogs sobre desarrollo web, desarrollo de aplicaciones y aprendizaje automático.

En este artículo, aprenderá cómo entrenar y probar su propio chatbot utilizando la API OpenAI y cómo convertirlo en una aplicación web que pueda compartir con el mundo.Ver claves APICrear nueva clave secretatemperatura