AI 视图增强
يوفر Doggy نظامًا لتعزيز العروض مدعومًا بالذكاء الاصطناعي، حيث يقوم بمعالجة احتياجات اللغة الطبيعية تلقائيًا عبر Agent رئيسي للتعرف على النية + 6 وكلاء فرعيين حسب السيناريو، وتصنيفها وتوجيهها إلى الوكيل الفرعي المناسب لتوليد العرض، مع دعم تنفيذ المهام غير المتزامن ودفع التقدم في الوقت الفعلي.
نظرة عامة
يقع نظام تعزيز العروض بالذكاء الاصطناعي في src/Service/AI/Orchestrator/، وهو مبني على بنية LlmRole/LlmProvider:
用户需求 (自然语言)
→ IntentAgent (意图识别主 Agent)
→ FormViewSubAgent 表单视图
→ InfoViewSubAgent 信息展示视图
→ ReportViewSubAgent 报表视图
→ LandingViewSubAgent 落地页视图
→ EmailViewSubAgent 商务邮件视图
→ GeneralViewSubAgent 通用视图البنية
Agent الرئيسي للتعرف على النية
يقوم IntentAgent بتحديد نوع نية احتياج المستخدم عبر LLM وتوجيهه إلى الوكيل الفرعي المناسب:
// src/Service/AI/Orchestrator/IntentAgent.php
class IntentAgent
{
public function classify(string $userMessage): string
{
// 返回意图类型: form / info / report / landing / email / general
}
}الوكلاء الفرعيون حسب السيناريو
يرث كل وكيل فرعي AbstractViewSubAgent وينفّذ ViewSubAgentInterface:
| الوكيل الفرعي | النية | السيناريو |
|---|---|---|
FormViewSubAgent | form | صفحة نموذج |
InfoViewSubAgent | info | صفحة عرض معلومات |
ReportViewSubAgent | report | صفحة تقارير/إحصائيات |
LandingViewSubAgent | landing | صفحة هبوط/تسويق |
EmailViewSubAgent | بريد أعمال | |
GeneralViewSubAgent | general | صفحة عامة |
المهام غير المتزامنة
يتم تنفيذ تعزيز العرض بشكل غير متزامن عبر Symfony Messenger لتجنب حظر الطلب:
// src/Message/EnhanceViewMessage.php
class EnhanceViewMessage
{
public function __construct(
public readonly string $viewId,
public readonly string $prompt,
) {}
}بعد المعالجة في EnhanceViewMessageHandler:
- إنشاء
AiViewEnhanceTaskلتسجيل حالة المهمة - استدعاء الوكيل الفرعي لتوليد العرض
- تحديث
AiOperationLogلتسجيل العملية - دفع تقدم المهمة عبر Mercure
التقدم في الوقت الفعلي
يعتمد دفع تقدم مهام AI على Mercure SSE، حيث يشتترك الواجهة الأمامية عبر 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);
// 更新任务进度
};نماذج الكيانات
| الكيان | الوصف |
|---|---|
AiChatSession | جلسة AI (تحافظ على السياق عبر الطلبات) |
AiChatMessage | رسائل الجلسة |
AiOperationLog | سجل عمليات AI |
AiViewEnhanceTask | حالة مهمة تعزيز العرض |
مسار الاستدعاء
用户创建/编辑视图
→ 输入自然语言需求
→ POST /api/admin/platform/view-ai-task
→ IntentAgent 分类意图
→ 路由到子 Agent
→ 异步执行 (EnhanceViewMessage)
→ 生成视图文件
→ Mercure 推送进度تكوين LLM
يدعم وضع التفكير العميق لنماذج DeepSeek وضبط شدة الاستدلال:
# .env
DEEPSEEK_MODEL_ID=deepseek-reasoner
DEEPSEEK_REASONING_EFFORT=medium # low / medium / highتكامل محرر العرض
تم دمج مكوّن التعزيز بالذكاء الاصطناعي في صفحة إنشاء العرض (_ai_enhance_component.html.twig):
- التحرير المساعد بالذكاء الاصطناعي عند إنشاء العرض
- عمليات التعزيز في صفحة تفاصيل العرض (
view_detail.html.twig) - مربع حوار تأكيد حذف العرض
الملفات ذات الصلة
| الملف | المسؤولية |
|---|---|
IntentAgent.php | Agent رئيسي للتعرف على النية |
ViewEnhanceAgentOrchestrator.php | منسّق التعزيز |
ViewSubAgentChatRouter.php | توجيه محادثات الوكلاء الفرعيين |
AbstractViewSubAgent.php | الفئة الأساسية المجردة للوكلاء الفرعيين |
EnhanceViewMessage.php | رسالة المهمة غير المتزامنة |
EnhanceViewMessageHandler.php | معالج المهمة غير المتزامنة |
ViewAiTaskApiController.php | واجهة برمجة مهام AI |
AiViewEnhanceTask.php | كيان حالة المهمة |