Skip to content

Chatbot responde con referencia a información brindada en documentos.

Notifications You must be signed in to change notification settings

DIAD-PUCP/Embedchain-Chat-Bot-DIAD--V1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chat-Bot de atención DIAD

  • Título: Embedchain-Chat-Bot-DIAD--V1
  • Versión: 1.0
  • Utilidad: Soporte al cliente

Descripción

Es un chatbot que permite a los usuarios obtener respuestas a sus preguntas basándose en la información contenida en el archivo PDF especificado.

El chatbot se presenta en una interfaz web amigable que facilita la interacción con los usuarios, y utiliza un modelo de lenguaje natural para generar respuestas coherentes y precisas en el contexto del documento.

Requisitos

Dependencias

Se pueden consultar a más detalle los paquetes necesarios del proyecto en el archivo requirements.txt de este repositorio. Puede realizar la instalación de las dependencias con pip del siguiente modo:

pip install -r requirements.txt

Base de conocimientos

Esta versión del chatbot requiere un archivo en formato PDF que contenga la información que se desea poner a disposición de los usuarios.

Warning

Se debe actualizar el nombre del archivo que se desea utilizar en main.py.

API de Inteligencia Artificial

Es necesario contar con una clave de la API de OpenAI, la cual se debe establecer como la variable de entorno OPENAI_API_KEY. Para realizar la configuración se debe cargar la variable antes de ejecutar el cscript:

OPEN_API_KEY=openapikey1234 python main.py

O en el caso de Docker

docker run --name nombreimagen -e "OPEN_API_KEY=openapikey1234"  imagen

Warning

La práctica recomendada es guardar esta variable en un archivo .env y cargarlo luego en el código.

Funcionamiento

Este código crea una aplicación web de chatbot para responder preguntas sobre el contenido de un archivo PDF. Aquí's un desglose del funcionamiento:

Carga y procesamiento de PDF

Se utiliza la biblioteca Embedchain para cargar y procesar el archivo PDF especificado, la cual extrae información relevante del documento, como texto, entidades y relaciones entre ellas, y crea una representación interna del conocimiento contenido en el documento.

Aplicación web y recepción de preguntas

Se crea una aplicación web simple usando Flask y se definen rutas para manejar las interacciones del usuario:

  • La ruta raíz ( / ) renderiza la página HTML de la interfaz del chatbot.
  • La ruta ( /chat ) recibe preguntas del usuario a través de una solicitud POST.

Generación de respuestas

  • Se recibe la pregunta del usuario en formato JSON y se añade la instrucción de que la respuesta debe basarse en el documento consultado.
  • Se utiliza la instancia de Embedchain que se conecta a la API de OpenAI para generar una respuesta a la pregunta.
  • Si todo es correcto, la respuesta generada se devuelve al usuario en formato JSON; caso contrario se muestra un mensaje de error.

Resultados

Este proyecto genera una interfaz web que permite a los usuarios la interacción con un chatbot capaz de procesar un documento PDF, recibir preguntas en lenguaje natural y consultar el conocimiento del documento para generar respuestas relevantes y coherentes.

Además cuenta con características adicionales que aportan valor en la usabilidad del chatbot, las cuales se detallan a continuación:

  • Generación de respuestas relevantes: El chatbot genera respuestas completas e informativas a las preguntas del usuario, utilizando el conocimiento extraído del PDF y adaptando el lenguaje a un estilo natural y conversacional.
  • Historial de conversaciones: Las interacciones con el chatbot se almacenan localmente, permitiendo al usuario revisar las conversaciones anteriores, consultar información específica o eliminar conversaciones que ya no sean necesarias.
  • Temas personalizables: El usuario puede elegir entre un tema claro u oscuro para la interfaz del chatbot, personalizando la experiencia visual según sus preferencias.
  • Uso de avatares: Se integran avatares en la interfaz para representar al usuario y al chatbot durante la conversación, aportando un toque más humano y dinámico a la interacción.
  • Uso de la información: El usuario puede copiar fácilmente el texto de una respuesta del chatbot al portapapeles, permitiendo guardar o compartir información relevante de manera rápida y sencilla.

Procesos derivados

Este proyecto está basado en el código de CodingNepal, que fue adaptado y modificado a partir de las sugerencias de David Morgan.

About

Chatbot responde con referencia a información brindada en documentos.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •