La aplicación IAKATA es un sistema de asistencia basado en la metodología LeanKata que utiliza tecnología RAG (Retrieval-Augmented Generation) y LLMs (Modelos de Lenguaje de Aprendizaje Profundo) para ayudar a los usuarios a implementar procesos de mejora continua en sus organizaciones. El sistema se integra con la aplicación LK-WEB a través de una API REST, permitiendo a los usuarios completar "tableros" LeanKata con información de calidad, recibir validaciones y sugerencias en tiempo real, y mantener una base de conocimiento de todos los proyectos de mejora acometidos. El asistente chatbot guía a los usuarios a través de la metodología, ayudándoles a definir retos, estados objetivo, obstáculos, experimentos, y a documentar resultados y aprendizajes, facilitando así la resolución de problemas en equipos multidisciplinares de manera estructurada.
- Características
- Arquitectura
- Requisitos
- Instalación
- Uso
- Estructura del Proyecto
- Módulos Principales
- API
- Contribución
- Integración con LK-WEB: Se conecta con la aplicación LK-WEB mediante API REST para proporcionar asistencia inteligente.
- RAG (Retrieval-Augmented Generation): Combina la búsqueda de información relevante con la generación de respuestas contextualizadas.
- Asistencia en tiempo real: Proporciona validaciones y sugerencias mientras los usuarios completan los tableros LeanKata.
- Base de conocimiento: Mantiene y accede a una base de conocimiento compartida sobre proyectos de mejora.
- Procesamiento en lenguaje natural: Entiende consultas en español relacionadas con la metodología LeanKata.
- Chatbot interactivo: Permite a los usuarios hacer preguntas sobre la metodología o recibir ayuda específica.
- Generación de documentación: Crea documentación automática de proyectos para facilitar la transferencia de conocimiento.
IAKATA sigue una arquitectura modular basada en los siguientes componentes:
- API REST: Interfaz de comunicación con LK-WEB.
- Knowledge Sources Manager: Gestiona las fuentes de conocimiento (documentos, BD).
- Index & Vector Store: Procesa e indexa la información para búsqueda eficiente.
- Retriever: Recupera información relevante basada en consultas.
- RAG Orchestrator: Coordina el flujo entre recuperación de información y generación de respuestas.
- LLM: Módulo de interacción con GPT-4o-mini para la generación de respuestas.
- Chat Manager: Gestiona las conversaciones con los usuarios.
- Documentation Generator: Genera documentación automática de proyectos.
- Python 3.11.9
- Acceso a la API de OpenAI
- Base de datos LK-WEB (para integración)
# Clonar el repositorio
git clone https://github.com/AI-School-F5-P3/iakata.git
cd iakata
# Crear entorno virtual
python -m venv venv
source venv/bin/activate # En Windows: venv\Scripts\activate
# Instalar dependencias
pip install -r requirements.txt
# Create the file .env located in the folder "IAKATA"
# Copy the information placed on ´.env_example´ and fill it with your personal data# Modo desarrollo
uvicorn app.main:app --reload
# Modo producción
uvicorn app.main:app --host 0.0.0.0 --port 8000python -m app.test_chat_4PROYECTO_IAKATA/
│
├── IAKATA/
│ ├── .devcontainer/
│ ├── .pytest_cache/
│ ├── app/
│ │ ├── documentation/
│ │ ├── front/
│ │ ├── knowledge/
│ │ ├── llm/
│ │ ├── models/
│ │ ├── monitoring/
│ │ ├── orchestrator/
│ │ ├── retriever/
│ │ ├── utils/
│ │ ├── vectorstore/
│ │ ├── __init__.py
│ │ ├── main.py
│ │ ├── test_chat_2.py
│ │ ├── test_chat_3.py
│ │ ├── test_chat_4.py
│ │ └── test_vector_store.py
│ │
│ ├── cache/
│ ├── docs/
│ │ └── architecture/
│ │ ├── complete_modules.mermaid
│ │ ├── flow-diagram-spaced.mermaid
│ │ ├── medium.mermaid
│ │ ├── project-structure.md
│ │ └── simple.mermaid
│ │
│ ├── logs/
│ ├── test/
│ ├── tests/
│ ├── __init__.py
│ ├── .dockerignore
│ ├── .env
│ ├── .gitignore
│ ├── docker-compose.yml
│ ├── docker-compose.yml.backup
│ ├── Dockerfile
│ └── Dockerfile.fastapi
│
├── OUTLINE/
├── TIMELINE/
├── MYSQL/
└── SONARQUBE ISSUE LOCATIONS/
Gestiona y actualiza toda la información relevante que se utilizará en el proceso de búsqueda y generación de respuestas, incluyendo conexión con repositorios (documentos PDF, base de datos LK-WEB) y mecanismos de ingesta de datos.
Localiza y prioriza la información relevante en la base de conocimiento, en respuesta a las consultas de los usuarios o de la aplicación LK-WEB, utilizando búsqueda semántica, ranking y filtrado de resultados.
Coordina la comunicación entre el Módulo de Recuperación, el LLM y la capa de negocio de LK-WEB, gestionando el contexto, ensamblando prompts y procesando respuestas.
Provee respuestas, sugerencias y orientación basadas en la información contextual recibida y el conocimiento general del modelo, con control de temperatura para ajustar el estilo según las necesidades.
Administra la interacción conversacional del usuario con el sistema, manteniendo el estado de la conversación y permitiendo un diálogo continuo y coherente.
IAKATA expone los siguientes endpoints principales:
/board/ai: Para validar y mejorar secciones del tablero/chatbot: Para interactuar con el asistente mediante chat/doc: Para la generación de documentación
Consulta la documentación completa de la API en /docs cuando el servidor esté en ejecución.
- Fork el repositorio
- Crea una nueva rama (
git checkout -b feature/nueva-funcionalidad) - Realiza tus cambios
- Ejecuta los tests (
pytest) - Haz commit de tus cambios (
git commit -m 'Añade nueva funcionalidad') - Push a la rama (
git push origin feature/nueva-funcionalidad) - Abre un Pull Request