Mejora de vistas IA
Doggy ofrece un sistema de mejora de vistas impulsado por IA que, mediante un Agente principal de reconocimiento de intenciones + 6 sub-agentes de escenario, clasifica automáticamente las necesidades expresadas en lenguaje natural y las enruta al sub-agente correspondiente para generar la vista, con soporte para ejecución de tareas asíncronas y envío de progreso en tiempo real.
Descripción general
El sistema de mejora de vistas IA se encuentra en src/Service/AI/Orchestrator/, construido sobre la base del sistema LlmRole/LlmProvider:
Necesidad del usuario (lenguaje natural)
→ IntentAgent (Agente principal de reconocimiento de intenciones)
→ FormViewSubAgent Vista de formulario
→ InfoViewSubAgent Vista de presentación de información
→ ReportViewSubAgent Vista de informes
→ LandingViewSubAgent Vista de página de aterrizaje
→ EmailViewSubAgent Vista de correo comercial
→ GeneralViewSubAgent Vista genéricaArquitectura
Agente principal de reconocimiento de intenciones
IntentAgent determina mediante LLM el tipo de intención de la necesidad del usuario y enruta al sub-agente correspondiente:
// src/Service/AI/Orchestrator/IntentAgent.php
class IntentAgent
{
public function classify(string $userMessage): string
{
// Devuelve el tipo de intención: form / info / report / landing / email / general
}
}Sub-agentes de escenario
Cada sub-agente hereda de AbstractViewSubAgent e implementa ViewSubAgentInterface:
| Sub-agente | Intención | Escenario |
|---|---|---|
FormViewSubAgent | form | Página de formulario |
InfoViewSubAgent | info | Página de presentación de información |
ReportViewSubAgent | report | Página de informes/estadísticas |
LandingViewSubAgent | landing | Página de aterrizaje/marketing |
EmailViewSubAgent | Correo comercial | |
GeneralViewSubAgent | general | Página genérica |
Tareas asíncronas
La mejora de vistas se ejecuta de forma asíncrona mediante Symfony Messenger para no bloquear las peticiones:
// src/Message/EnhanceViewMessage.php
class EnhanceViewMessage
{
public function __construct(
public readonly string $viewId,
public readonly string $prompt,
) {}
}Después del procesamiento por EnhanceViewMessageHandler:
- Se crea un registro
AiViewEnhanceTaskcon el estado de la tarea - Se llama al sub-agente para generar la vista
- Se actualiza
AiOperationLogregistrando la operación - Se envía el progreso de la tarea mediante Mercure
Progreso en tiempo real
El progreso de las tareas IA se envía mediante Mercure SSE, y el frontend se suscribe a través de EventSource:
const url = new URL('/.well-known/mercure', window.location.origin);
url.searchParams.append('topic', `/user/${userId}/ai-task`);
const eventSource = new EventSource(url);
eventSource.onmessage = (event) => {
const data = JSON.parse(event.data);
// Actualizar el progreso de la tarea
};Modelos de entidad
| Entidad | Descripción |
|---|---|
AiChatSession | Sesión de IA (mantiene el contexto entre peticiones) |
AiChatMessage | Mensajes de la sesión |
AiOperationLog | Registro de operaciones de IA |
AiViewEnhanceTask | Estado de la tarea de mejora de vistas |
Flujo de llamada
El usuario crea/edita una vista
→ Introduce la necesidad en lenguaje natural
→ POST /api/admin/platform/view-ai-task
→ IntentAgent clasifica la intención
→ Enrutamiento al sub-agente
→ Ejecución asíncrona (EnhanceViewMessage)
→ Generación del archivo de vista
→ Mercure envía el progresoConfiguración de LLM
Soporta el modo de pensamiento profundo de los modelos DeepSeek y el ajuste del esfuerzo de razonamiento:
# .env
DEEPSEEK_MODEL_ID=deepseek-reasoner
DEEPSEEK_REASONING_EFFORT=medium # low / medium / highIntegración con el editor de vistas
El componente de mejora IA está integrado en la página de creación de vistas (_ai_enhance_component.html.twig):
- Asistencia de edición IA al crear vistas
- Operaciones de mejora en la página de detalle de la vista (
view_detail.html.twig) - Cuadro de diálogo de confirmación de eliminación de vistas
Archivos relacionados
| Archivo | Responsabilidad |
|---|---|
IntentAgent.php | Agente principal de reconocimiento de intenciones |
ViewEnhanceAgentOrchestrator.php | Orquestador de mejora |
ViewSubAgentChatRouter.php | Enrutamiento de diálogo de los sub-agentes |
AbstractViewSubAgent.php | Clase base abstracta de los sub-agentes |
EnhanceViewMessage.php | Mensaje de tarea asíncrona |
EnhanceViewMessageHandler.php | Procesador de tareas asíncronas |
ViewAiTaskApiController.php | API de tareas IA |
AiViewEnhanceTask.php | Entidad de estado de la tarea |