Skip to content

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érica

Arquitectura

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:

php
// 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-agenteIntenciónEscenario
FormViewSubAgentformPágina de formulario
InfoViewSubAgentinfoPágina de presentación de información
ReportViewSubAgentreportPágina de informes/estadísticas
LandingViewSubAgentlandingPágina de aterrizaje/marketing
EmailViewSubAgentemailCorreo comercial
GeneralViewSubAgentgeneralPágina genérica

Tareas asíncronas

La mejora de vistas se ejecuta de forma asíncrona mediante Symfony Messenger para no bloquear las peticiones:

php
// 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 AiViewEnhanceTask con el estado de la tarea
  • Se llama al sub-agente para generar la vista
  • Se actualiza AiOperationLog registrando 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:

javascript
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

EntidadDescripción
AiChatSessionSesión de IA (mantiene el contexto entre peticiones)
AiChatMessageMensajes de la sesión
AiOperationLogRegistro de operaciones de IA
AiViewEnhanceTaskEstado 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 progreso

Configuración de LLM

Soporta el modo de pensamiento profundo de los modelos DeepSeek y el ajuste del esfuerzo de razonamiento:

bash
# .env
DEEPSEEK_MODEL_ID=deepseek-reasoner
DEEPSEEK_REASONING_EFFORT=medium  # low / medium / high

Integració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

ArchivoResponsabilidad
IntentAgent.phpAgente principal de reconocimiento de intenciones
ViewEnhanceAgentOrchestrator.phpOrquestador de mejora
ViewSubAgentChatRouter.phpEnrutamiento de diálogo de los sub-agentes
AbstractViewSubAgent.phpClase base abstracta de los sub-agentes
EnhanceViewMessage.phpMensaje de tarea asíncrona
EnhanceViewMessageHandler.phpProcesador de tareas asíncronas
ViewAiTaskApiController.phpAPI de tareas IA
AiViewEnhanceTask.phpEntidad de estado de la tarea

Código abierto bajo MIT | Copyright © 2026 Doggy