Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CODE ASSISTANT

Chatbot

Descripción

Chatbot que funciona como asistente para la consulta sobre la documentación de la plataforma Detectron2. El chatbot utiliza el modelo de llm DeepSeek-R1-Distill-Qwen-1.5B. Además, utiliza el framework de LangChain para implementar la estructura del proyecto que se muestra debajo.

Estructura del proyecto

Características

  • Implementación de DeepSeek-R1-Distill-Qwen-1.5B como chatbot.
  • Base de datos vectorial para brindar información al chatbot.
  • Record Manager para registrar qué ingresó a la base de datos vectorial.
  • Indexación de vectores de tipo full para eliminar la información que ya no se utiliza en la documentación cargada.
  • langgraph para la estructura de la aplicación.
  • Acceso al historial de mensajes de la sesion. Pasado cierto humbral de tokens se genera resumen de los mensajes más antiguos en el historial.
  • El retriever utiliza Maximal Marginal Relevance (MMR) para ajustar la diversidad en los documentos del contexto obtenido para cada pregunta.
  • Interfaz visual con Streamlit.

Estructura del Proyecto

CODE_ASSISTANT/
│-- chroma_langchain_db/                    # Contiene la documentacion de Detectron2 en forma de vectores 
│-- DeepSeek-R1-Distill-Qwen-1.5B/          # Contiene los pesos del LLM
│-- images/
│-- src/
│   │-- config/                             # Configuraciones necesarias para el proyecto
│   │   │-- env.py                          # Carga de las variables de entorno
│   │-- services/                           # Servicios utilizados
│   │   │-- deepseekService.py              # Funciones relacionadas con Deepseek
│   │-- utils/                              # Funciones de utilidad
│   │   │-- textExtractor.py                # Funciones relacionadas con la extracción de la documentación
│   │-- app.py                              # Flujo principal de la aplicación
│   │-- deepseekServer.py                   # Arranca el servidor con el modelo de Deepseek
│-- .env                                    # Variables de entorno
│-- .env_example                            # Descripción de las variables de entorno
│-- .gitignore                              # Archivos a ser ignorados en el repositorio
│-- README.md                               # Documentación del proyecto
│-- record_manager_cache.sql                # Contiene el registro de qué vectores ingresaron a la base de datos vectorial

Ambiente

  • Sistema Ubuntu 22.04
  • Entorno virtual conda con python = 3.12

Entorno virtual

Instalar en el entorno virtual las siguientes librerías

  1. Instalar SGLang:
pip install uv
uv pip install "sglang[all]>=0.4.4.post3" --find-links https://flashinfer.ai/whl/cu124/torch2.5/flashinfer-python
  1. Instalar Langchain-Openai:
pip install langchain-openai
  1. Instalar Dotenv:
conda install conda-forge::python-dotenv
  1. Instalar langchain-community y beautifulsoup4:
pip install langchain-community beautifulsoup4
  1. Instalar langchain-chroma
pip install langchain-chroma
  1. Instalar langgraph
pip install langgraph
  1. Instalar langmem
pip install langmem
  1. Instalar streamlit
pip install streamlit

Guía para configurar el proyecto

  1. Clonar el repositorio del proyecto

  2. Dentro de la carpeta del proyecto clonar el repositorio con los pesos del modelo de deepseek:

git clone https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B
  1. Crear dentro de la carpeta del proyecto el archivo .env. Después, colocar las keys requeridas en el archivo .env teniendo como referencia el archivo .env_example.

Uso

Con el entorno virtual creado previamente

Ejecutar el Servidor de Deepseek

python src/deepseekServer.py

El servidor con el modelo de deepseek se ejecutará y estará listo para recibir mensajes del usuario.

Ejecutar la aplicación

En otra terminal

python -m streamlit run src/app.py

Se abrirá en el navegador la interfaz visual del chatbot con el cual se podrá interactuar.

Referencias

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages