Creación de un Chatbot con Documentación de Hugging Face

Clase 18 de 37Curso de LangChain

Resumen

¿Cómo inicializar el proyecto del chatbot con documentación de Hugging Face?

Preparar el entorno de desarrollo es esencial al comenzar un proyecto de programación. En este caso, estamos creando un chatbot que nos permitirá interactuar con la documentación de Hugging Face. Sigamos con los pasos básicos para iniciar.

  1. Clonar el repositorio: El proyecto se encuentra en un repositorio de GitHub. El primer paso es clonar este repositorio en tu máquina local.

  2. Instalar las dependencias: Puedes optar por distintas herramientas:

    • Usar Poetry: Una forma moderna de manejar dependencias y entornos virtuales. Ejecuta Poetry Install después de clonar el proyecto.
    • Usar pip: Si prefieres, instala las dependencias enumeradas en el archivo requirements.txt.
    • Usar conda: Como alternativa, también puedes usar este gestor de entornos.

Finalmente, una vez instaladas las dependencias, ejecuta el código con:

poetry run python hashira aiconversation.py

¿Cuáles son las dependencias clave del proyecto?

El proyecto utiliza una variedad de bibliotecas y herramientas que facilitan tanto el desarrollo como la funcionalidad de nuestro chatbot:

  • Langchain y PyTorch: Componentes esenciales para manejar y desplegar modelos de lenguaje.
  • Transformers: Biblioteca fundamental para la comprensión del lenguaje natural.
  • Request: Para realizar solicitudes HTTP necesarias para obtener los datos.
  • ChromaDb: Como base de datos vectorial.
  • OpenAI: Necesario para funciones avanzadas de IA.

Es crucial revisar el archivo pipproject.term generado por Poetry para entender mejor las dependencias involucradas.

¿Cómo funcionan las utilidades dentro de utils.py?

El archivo utils.py ofrece un conjunto de funciones diseñadas para facilitar diversas tareas en el proyecto:

  • DocsJsonLoader: Convierte archivos JSONL en documentos legibles por Langchain.
  • LoadConfig: Carga la configuración desde el archivo config.yaml.
  • GetOpenAPIKey: Verifica la existencia de una clave API de OpenAI en las variables de entorno.
  • GetFilePath: Obtiene la ruta a los datos JSONL.
  • GetQueryFromUser: Recibe preguntas de los usuarios, útil para alimentar el chatbot.
  • CreateDir y RemoveExistingFile: Manejan la creación de directorios y la eliminación de archivos.

Estas utilidades simplifican el flujo de trabajo, especialmente al organizar y extraer datos.

¿Cómo extraer y estructurar datos desde GitHub?

Para obtener los datos necesarios, seguimos una serie de pasos usando config.yaml y el script en TextStructor:

  1. Configurar config.yaml: Esta configuración contiene las fuentes de donde extraeremos la documentación. Aquí deberán listar:

    • Repositorios y sus rutas correspondientes para obtener documentación markdown.
    • También pueden combinarse otras fuentes como blogs.
  2. Usar TextStructor: Este script tiene funciones para:

    • Limpiar y procesar texto: Elimina elementos redundantes como emojis.
    • Descargar archivos a partir de URLs y guardarlos en formato JSONL, incluyendo metadatos como el título y origen.
    • Revisar directorios completos para seleccionar solo archivos markdown necesarios.

Ejemplo de ejecución para descargar datos:

Una vez instaladas las dependencias, ejecuta:

poetry run python hashira text_extractor

Así, descargaremos archivos de documentación manteniendo todos los elementos relevantes en un formato JSONL estructurado y ordenado. Podemos considerar más de 500 archivos, cubriendo desde documentación de librerías hasta entradas de blog.

¿Cómo personalizar la documentación y datos utilizados?

El proyecto ofrece flexibilidad para trabajar con diversos tipos de datos adicionales que puedas tener:

  • Repositorios adicionales: Puedes agregar otros repositorios de interés en config.yaml para ampliar las fuentes.
  • Diferentes formatos: El script acepta textos en formatos PDF, Word y CSV, lo que permite customizar la base de datos según los requerimientos de interacción con el chatbot.

¡Anímate a explorar y ampliar tu proyecto utilizando toda la riqueza de estas herramientas y configuraciones! Con cada ajuste, puedes transformar a tu chatbot en una herramienta aún más poderosa y personal para realizar consultas a documentación técnica.