Skip to content

AI ビュー拡張

Doggy は AI 駆動のビュー拡張システムを提供します。意図認識のメイン Agent + 6 つのシナリオ子 Agent により、自然言語の要件を自動分類して対応する子 Agent にルーティングし、ビューを生成します。非同期タスク実行とリアルタイムの進捗プッシュをサポートします。

概要

AI ビュー拡張システムは src/Service/AI/Orchestrator/ にあり、LlmRole/LlmProvider 体系に基づいて構築されています:

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

アーキテクチャ

意図認識メイン Agent

IntentAgent は LLM でユーザー要件の意図タイプを判定し、対応する子 Agent にルーティングします:

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

シナリオ子 Agent

各子 Agent は AbstractViewSubAgent を継承し、ViewSubAgentInterface を実装します:

子 Agent意図シナリオ
FormViewSubAgentformフォームページ
InfoViewSubAgentinfo情報表示ページ
ReportViewSubAgentreportレポート/統計ページ
LandingViewSubAgentlandingランディング/マーケティングページ
EmailViewSubAgentemailビジネスメール
GeneralViewSubAgentgeneral汎用ページ

非同期タスク

ビュー拡張は Symfony Messenger で非同期実行され、リクエストのブロックを防ぎます:

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

EnhanceViewMessageHandler は処理後:

  • AiViewEnhanceTask を作成してタスク状態を記録
  • 子 Agent を呼び出してビューを生成
  • AiOperationLog を更新して操作を記録
  • Mercure でタスク進捗をプッシュ

リアルタイム進捗

Mercure SSE による AI タスク進捗のプッシュで、フロントエンドは 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);
    // 更新任务进度
};

エンティティモデル

エンティティ説明
AiChatSessionAI セッション(リクエストをまたいでコンテキストを保持)
AiChatMessageセッションメッセージ
AiOperationLogAI 操作ログ
AiViewEnhanceTaskビュー拡張タスクの状態

呼び出しフロー

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

LLM 設定

DeepSeek モデルのディープシンキングモードと推論強度の調整をサポート:

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

ビューエディタ統合

AI 拡張コンポーネントはビュー作成ページ(_ai_enhance_component.html.twig)に統合されています:

  • ビュー作成時の AI アシスト編集
  • ビュー詳細ページの拡張操作(view_detail.html.twig
  • ビュー削除確認ダイアログ

関連ファイル

ファイル責務
IntentAgent.php意図認識メイン Agent
ViewEnhanceAgentOrchestrator.php拡張オーケストレーター
ViewSubAgentChatRouter.php子 Agent 対話ルーティング
AbstractViewSubAgent.php子 Agent 抽象基底クラス
EnhanceViewMessage.php非同期タスクメッセージ
EnhanceViewMessageHandler.php非同期タスクハンドラー
ViewAiTaskApiController.phpAI タスク API
AiViewEnhanceTask.phpタスク状態エンティティ

MIT ライセンスでオープンソース | Copyright © 2026 Doggy