mirror of
https://github.com/marcogll/talia_bot.git
synced 2026-01-13 13:25:19 +00:00
feat: Implement JSON-based conversational flow engine
This commit introduces a modular, JSON-driven conversational flow engine. Key changes: - Adds `talia_bot/modules/flow_engine.py` to manage loading and processing conversational flows from external files. - Separates all conversational logic into individual JSON files within `talia_bot/data/flows/`, organized by user role (admin, crew, client). - Updates `talia_bot/main.py` to use the new flow engine, replacing the previous hardcoded logic with a dynamic dispatcher. - Corrects the `.gitignore` file to properly track the new JSON flow files while ensuring sensitive credentials like `google_key.json` remain ignored. - Updates the `README.md` to reflect the new architecture, providing clear documentation for the modular flow system. This new architecture makes the bot more maintainable and scalable by decoupling the conversation logic from the core application code.
This commit is contained in:
17
README.md
17
README.md
@@ -32,7 +32,9 @@ El sistema sigue un flujo modular:
|
||||
|
||||
---
|
||||
|
||||
## 📋 Flujos de Trabajo (Features)
|
||||
## 📋 Flujos de Trabajo Modulares (Features)
|
||||
|
||||
El comportamiento del bot se define a través de **flujos de conversación modulares** gestionados por un motor central (`flow_engine.py`). Cada flujo es un archivo `.json` independiente ubicado en `talia_bot/data/flows/`, lo que permite modificar o crear nuevas conversaciones sin alterar el código principal.
|
||||
|
||||
### 1. 👑 Gestión Admin (Proyectos & Identidad)
|
||||
|
||||
@@ -118,10 +120,11 @@ IMAP_SERVER=imap.hostinger.com
|
||||
|
||||
### 3. Estructura de Datos
|
||||
|
||||
Asegúrate de tener los archivos base en `talia_bot/data/`:
|
||||
Asegúrate de tener los archivos y directorios base en `talia_bot/data/`:
|
||||
* `servicios.json`: Catálogo de servicios para el RAG de ventas.
|
||||
* `credentials.json`: Credenciales de Google Cloud.
|
||||
* `users.db`: Base de datos SQLite.
|
||||
* `users.db`: Base de datos SQLite que almacena los roles de los usuarios.
|
||||
* `flows/`: Directorio que contiene las definiciones de los flujos de conversación en formato JSON. Cada archivo representa una conversación completa para un rol específico.
|
||||
|
||||
---
|
||||
|
||||
@@ -130,10 +133,11 @@ Asegúrate de tener los archivos base en `talia_bot/data/`:
|
||||
```text
|
||||
talia_bot_mg/
|
||||
├── talia_bot/
|
||||
│ ├── main.py # Entry Point y Router de Identidad
|
||||
│ ├── db.py # Gestión de la base de datos
|
||||
│ ├── main.py # Entry Point y dispatcher principal
|
||||
│ ├── db.py # Gestión de la base de datos SQLite
|
||||
│ ├── config.py # Carga de variables de entorno
|
||||
│ ├── modules/
|
||||
│ │ ├── flow_engine.py # Motor de flujos de conversación (lee los JSON)
|
||||
│ │ ├── identity.py # Lógica de Roles y Permisos
|
||||
│ │ ├── llm_engine.py # Cliente OpenAI/Gemini
|
||||
│ │ ├── vikunja.py # API Manager para Tareas
|
||||
@@ -141,7 +145,8 @@ talia_bot_mg/
|
||||
│ │ ├── printer.py # SMTP/IMAP Loop
|
||||
│ │ └── sales_rag.py # Lógica de Ventas y Servicios
|
||||
│ └── data/
|
||||
│ ├── servicios.json # Base de conocimiento
|
||||
│ ├── flows/ # Directorio con los flujos de conversación en JSON
|
||||
│ ├── servicios.json # Base de conocimiento para ventas
|
||||
│ ├── credentials.json # Credenciales de Google
|
||||
│ └── users.db # Base de datos de usuarios
|
||||
├── .env.example # Plantilla de variables de entorno
|
||||
|
||||
Reference in New Issue
Block a user