Compare commits
1 Commits
main
...
advenced_r
| Author | SHA1 | Date |
|---|---|---|
|
|
05e88fe70c |
|
|
@ -351,7 +351,7 @@ class MarketingReport(BaseModel):
|
||||||
facebook_audit: FacebookAudit
|
facebook_audit: FacebookAudit
|
||||||
other_channels: list[OtherChannel]
|
other_channels: list[OtherChannel]
|
||||||
website_audit: WebsiteAudit
|
website_audit: WebsiteAudit
|
||||||
problem_diagnosis: list[DiagnosisItem]
|
problem_diagnosis: list[CriticalIssueItem]
|
||||||
transformation: TransformationProposal
|
transformation: TransformationProposal
|
||||||
roadmap: list[RoadmapMonth]
|
roadmap: list[RoadmapMonth]
|
||||||
kpi_dashboard: list[KPIMetric]
|
kpi_dashboard: list[KPIMetric]
|
||||||
|
|
@ -408,13 +408,17 @@ class ScoresOutput(BaseModel):
|
||||||
|
|
||||||
# --- Diagnosis ---
|
# --- Diagnosis ---
|
||||||
|
|
||||||
|
class CriticalIssueItem(DiagnosisItem):
|
||||||
|
title: str
|
||||||
|
|
||||||
|
|
||||||
class CriticalIssuesInput(BaseModel):
|
class CriticalIssuesInput(BaseModel):
|
||||||
clinic_name: str | None = None
|
clinic_name: str | None = None
|
||||||
data: str | None = None
|
data: str | None = None
|
||||||
|
|
||||||
|
|
||||||
class CriticalIssuesOutput(BaseModel):
|
class CriticalIssuesOutput(BaseModel):
|
||||||
diagnosis: list[DiagnosisItem]
|
diagnosis: list[CriticalIssueItem]
|
||||||
|
|
||||||
|
|
||||||
# --- Roadmap ---
|
# --- Roadmap ---
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
{data}
|
{data}
|
||||||
|
|
||||||
위 데이터를 바탕으로 이 병원의 마케팅 전반에 걸친 핵심 문제점과 개선사항을 진단해줘.
|
위 데이터를 바탕으로 이 병원의 마케팅 전반에 걸친 핵심 문제점과 개선사항을 진단해줘.
|
||||||
각 항목은 category(진단 카테고리), detail(상세 설명), severity(critical/warning/info) 형식의 JSON 배열로 출력해줘.
|
각 항목은 title(해당 문제를 대표하는 2~4단어), category(진단 카테고리), detail(상세 설명), severity(critical/warning/info) 형식의 JSON 배열로 출력해줘.
|
||||||
|
|
||||||
현재 주요 진단 카테고리는 3개야.
|
현재 주요 진단 카테고리는 3개야.
|
||||||
브랜드 아이덴티티 파편화
|
브랜드 아이덴티티 파편화
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,10 @@ class DiagnosisItem(CamelModel):
|
||||||
evidence_ids: list[str] | None = None
|
evidence_ids: list[str] | None = None
|
||||||
|
|
||||||
|
|
||||||
|
class CriticalIssueItem(DiagnosisItem):
|
||||||
|
title: str
|
||||||
|
|
||||||
|
|
||||||
class LeadDoctor(CamelModel):
|
class LeadDoctor(CamelModel):
|
||||||
name: str
|
name: str
|
||||||
credentials: str
|
credentials: str
|
||||||
|
|
@ -295,7 +299,7 @@ class MarketingReportResponse(CamelModel):
|
||||||
facebook_audit: FacebookAudit
|
facebook_audit: FacebookAudit
|
||||||
other_channels: list[OtherChannel]
|
other_channels: list[OtherChannel]
|
||||||
website_audit: WebsiteAudit
|
website_audit: WebsiteAudit
|
||||||
problem_diagnosis: list[DiagnosisItem]
|
problem_diagnosis: list[CriticalIssueItem]
|
||||||
transformation: TransformationProposal
|
transformation: TransformationProposal
|
||||||
roadmap: list[RoadmapMonth]
|
roadmap: list[RoadmapMonth]
|
||||||
kpi_dashboard: list[KPIMetric]
|
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 common.db.market import select_market
|
||||||
from integrations.llm.llm_service import LLMService
|
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.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.branding import analyze_branding
|
||||||
from services.instagram_audit import build_instagram_audit
|
from services.instagram_audit import build_instagram_audit
|
||||||
from services.facebook_audit import build_facebook_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),
|
"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:
|
async def _build_scores(analysis_run_id: str, raw: dict) -> ScoresOutput:
|
||||||
|
|
|
||||||
|
|
@ -16,4 +16,4 @@ services:
|
||||||
- o2o-net
|
- o2o-net
|
||||||
networks:
|
networks:
|
||||||
o2o-net:
|
o2o-net:
|
||||||
external: true
|
# external: true
|
||||||
Loading…
Reference in New Issue