Aprimoramento de vista IA
O Doggy fornece um sistema de aprimoramento de vista impulsionado por IA que, através de um Agent principal de reconhecimento de intenções + 6 subagentes de cenário, classifica automaticamente as necessidades em linguagem natural e as encaminha para o subagente correspondente, gerando vistas, com suporte para execução de tarefas assíncronas e envio de progresso em tempo real.
Visão geral
O sistema de aprimoramento de vista IA localiza-se em src/Service/AI/Orchestrator/ e é construído sobre o sistema LlmRole/LlmProvider:
Necessidade do utilizador (linguagem natural)
→ IntentAgent (Agent principal de reconhecimento de intenções)
→ FormViewSubAgent vista de formulário
→ InfoViewSubAgent vista de apresentação de informação
→ ReportViewSubAgent vista de relatório
→ LandingViewSubAgent vista de página de destino
→ EmailViewSubAgent vista de email empresarial
→ GeneralViewSubAgent vista genéricaArquitetura
Agent principal de reconhecimento de intenções
IntentAgent determina através do LLM o tipo de intenção da necessidade do utilizador e encaminha para o subagente correspondente:
// src/Service/AI/Orchestrator/IntentAgent.php
class IntentAgent
{
public function classify(string $userMessage): string
{
// Retorna o tipo de intenção: form / info / report / landing / email / general
}
}Subagentes de cenário
Cada subagente herda de AbstractViewSubAgent e implementa ViewSubAgentInterface:
| Subagente | Intenção | Cenário |
|---|---|---|
FormViewSubAgent | form | página de formulário |
InfoViewSubAgent | info | página de apresentação de informação |
ReportViewSubAgent | report | página de relatório/estatísticas |
LandingViewSubAgent | landing | página de destino/marketing |
EmailViewSubAgent | email empresarial | |
GeneralViewSubAgent | general | página genérica |
Tarefas assíncronas
O aprimoramento de vista é executado de forma assíncrona através do Symfony Messenger, evitando bloquear os pedidos:
// src/Message/EnhanceViewMessage.php
class EnhanceViewMessage
{
public function __construct(
public readonly string $viewId,
public readonly string $prompt,
) {}
}Após o processamento do EnhanceViewMessageHandler:
- Cria um registo
AiViewEnhanceTaskdo estado da tarefa - Invoca o subagente para gerar a vista
- Atualiza
AiOperationLogcom o registo da operação - Envia o progresso da tarefa através do Mercure
Progresso em tempo real
O progresso das tarefas de IA é enviado através de SSE do Mercure, e o frontend subscreve com 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);
// Atualiza o progresso da tarefa
};Modelo de entidades
| Entidade | Descrição |
|---|---|
AiChatSession | Sessão de IA (mantém o contexto entre pedidos) |
AiChatMessage | Mensagem da sessão |
AiOperationLog | Registo de operações de IA |
AiViewEnhanceTask | Estado das tarefas de aprimoramento de vista |
Fluxo de invocação
Utilizador cria/edita vista
→ Insere a necessidade em linguagem natural
→ POST /api/admin/platform/view-ai-task
→ IntentAgent classifica a intenção
→ Encaminha para o subagente
→ Execução assíncrona (EnhanceViewMessage)
→ Gera o ficheiro da vista
→ Mercure envia o progressoConfiguração LLM
Suporta o modo de pensamento profundo e o ajuste de intensidade de raciocínio dos modelos DeepSeek:
# .env
DEEPSEEK_MODEL_ID=deepseek-reasoner
DEEPSEEK_REASONING_EFFORT=medium # low / medium / highIntegração com o editor de vistas
O componente de aprimoramento IA já está integrado na página de criação de vistas (_ai_enhance_component.html.twig):
- Edição assistida por IA na criação da vista
- Operações de aprimoramento na página de detalhes da vista (
view_detail.html.twig) - Diálogo de confirmação de eliminação de vistas
Ficheiros relacionados
| Ficheiro | Responsabilidade |
|---|---|
IntentAgent.php | Agent principal de reconhecimento de intenções |
ViewEnhanceAgentOrchestrator.php | Orquestrador de aprimoramento |
ViewSubAgentChatRouter.php | Roteamento de conversação dos subagentes |
AbstractViewSubAgent.php | Classe base abstrata dos subagentes |
EnhanceViewMessage.php | Mensagem de tarefa assíncrona |
EnhanceViewMessageHandler.php | Processador de tarefa assíncrona |
ViewAiTaskApiController.php | API de tarefas de IA |
AiViewEnhanceTask.php | Entidade de estado da tarefa |