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