critical issue 그루핑 및 타이틀 추가
parent
a4fbf60d42
commit
05e88fe70c
|
|
@ -351,7 +351,7 @@ class MarketingReport(BaseModel):
|
|||
facebook_audit: FacebookAudit
|
||||
other_channels: list[OtherChannel]
|
||||
website_audit: WebsiteAudit
|
||||
problem_diagnosis: list[DiagnosisItem]
|
||||
problem_diagnosis: list[CriticalIssueItem]
|
||||
transformation: TransformationProposal
|
||||
roadmap: list[RoadmapMonth]
|
||||
kpi_dashboard: list[KPIMetric]
|
||||
|
|
@ -408,13 +408,17 @@ class ScoresOutput(BaseModel):
|
|||
|
||||
# --- Diagnosis ---
|
||||
|
||||
class CriticalIssueItem(DiagnosisItem):
|
||||
title: str
|
||||
|
||||
|
||||
class CriticalIssuesInput(BaseModel):
|
||||
clinic_name: str | None = None
|
||||
data: str | None = None
|
||||
|
||||
|
||||
class CriticalIssuesOutput(BaseModel):
|
||||
diagnosis: list[DiagnosisItem]
|
||||
diagnosis: list[CriticalIssueItem]
|
||||
|
||||
|
||||
# --- Roadmap ---
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
{data}
|
||||
|
||||
위 데이터를 바탕으로 이 병원의 마케팅 전반에 걸친 핵심 문제점과 개선사항을 진단해줘.
|
||||
각 항목은 category(진단 카테고리), detail(상세 설명), severity(critical/warning/info) 형식의 JSON 배열로 출력해줘.
|
||||
각 항목은 title(해당 문제를 대표하는 2~4단어), category(진단 카테고리), detail(상세 설명), severity(critical/warning/info) 형식의 JSON 배열로 출력해줘.
|
||||
|
||||
현재 주요 진단 카테고리는 3개야.
|
||||
브랜드 아이덴티티 파편화
|
||||
|
|
|
|||
|
|
@ -30,6 +30,10 @@ class DiagnosisItem(CamelModel):
|
|||
evidence_ids: list[str] | None = None
|
||||
|
||||
|
||||
class CriticalIssueItem(DiagnosisItem):
|
||||
title: str
|
||||
|
||||
|
||||
class LeadDoctor(CamelModel):
|
||||
name: str
|
||||
credentials: str
|
||||
|
|
@ -295,7 +299,7 @@ class MarketingReportResponse(CamelModel):
|
|||
facebook_audit: FacebookAudit
|
||||
other_channels: list[OtherChannel]
|
||||
website_audit: WebsiteAudit
|
||||
problem_diagnosis: list[DiagnosisItem]
|
||||
problem_diagnosis: list[CriticalIssueItem]
|
||||
transformation: TransformationProposal
|
||||
roadmap: list[RoadmapMonth]
|
||||
kpi_dashboard: list[KPIMetric]
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ from common.db.source import select_run_raw_data, select_mainpage_logo_url
|
|||
from common.db.market import select_market
|
||||
from integrations.llm.llm_service import LLMService
|
||||
from integrations.llm.prompt import report_prompt, plan_prompt, youtube_diagnosis_prompt, brand_consistency_prompt, critical_issues_prompt, transformation_prompt, roadmap_prompt, scores_prompt, other_channels_prompt
|
||||
from integrations.llm.schemas.report import ReportOutput, ClinicSnapshot, YouTubeAudit, BrandConsistencyOutput, CriticalIssuesOutput, DiagnosisItem, TransformationProposal, RoadmapOutput, RoadmapMonth, ScoresOutput, ChannelScore, WebsiteAudit, OtherChannelsOutput, OtherChannel
|
||||
from integrations.llm.schemas.report import ReportOutput, ClinicSnapshot, YouTubeAudit, BrandConsistencyOutput, CriticalIssuesOutput, CriticalIssueItem, DiagnosisItem, TransformationProposal, RoadmapOutput, RoadmapMonth, ScoresOutput, ChannelScore, WebsiteAudit, OtherChannelsOutput, OtherChannel
|
||||
from services.branding import analyze_branding
|
||||
from services.instagram_audit import build_instagram_audit
|
||||
from services.facebook_audit import build_facebook_audit
|
||||
|
|
@ -190,7 +190,7 @@ async def _build_critical_issues(analysis_run_id: str, raw: dict) -> list[dict]:
|
|||
"data": json.dumps(raw, ensure_ascii=False),
|
||||
},
|
||||
)
|
||||
return [DiagnosisItem.model_validate(item).model_dump() for item in result.diagnosis]
|
||||
return [CriticalIssueItem.model_validate(item).model_dump() for item in result.diagnosis]
|
||||
|
||||
|
||||
async def _build_scores(analysis_run_id: str, raw: dict) -> ScoresOutput:
|
||||
|
|
|
|||
|
|
@ -16,4 +16,4 @@ services:
|
|||
- o2o-net
|
||||
networks:
|
||||
o2o-net:
|
||||
external: true
|
||||
# external: true
|
||||
Loading…
Reference in New Issue