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 :
// 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-agent | Intention | Scénario |
|---|---|---|
FormViewSubAgent | form | Page de formulaire |
InfoViewSubAgent | info | Page d'affichage d'informations |
ReportViewSubAgent | report | Page de rapport/statistiques |
LandingViewSubAgent | landing | Page d'atterrissage/marketing |
EmailViewSubAgent | E-mail professionnel | |
GeneralViewSubAgent | general | Page 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 :
// 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
AiViewEnhanceTaskpour suivre l'état de la tâche - Appelle le sous-agent pour générer la vue
- Met à jour
AiOperationLogpour 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 :
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 |
|---|---|
AiChatSession | Session IA (contexte conservé entre les requêtes) |
AiChatMessage | Message de session |
AiOperationLog | Journal 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 :
# .env
DEEPSEEK_MODEL_ID=deepseek-reasoner
DEEPSEEK_REASONING_EFFORT=medium # low / medium / highInté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
| Fichier | Rôle |
|---|---|
IntentAgent.php | Agent principal d'identification d'intention |
ViewEnhanceAgentOrchestrator.php | Orchestrateur d'amélioration |
ViewSubAgentChatRouter.php | Routage des conversations des sous-agents |
AbstractViewSubAgent.php | Classe de base abstraite des sous-agents |
EnhanceViewMessage.php | Message de tâche asynchrone |
EnhanceViewMessageHandler.php | Gestionnaire de tâche asynchrone |
ViewAiTaskApiController.php | API des tâches IA |
AiViewEnhanceTask.php | Entité d'état de tâche |