CHATBOT de preguntas y respuestas de la universidad
Este proyecto es un chatbot de preguntas y respuestas diseñadas para responder preguntas relacionadas con la Academia Global de Tecnología (GAT) utilizando una combinación de modelos de idiomas grandes (LLM), incrustaciones de texto, generación de recuperación acuática (RAG) y técnicas de ingeniería rápidas. El chatbot puede procesar las entradas de texto y audio, proporcionando respuestas relevantes basadas en el historial de conversación y los documentos precargados.
Características
- Entrada de texto y audio : acepta consultas de usuario a través de la entrada de texto o la grabación de voz.
- Generación de recuperación de la generación (RAG) : mejora las respuestas utilizando información relevante recuperada de documentos precargados.
- Respuestas conscientes del contexto : utiliza el historial de conversación para proporcionar respuestas coherentes y contextualmente apropiadas.
- Interfaz Streamlit : interfaz fácil de usar construida con optimista, con opciones para el modo de seguimiento y la personalización de la profundidad de búsqueda.
Instalación
Clonar el repositorio
git clone https://github.com/mahadev0811/CollegeChatbot.git
cd CollegeChatbot
Crear un entorno virtual
python -m venv venv
source venv/bin/activate # On Windows use `venvScriptsactivate`
Instalar dependencias
pip install -r requirements.txt
Configurar la tecla API
- Cree un archivo
config.json en el directorio raíz con su clave de Google API:
{
"google_api_key" : " YOUR_GOOGLE_API_KEY "
}
Uso
Ejecutar la aplicación
Interactuar con el chatbot
- Use el cuadro de entrada de texto o la grabadora de audio para enviar sus consultas.
- Ajuste la configuración utilizando las opciones de la barra lateral:
- Modo de preguntas de seguimiento : Alternar para usar el historial de conversación para respuestas.
- Profundidad de búsqueda : ajuste el número de párrafos para buscar en los documentos de información relevante.
Estructura de proyectos
- st_app.py : script de aplicación principal.
- incredding_generator.py : script para generar integridades desde el archivo de datos.
- WebSCrapper.ipynb : cuaderno de Jupyter para raspar datos de texto de URL para generar el archivo de datos sin procesar.
- config.json : archivo de configuración para claves API.
- requisitos.txt : lista de paquetes de pitón requeridos.
- data_generation/gat_raw.txt : datos raspados sin procesar que contienen información sobre GAT.
- data_generation/gat_refined.txt : versión humana-supervisada y editada de los datos sin procesar.
- gat_embeddings.pkl : incrustaciones precomputadas para el documento precargado.
Generación de datos
Para generar el archivo de datos RAW inicial ( gat_raw.txt ), use el cuaderno webscrapper.ipynb . Este cuaderno raspa el contenido de texto de las URL dadas y formatea adecuadamente.
Generando incrustaciones
Para generar incrustaciones de su archivo de datos, use el script incredding_generator.py . Este script lee un archivo de texto que contiene los datos, genera embebidos utilizando el modelo Flagembedding y guarda los incrustaciones como un archivo de encurtido.
Ejecutando el generador de incrustación
Prepare su archivo de datos
- Asegúrese de que su archivo de datos (por ejemplo, data_generation/gat_refined.txt) esté en el formato correcto, con párrafos separados por doble línea nueva ( n n).
Ejecutar el guión
Ejecute el script incruscting_generator.py con la ruta a su archivo de datos como argumento:
python embedding_generator.py --data_file data_generation/gat_refined.txt
El script generará incrustaciones para los párrafos en el archivo de datos y los guardará como un archivo de pickle ( gat_embeddings.pkl ).
Capturas de pantalla
- Este video muestra el chatbot en acción, respondiendo preguntas sobre gat:
Recordings.mp4
Créditos
- Flagembedding: modelo de incrustación personalizado utilizado para codificar consultas.
- Aprecio: marco de aplicaciones de código abierto para ML y proyectos de ciencia de datos.
- Abrazando transformadores de cara: biblioteca para modelos de PNL de última generación.
- Google Cloud Speech-to-Text API: Servicio para convertir el discurso en texto.
- Google Generation AI: utilizado para generar respuestas.
Licencia
Este proyecto tiene licencia bajo la licencia MIT; consulte el archivo de licencia para obtener más detalles.