Skip to content

Amélioration de vue IA ​

Doggy fournit un système d'amélioration de vue piloté par l'IA qui, via un agent principal d'identification d'intention + 6 sous-agents par scénario, classifie automatiquement les demandes en langage naturel et les route vers le sous-agent correspondant pour générer des vues, avec prise en charge de l'exécution asynchrone des tâches et du suivi de progression en temps réel.

Aperçu ​

Le système d'amélioration de vue IA se trouve dans src/Service/AI/Orchestrator/, construit sur la base LlmRole/LlmProvider :

用户需求 (自然语言)
  → IntentAgent (意图识别主 Agent)
    → FormViewSubAgent   表单视图
    → InfoViewSubAgent   信息展示视图
    → ReportViewSubAgent 报表视图
    → LandingViewSubAgent 落地页视图
    → EmailViewSubAgent  商务邮件视图
    → GeneralViewSubAgent 通用视图

Architecture ​

Agent principal d'identification d'intention ​

IntentAgent détermine via le LLM le type d'intention de la demande de l'utilisateur et route vers le sous-agent correspondant :

php
// src/Service/AI/Orchestrator/IntentAgent.php
class IntentAgent
{
    public function classify(string $userMessage): string
    {
        // 返回意图类型: form / info / report / landing / email / general
    }
}

Sous-agents par scénario ​

Chaque sous-agent hérite de AbstractViewSubAgent et implémente ViewSubAgentInterface :

Sous-agentIntentionScénario
FormViewSubAgentformPage de formulaire
InfoViewSubAgentinfoPage d'affichage d'informations
ReportViewSubAgentreportPage de rapport/statistiques
LandingViewSubAgentlandingPage d'atterrissage/marketing
EmailViewSubAgentemailE-mail professionnel
GeneralViewSubAgentgeneralPage générique

Tâches asynchrones ​

L'amélioration de vue s'exécute de manière asynchrone via Symfony Messenger afin d'éviter de bloquer la requête :

php
// src/Message/EnhanceViewMessage.php
class EnhanceViewMessage
{
    public function __construct(
        public readonly string $viewId,
        public readonly string $prompt,
    ) {}
}

Après traitement par EnhanceViewMessageHandler :

  • Crée un enregistrement AiViewEnhanceTask pour suivre l'état de la tâche
  • Appelle le sous-agent pour générer la vue
  • Met à jour AiOperationLog pour journaliser l'opération
  • Pousse la progression de la tâche via Mercure

Progression en temps réel ​

La progression des tâches IA est poussée via Mercure SSE, le frontend s'y abonnant via 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);
    // 更新任务进度
};

Modèles d'entités ​

EntitéDescription
AiChatSessionSession IA (contexte conservé entre les requêtes)
AiChatMessageMessage de session
AiOperationLogJournal des opérations IA
AiViewEnhanceTaskÉtat de la tâche d'amélioration de vue

Flux d'appel ​

用户创建/编辑视图
  → 输入自然语言需求
  → POST /api/admin/platform/view-ai-task
  → IntentAgent 分类意图
  → 路由到子 Agent
  → 异步执行 (EnhanceViewMessage)
  → 生成视图文件
  → Mercure 推送进度

Configuration LLM ​

Prend en charge le mode de réflexion approfondie et le réglage de l'intensité de raisonnement des modèles DeepSeek :

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

Intégration à l'éditeur de vue ​

Le composant d'amélioration IA est intégré à la page de création de vue (_ai_enhance_component.html.twig) :

  • Édition assistée par IA lors de la création d'une vue
  • Opérations d'amélioration sur la page de détail de la vue (view_detail.html.twig)
  • Boîte de dialogue de confirmation de suppression de vue

Fichiers associés ​

FichierRôle
IntentAgent.phpAgent principal d'identification d'intention
ViewEnhanceAgentOrchestrator.phpOrchestrateur d'amélioration
ViewSubAgentChatRouter.phpRoutage des conversations des sous-agents
AbstractViewSubAgent.phpClasse de base abstraite des sous-agents
EnhanceViewMessage.phpMessage de tâche asynchrone
EnhanceViewMessageHandler.phpGestionnaire de tâche asynchrone
ViewAiTaskApiController.phpAPI des tâches IA
AiViewEnhanceTask.phpEntité d'état de tâche

Open source sous licence MIT | Copyright © 2026 Doggy