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