mirror of
https://github.com/marcogll/talia_bot.git
synced 2026-01-13 21:35:19 +00:00
docs: Update README with latest features and architecture
This commit completely revamps the README.md to reflect the current state of the project. - **Update Roadmap:** Mark the Remote Printing and Sales RAG Flow features as complete and reorganize the list for clarity. - **Rewrite Features Section:** Add detailed descriptions of the new Sales RAG Flow and the Remote Printing Service, explaining how they work. - **Refine Architecture Description:** Rewrite the "Concepto Central" section to more accurately describe the bot's architecture as an autonomous agent cycle (Reception -> Identification -> Routing -> Execution). - **Update Role Descriptions:** Adjust the permission descriptions for each user role to match the newly implemented features.
This commit is contained in:
91
README.md
91
README.md
@@ -4,61 +4,58 @@ Talia es un **Middleware de Inteligencia Artificial** diseñado para orquestar o
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🚀 Concepto Central: Arquitectura Modular y Roles de Usuario
|
## 🚀 Concepto Central: Arquitectura de Agente Autónomo
|
||||||
|
|
||||||
La funcionalidad del bot se basa en dos pilares:
|
El bot opera como un agente que sigue un ciclo de **Recepción -> Identificación -> Enrutamiento -> Ejecución**.
|
||||||
|
|
||||||
1. **Enrutamiento por Identidad**: El bot identifica a cada usuario por su Telegram ID y le asigna un rol (`admin`, `crew`, `client`). Cada rol tiene acceso a un conjunto diferente de funcionalidades y menús, definidos en una base de datos SQLite.
|
1. **Recepción de Mensajes**: `main.py` actúa como el punto de entrada que recibe todos los inputs (texto, botones, comandos, documentos) desde Telegram.
|
||||||
2. **Motor de Flujos de Conversación**: En lugar de código rígido, las conversaciones se definen como "flujos" en archivos **JSON** (`talia_bot/data/flows/`). Un motor central (`flow_engine.py`) interpreta estos archivos para guiar al usuario a través de una serie de preguntas y respuestas, haciendo que el sistema sea altamente escalable y fácil de mantener.
|
2. **Identificación de Usuario**: Al recibir un mensaje, el módulo `identity.py` consulta la base de datos (`users.db`) para obtener el rol del usuario (`admin`, `crew`, `client`).
|
||||||
|
3. **Enrutamiento de Acciones**:
|
||||||
|
* **Si el usuario está en una conversación activa**, el `flow_engine.py` toma el control y procesa la respuesta según la definición del flujo JSON correspondiente.
|
||||||
|
* **Si el usuario no está en una conversación**, el sistema le muestra un menú de botones. Estos menús se generan dinámicamente a partir de los archivos de flujo en `talia_bot/data/flows/` que tienen una clave `"trigger_button"`.
|
||||||
|
4. **Ejecución de Módulos**: Dependiendo de la acción, se invocan módulos específicos para interactuar con APIs externas:
|
||||||
|
* `sales_rag.py` para generar respuestas de ventas con IA.
|
||||||
|
* `printer.py` para enviar correos de impresión.
|
||||||
|
* `vikunja.py` para gestionar tareas.
|
||||||
|
* `calendar.py` para consultar la agenda.
|
||||||
|
|
||||||
| Rol | Icono | Descripción | Permisos Clave |
|
| Rol | Icono | Descripción | Permisos Clave |
|
||||||
| :------ | :---: | :------------------ | :-------------------------------------------------------------------------- |
|
| :------ | :---: | :------------------ | :-------------------------------------------------------------------------- |
|
||||||
| **Admin** | 👑 | Dueño / Gerente | Control total: gestión de proyectos, agenda, y configuración del sistema. |
|
| **Admin** | 👑 | Dueño / Gerente | Control total: gestión de proyectos, agenda, impresión y configuración del sistema. |
|
||||||
| **Crew** | 👷 | Equipo Operativo | Funciones limitadas: solicitud de agenda, impresión de documentos. |
|
| **Crew** | 👷 | Equipo Operativo | Funciones limitadas: solicitud de agenda y consulta de tareas. |
|
||||||
| **Cliente** | 👤 | Usuario Externo | Embudo de ventas: captación de datos y presentación de servicios. |
|
| **Cliente** | 👤 | Usuario Externo | Embudo de ventas: captación de datos y generación de propuestas con IA. |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 📋 Flujos de Trabajo Modulares (Features)
|
## 📋 Flujos de Trabajo y Funcionalidades Clave
|
||||||
|
|
||||||
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.
|
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` que define una conversación paso a paso, permitiendo una fácil personalización.
|
||||||
|
|
||||||
### 1. 👑 Gestión Admin (Proyectos & Identidad)
|
### 1. 🤖 Flujo de Ventas RAG (Retrieval-Augmented Generation)
|
||||||
|
|
||||||
* **Proyectos (Vikunja)**:
|
Este es el embudo de ventas principal para nuevos clientes. El bot inicia una conversación para entender las necesidades del prospecto y luego utiliza un modelo de IA para generar una propuesta personalizada.
|
||||||
* Resumen inteligente de estatus de proyectos.
|
|
||||||
* Comandos naturales: *"Marca el proyecto de web como terminado y comenta que se envió factura"*.
|
|
||||||
* **Wizard de Identidad (NFC)**:
|
|
||||||
* Flujo paso a paso para dar de alta colaboradores.
|
|
||||||
* Genera JSON de registro y String Base64 listo para escribir en Tags NFC.
|
|
||||||
* Inputs: Nombre, ID Empleado, Sucursal (Botones), Telegram ID.
|
|
||||||
|
|
||||||
### 2. 👷 Gestión Crew (Agenda & Tareas)
|
* **Recopilación de Datos**: El flujo (`client_sales_funnel.json`) guía al usuario a través de una serie de preguntas para recopilar su nombre, industria y la descripción de su proyecto.
|
||||||
|
* **Recuperación de Conocimiento (Retrieval)**: El sistema consulta una base de datos de servicios (`servicios.json`) para encontrar las soluciones más relevantes basadas en las palabras clave del cliente.
|
||||||
|
* **Generación Aumentada (Augmented Generation)**: Con la información del cliente y los servicios relevantes, el bot construye un *prompt* detallado y lo envía al `llm_engine` (conectado a OpenAI). El modelo de lenguaje genera una respuesta que conecta las necesidades del cliente con los servicios y ejemplos de trabajo concretos.
|
||||||
|
* **Llamada a la Acción**: La respuesta siempre termina sugiriendo el siguiente paso, como agendar una llamada.
|
||||||
|
|
||||||
* **Solicitud de Tiempo (Wizard)**:
|
### 2. 🖨️ Servicio de Impresión Remota
|
||||||
* Solicita espacios de 1 a 4 horas.
|
|
||||||
* **Reglas de Negocio**:
|
|
||||||
* No permite fechas > 3 meses a futuro.
|
|
||||||
* **Gatekeeper**: Verifica Google Calendar. Si hay evento "Privado" del Admin, rechaza automáticamente.
|
|
||||||
* **Modo Buzón (Vikunja)**:
|
|
||||||
* Crea tareas asignadas al Admin.
|
|
||||||
* **Privacidad**: Solo pueden consultar el estatus de tareas creadas por ellos mismos.
|
|
||||||
|
|
||||||
### 3. 🖨️ Sistema de Impresión Remota (Print Loop)
|
Permite a los usuarios autorizados (`admin`) enviar documentos a una impresora física directamente desde Telegram.
|
||||||
|
|
||||||
* Permite enviar archivos desde Telegram a la impresora física de la oficina.
|
* **Envío (SMTP)**: Al recibir un archivo, el bot lo adjunta a un correo electrónico y lo envía a la dirección de la impresora preconfigurada usando credenciales SMTP.
|
||||||
* **Envío (SMTP)**: El bot envía el documento a un correo designado.
|
* **Monitoreo de Estado (IMAP)**: Un comando `/check_print_status` permite al administrador consultar la bandeja de entrada de la impresora. El bot se conecta vía IMAP, busca correos no leídos y reporta el estado de los trabajos de impresión basándose en palabras clave en el asunto (ej. "completed", "failed").
|
||||||
* **Tracking**: El asunto del correo lleva un hash único: `PJ:{uuid}#TID:{telegram_id}`.
|
|
||||||
* **Confirmación (IMAP Listener)**: Un proceso en background escucha la respuesta de la impresora y notifica al usuario en Telegram.
|
|
||||||
|
|
||||||
El sistema opera con el siguiente flujo:
|
### 3. 📅 Gestión de Agenda y Tareas
|
||||||
|
|
||||||
1. **Recepción de Mensajes**: `main.py` recibe todos los inputs (texto, botones, comandos) desde Telegram.
|
* **Consulta de Agenda**: Se integra con **Google Calendar** para mostrar los eventos del día.
|
||||||
2. **Identificación de Usuario**: Se consulta la base de datos (`users.db`) para obtener el rol del usuario.
|
* **Gestión de Tareas**: Se conecta a **Vikunja** para permitir la creación y seguimiento de tareas desde Telegram.
|
||||||
3. **Dispatching de Acciones**:
|
|
||||||
* Si el usuario no está en una conversación, se le muestra un menú de botones basado en los flujos JSON disponibles para su rol.
|
### 4. 🛂 Sistema de Roles y Permisos
|
||||||
* Si el usuario ya está en una conversación, el `flow_engine.py` gestiona la respuesta.
|
|
||||||
4. **Ejecución de Módulos**: El motor de flujos invoca módulos específicos (`vikunja.py`, `calendar.py`, etc.) para interactuar con APIs externas según sea necesario.
|
* El acceso a las funcionalidades está restringido por roles (`admin`, `crew`, `client`), los cuales se gestionan en una base de datos **SQLite**.
|
||||||
|
* Los menús y opciones se muestran dinámicamente según el rol del usuario, asegurando que cada quien solo vea las herramientas que le corresponden.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -159,12 +156,20 @@ talia_bot/
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🗓️ Roadmap
|
## 🗓️ Roadmap y Funcionalidades Completadas
|
||||||
|
|
||||||
- [ ] Implementar Wizard de creación de Tags NFC (Base64).
|
### Funcionalidades Implementadas
|
||||||
- [ ] Conectar Loop de Impresión (SMTP/IMAP).
|
- **✅ Motor de Flujos Conversacionales (JSON)**: Arquitectura central para conversaciones dinámicas.
|
||||||
- [ ] Migrar de OpenAI a Google Gemini 1.5 Pro.
|
- **✅ Gestión de Roles y Permisos**: Sistema de `admin`, `crew`, y `client`.
|
||||||
- [ ] Implementar soporte para fotos en impresión.
|
- **✅ Integración con Vikunja**: Creación y consulta de tareas.
|
||||||
|
- **✅ Integración con Google Calendar**: Consulta de agenda.
|
||||||
|
- **✅ Servicio de Impresión Remota (SMTP/IMAP)**: Envío de documentos y monitoreo de estado.
|
||||||
|
- **✅ Flujo de Ventas RAG**: Captura de leads y generación de propuestas personalizadas con IA.
|
||||||
|
|
||||||
|
### Próximos Pasos
|
||||||
|
- [ ] **Wizard de Creación de Tags NFC (Base64)**: Implementar el flujo completo para registrar nuevos colaboradores.
|
||||||
|
- [ ] **Soporte para Fotos en Impresión**: Añadir la capacidad de enviar imágenes al servicio de impresión.
|
||||||
|
- [ ] **Migración a Google Gemini 1.5 Pro**: Evaluar y migrar el motor de IA para optimizar costos y capacidades.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -7,19 +7,27 @@
|
|||||||
{
|
{
|
||||||
"step_id": 0,
|
"step_id": 0,
|
||||||
"variable": "CLIENT_NAME",
|
"variable": "CLIENT_NAME",
|
||||||
"question": "Hola. Soy Talia, la mano derecha de Armando. ✨Él está ocupado creando, pero yo soy la puerta de entrada. ¿Con quién tengo el gusto?",
|
"question": "Hola, soy Talía. ✨ Estoy aquí para ayudarte a explorar cómo podemos potenciar tu negocio. Para empezar, ¿cuál es tu nombre?",
|
||||||
"input_type": "text"
|
"input_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"step_id": 1,
|
"step_id": 1,
|
||||||
"variable": "CLIENT_INDUSTRY",
|
"variable": "CLIENT_INDUSTRY",
|
||||||
"question": "Mucho gusto, {user_name}. Para entender mejor tus necesidades, ¿cuál es el giro de tu negocio o tu industria?",
|
"question": "Mucho gusto. Para poder ofrecerte la solución más adecuada, por favor, selecciona el área que mejor describa tu negocio:",
|
||||||
"options": ["🍽️ Restaurantes", "🩺 Salud", "🛍️ Retail", "อื่น ๆ"]
|
"options": [
|
||||||
|
"🎨 Diseño Gráfico",
|
||||||
|
"🎬 Contenido Audiovisual",
|
||||||
|
"📈 Estrategias de Marketing",
|
||||||
|
"🌐 Desarrollo Web",
|
||||||
|
"🤖 Bots y Automatización",
|
||||||
|
"⚙️ Mejora de Procesos",
|
||||||
|
"💡 Otro"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"step_id": 2,
|
"step_id": 2,
|
||||||
"variable": "IDEA_PITCH",
|
"variable": "IDEA_PITCH",
|
||||||
"question": "Excelente. Ahora, el escenario es tuyo. 🎤 Cuéntame sobre tu proyecto o la idea que tienes en mente. No te guardes nada. Puedes escribirlo o, si prefieres, enviarme una nota de voz.",
|
"question": "Excelente. Ahora, cuéntame sobre tu proyecto o la idea que tienes en mente. ¿Qué desafío buscas resolver o qué oportunidad quieres aprovechar? Puedes escribirlo o enviarme una nota de voz.",
|
||||||
"input_type": "text_or_audio"
|
"input_type": "text_or_audio"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,22 +1,145 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"service_name": "Web Development for Restaurants",
|
"service_name": "Diseño gráfico",
|
||||||
"description": "Custom websites and online ordering systems for restaurants, helping you reach more customers and streamline your operations.",
|
"description": "Soluciones completas de identidad visual y material gráfico para fortalecer la imagen de marca en medios digitales e impresos.",
|
||||||
"keywords": ["restaurant", "food", "online ordering", "website", "restaurantes", "comida"]
|
"keywords": [
|
||||||
|
"branding",
|
||||||
|
"logotipos",
|
||||||
|
"identidad visual",
|
||||||
|
"diseño publicitario",
|
||||||
|
"manual de marca",
|
||||||
|
"formatos impresos"
|
||||||
|
],
|
||||||
|
"work_examples": [
|
||||||
|
"Creación de Identidad Visual (Logotipo, paleta de colores, tipografías)",
|
||||||
|
"Diseño de Manual de Marca y aplicaciones",
|
||||||
|
"Diseño de Flyers y Trípticos promocionales",
|
||||||
|
"Diseño de Tarjetas de Presentación (Digitales e Impresas)",
|
||||||
|
"Diseño de Banners para campañas publicitarias y redes sociales",
|
||||||
|
"Adaptación de artes para diferentes formatos (Instagram, LinkedIn, Web)"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"service_name": "Patient Management Systems for Healthcare",
|
"service_name": "Producción de contenido audiovisual",
|
||||||
"description": "A secure and efficient software solution for managing patient records, appointments, and billing in medical clinics.",
|
"description": "Creación, edición y postproducción de contenido de video profesional enfocado en retener la atención y comunicar mensajes clave.",
|
||||||
"keywords": ["healthcare", "medical", "patient", "clinic", "salud", "médico", "pacientes"]
|
"keywords": [
|
||||||
|
"video marketing",
|
||||||
|
"reels",
|
||||||
|
"tiktok",
|
||||||
|
"edición de video",
|
||||||
|
"podcast",
|
||||||
|
"youtube",
|
||||||
|
"guiones",
|
||||||
|
"postproducción"
|
||||||
|
],
|
||||||
|
"work_examples": [
|
||||||
|
"Edición dinámica de videos verticales (Reels/TikTok)",
|
||||||
|
"Producción y edición de episodios de Podcast",
|
||||||
|
"Creación de videos corporativos para YouTube",
|
||||||
|
"Animación de logotipos (Intros/Outros)",
|
||||||
|
"Subtitulado y efectos visuales para clips de redes sociales",
|
||||||
|
"Grabación y edición multicámara"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"service_name": "Content Creation & Social Media Strategy",
|
"service_name": "Estrategias de marketing",
|
||||||
"description": "Engaging content packages and social media management to build your brand's online presence and connect with your audience.",
|
"description": "Planificación y ejecución de estrategias de contenido para redes sociales, enfocadas en crecimiento, interacción y posicionamiento.",
|
||||||
"keywords": ["content creation", "social media", "marketing", "branding", "contenido", "redes sociales"]
|
"keywords": [
|
||||||
|
"social media",
|
||||||
|
"estrategia de contenidos",
|
||||||
|
"engagement",
|
||||||
|
"copywriting",
|
||||||
|
"calendario editorial",
|
||||||
|
"crecimiento orgánico"
|
||||||
|
],
|
||||||
|
"work_examples": [
|
||||||
|
"Diseño de parrilla de contenidos mensual",
|
||||||
|
"Creación de creativos gráficos para posts y carruseles",
|
||||||
|
"Redacción de copies persuasivos y llamadas a la acción (CTA)",
|
||||||
|
"Planificación de campañas de lanzamiento",
|
||||||
|
"Análisis de tendencias y competencia en redes sociales"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"service_name": "General Business Consulting",
|
"service_name": "Desarrollo de páginas web",
|
||||||
"description": "Strategic consulting to help you optimize business processes, identify growth opportunities, and improve overall performance.",
|
"description": "Diseño y desarrollo de sitios web funcionales y optimizados, desde páginas de aterrizaje hasta tiendas en línea completas.",
|
||||||
"keywords": ["business", "consulting", "strategy", "growth", "negocio", "consultoría"]
|
"keywords": [
|
||||||
|
"desarrollo web",
|
||||||
|
"e-commerce",
|
||||||
|
"landing page",
|
||||||
|
"seo",
|
||||||
|
"ux/ui",
|
||||||
|
"tienda online",
|
||||||
|
"pasarelas de pago"
|
||||||
|
],
|
||||||
|
"work_examples": [
|
||||||
|
"Desarrollo de E-commerce con catálogo y pasarela de pagos",
|
||||||
|
"Diseño de Landing Pages optimizadas para conversión (Captación de Leads)",
|
||||||
|
"Creación de Sitios Web Corporativos institucionales",
|
||||||
|
"Integración de herramientas de análisis (Google Analytics, Pixel)",
|
||||||
|
"Optimización SEO básica y velocidad de carga",
|
||||||
|
"Mantenimiento y actualización de sitios web"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"service_name": "Bots para venta y agenda",
|
||||||
|
"description": "Implementación de asistentes virtuales inteligentes para gestionar clientes, automatizar ventas y agendar citas automáticamente.",
|
||||||
|
"keywords": [
|
||||||
|
"chatbots",
|
||||||
|
"whatsapp business",
|
||||||
|
"automatización de ventas",
|
||||||
|
"atención al cliente",
|
||||||
|
"flujos conversacionales",
|
||||||
|
"crm"
|
||||||
|
],
|
||||||
|
"work_examples": [
|
||||||
|
"Configuración de Bot de WhatsApp para atención 24/7",
|
||||||
|
"Automatización de agendamiento de citas y recordatorios",
|
||||||
|
"Diseño de flujos de conversación para calificación de leads",
|
||||||
|
"Respuestas automáticas a preguntas frecuentes (FAQs)",
|
||||||
|
"Integración de chatbot con base de datos de clientes",
|
||||||
|
"Segmentación automática de usuarios según sus respuestas"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"service_name": "Consultoria de mejora de procesos",
|
||||||
|
"description": "Servicios de consultoría estratégica para optimizar flujos de trabajo y tomar decisiones basadas en datos y análisis.",
|
||||||
|
"keywords": [
|
||||||
|
"consultoría de negocios",
|
||||||
|
"optimización de procesos",
|
||||||
|
"análisis de datos",
|
||||||
|
"encuestas",
|
||||||
|
"kpis",
|
||||||
|
"mejora continua"
|
||||||
|
],
|
||||||
|
"work_examples": [
|
||||||
|
"Implementación de encuestas de satisfacción de clientes",
|
||||||
|
"Análisis y reporte de métricas de negocio",
|
||||||
|
"Auditoría de procesos operativos actuales",
|
||||||
|
"Diseño de formularios interactivos para recolección de datos",
|
||||||
|
"Identificación de cuellos de botella y oportunidades de mejora"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"service_name": "Automatización de procesos e integración de IA a tu negocio",
|
||||||
|
"description": "Soluciones avanzadas de automatización de flujos de trabajo e integración de Inteligencia Artificial para reducir tareas repetitivas y escalar operaciones.",
|
||||||
|
"keywords": [
|
||||||
|
"inteligencia artificial",
|
||||||
|
"automatización",
|
||||||
|
"zapier",
|
||||||
|
"make",
|
||||||
|
"chatgpt",
|
||||||
|
"api",
|
||||||
|
"productividad",
|
||||||
|
"workflows"
|
||||||
|
],
|
||||||
|
"work_examples": [
|
||||||
|
"Conexión de aplicaciones mediante Zapier o Make (ej. Gmail a Slack)",
|
||||||
|
"Implementación de agentes de IA personalizados (GPTs) para tareas específicas",
|
||||||
|
"Automatización de generación de facturas y reportes",
|
||||||
|
"Clasificación y respuesta automática de correos electrónicos con IA",
|
||||||
|
"Extracción y procesamiento automático de datos de documentos",
|
||||||
|
"Integración de APIs de IA en sistemas internos de la empresa"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -41,24 +41,33 @@ def generate_sales_pitch(user_query, collected_data):
|
|||||||
relevant_services = find_relevant_services(user_query, services)
|
relevant_services = find_relevant_services(user_query, services)
|
||||||
|
|
||||||
if not relevant_services:
|
if not relevant_services:
|
||||||
# Fallback if no specific services match
|
# Fallback to all services if no specific keywords match
|
||||||
context_str = "No specific services match the user's request, but we can offer general business consulting."
|
context_str = "Aquí hay una descripción general de nuestros servicios:\n"
|
||||||
else:
|
for service in services:
|
||||||
context_str = "Based on your needs, here are some services we offer:\n"
|
|
||||||
for service in relevant_services:
|
|
||||||
context_str += f"- **{service['service_name']}**: {service['description']}\n"
|
context_str += f"- **{service['service_name']}**: {service['description']}\n"
|
||||||
|
else:
|
||||||
|
context_str = "Según tus necesidades, aquí tienes algunos de nuestros servicios y ejemplos de lo que podemos hacer:\n"
|
||||||
|
for service in relevant_services:
|
||||||
|
context_str += f"\n**Servicio:** {service['service_name']}\n"
|
||||||
|
context_str += f"*Descripción:* {service['description']}\n"
|
||||||
|
if "work_examples" in service:
|
||||||
|
context_str += "*Ejemplos de trabajo:*\n"
|
||||||
|
for example in service["work_examples"]:
|
||||||
|
context_str += f" - {example}\n"
|
||||||
|
|
||||||
prompt = (
|
prompt = (
|
||||||
f"El cliente {collected_data.get('CLIENT_NAME', 'un cliente')} "
|
f"Eres Talía, una asistente de ventas experta y amigable. Un cliente potencial llamado "
|
||||||
f"del sector {collected_data.get('CLIENT_INDUSTRY', 'no especificado')} "
|
f"{collected_data.get('CLIENT_NAME', 'cliente')} del sector "
|
||||||
f"ha descrito su proyecto de la siguiente manera: '{user_query}'.\n\n"
|
f"'{collected_data.get('CLIENT_INDUSTRY', 'no especificado')}' "
|
||||||
f"Aquí hay información sobre nuestros servicios que podría ser relevante para ellos:\n{context_str}\n\n"
|
f"ha descrito su proyecto o necesidad de la siguiente manera: '{user_query}'.\n\n"
|
||||||
"Actúa como un asistente de ventas amigable y experto llamado Talia. "
|
"A continuación, se presenta información sobre nuestros servicios que podría ser relevante para ellos:\n"
|
||||||
"Tu objetivo es conectar su idea con nuestros servicios y proponer los siguientes pasos. "
|
f"{context_str}\n\n"
|
||||||
"Genera una respuesta personalizada que:\n"
|
"**Tu tarea es generar una respuesta personalizada que:**\n"
|
||||||
"1. Muestre que has entendido su idea.\n"
|
"1. Demuestre que has comprendido su necesidad específica.\n"
|
||||||
"2. Destaque cómo nuestros servicios pueden ayudarles a alcanzar sus objetivos.\n"
|
"2. Conecte de manera clara y directa su proyecto con nuestros servicios, utilizando los ejemplos de trabajo para ilustrar cómo podemos ayudar.\n"
|
||||||
"3. Termine con una llamada a la acción clara, como sugerir una llamada o una reunión para discutirlo más a fondo."
|
"3. Mantenga un tono profesional, pero cercano y proactivo.\n"
|
||||||
|
"4. Finalice con una llamada a la acción clara, sugiriendo agendar una breve llamada para explorar la idea más a fondo.\n"
|
||||||
|
"No te limites a listar los servicios; explica *cómo* se aplican a su caso."
|
||||||
)
|
)
|
||||||
|
|
||||||
return get_smart_response(prompt)
|
return get_smart_response(prompt)
|
||||||
|
|||||||
Reference in New Issue
Block a user