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 | 意図 | シナリオ |
|---|---|---|
FormViewSubAgent | form | フォームページ |
InfoViewSubAgent | info | 情報表示ページ |
ReportViewSubAgent | report | レポート/統計ページ |
LandingViewSubAgent | landing | ランディング/マーケティングページ |
EmailViewSubAgent | ビジネスメール | |
GeneralViewSubAgent | general | 汎用ページ |
非同期タスク
ビュー拡張は 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);
// 更新任务进度
};エンティティモデル
| エンティティ | 説明 |
|---|---|
AiChatSession | AI セッション(リクエストをまたいでコンテキストを保持) |
AiChatMessage | セッションメッセージ |
AiOperationLog | AI 操作ログ |
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.php | AI タスク API |
AiViewEnhanceTask.php | タスク状態エンティティ |