¿Tienes una pequeña tienda online o una web personal y te gustaría mejorar la atención al cliente?
Un chatbot puede ser la solución perfecta para responder a las preguntas frecuentes (FAQ), informar sobre tus políticas de envío y compartir tus últimas noticias.
En este artículo, aprenderás detalladamente cómo desarrollar y poner en práctica un chatbot para tus objetivos.
En este caso específico, despliego un chatbot, mediante la técnica de Retrieval-Augmented Generation (RAG) para habilitar respuestas a preguntas relacionadas con los últimos nombramientos publicados en el Boletín Oficial del Estado (BOE). Por ejemplo, abordaremos el nombramiento de D. José Fernández Albertos como Director del Departamento de Políticas Públicas del Gabinete de la Presidencia del Gobierno.
Tan solo necesitarás los siguientes elementos:
Cuenta gratuita en OpenAI (ChatGPT)
Cuenta gratuita en HuggingFace
A continuación, puedes ver el resultado tras seguir los pasos y le puedes preguntar sobre el nombramiento comentado:
Es un proceso por el cual podremos usar nuestra propia información y documentos para aumentar el conocimiento de modelos de lenguaje como el que usa Chat-GPT.
En el primer paso transformaremos nuestros documentos a vectores, ya que aunque parezca que Chat-GPT trabaja con palabras, realmente utiliza números. Para este proceso usaremos un "embedding" .
Para finalizar, al realizar una nueva consulta primero busca y recupera información relevante de la documentación añadida anteriormente. Seguidamente, responde a nuestra consulta priorizando dicha información.
Crearse una cuenta en OpenAI
Acceder a Open AI API
Cuando ya tengamos una cuenta al iniciar sesión nos ofrecerá estas dos opciones, eligiendo API.
Comprobad que os han dado 5$ para poder usar la API de Open-AI.
Con esa cantidad tendréis suficiente como para usar múltiples documentos y poder chatear sobre ellos todas las veces que queráis.
Para poder usar nuestra cuenta en diferentes sitios necesitaremos un código personal único o también llamado API-Key.
Una vez le demos a "Create new secret key" no podremos ver de nuevo nuestro código, así que es recomendable copiarlo en alguna nota.
1. Crearse una cuenta en HuggingFace
Hugging Face es una plataforma líder en el desarrollo y la implementación de modelos de lenguaje.
Ofrece una biblioteca abierta con una amplia variedad de modelos preentrenados, herramientas de tokenización y una comunidad activa. Su misión es democratizar y facilitar el acceso a las últimas innovaciones en PLN.
En la vectorización de textos, emplearemos un "embedding", tal como se mencionó en pasos previos. En este proceso, aprovecharemos la plataforma Hugging Face para obtener el "embedding" gratuito, para lo cual será necesario un token, al igual que sucede con Open AI.
1. Acceder a HuggingFace Spaces
Spaces es una plataforma basada en la nube para la colaboración que proporciona una forma fácil de alojar y mostrar aplicaciones de Machine Learning (ML).
Ofrece una excelente manera de crear un portafolio de tus proyectos de ML de forma sencilla y con múltiples opciones tanto gratuitas como de pago.
Lo más importante para nuestro chat es seleccionar un nombre y el Space SDK Gradio.
Tendremos que añadir como secretos nuestros token de esta manera nadie podrá saber cuales son.
Configuración > Bajamos hasta "New Secret" > Creamos dos secretos
Token Hugging Face - Name HF
Token Open AI - Name OPENAI
Añade los dos documentos en Files > Add Files
Documento 1: app.py
Documento 2: requirements.txt
Crea tu carpeta con los ficheros pdFs y llamala : MyPDFs
Files > Upload Files
Arrastra la carpeta con los ficheros PDFs
Comprueba que en la carpeta solo haya ficheros PDF
¡Felicidades, ya hemos terminado el proyecto!
Ten en cuenta que si cuentas con un gran número de documentos en alguna nube, como en servicios S3, siempre puedes utilizarlos, modificando el código necesario.
Este método es más recomendable para una prueba como la realizada, debido a diferentes factores como la publicación de datos.
Si quieres despliegues más profesionales o para entornos productivos, no dudes en contactarme, estaré encantado en poder ayudarte.
Muchas gracias por tu lectura y espero que te sirva de ayuda.