From d259740d97bce0824b4bdf8d7cd1439188a883bb Mon Sep 17 00:00:00 2001 From: jaehwang Date: Thu, 29 Jan 2026 00:12:56 +0000 Subject: [PATCH] change home output --- app/home/api/routers/v1/home.py | 22 +++++----------------- app/home/schemas/home_schema.py | 22 +++++++++++----------- app/utils/chatgpt_prompt.py | 2 +- 3 files changed, 17 insertions(+), 29 deletions(-) diff --git a/app/home/api/routers/v1/home.py b/app/home/api/routers/v1/home.py index 2ade1dc..97e167c 100644 --- a/app/home/api/routers/v1/home.py +++ b/app/home/api/routers/v1/home.py @@ -259,26 +259,14 @@ async def _crawling_logic(url:str): # marketing_analysis = MarketingAnalysis(**parsed) logger.debug( - f"[crawling] structured_report 구조 확인:\n" - f"{'='*60}\n" - f"[report] type: {type(structured_report.get('report'))}\n" - f"{'-'*60}\n" - f"{structured_report.get('report')}\n" - f"{'='*60}\n" - f"[tags] type: {type(structured_report.get('tags'))}\n" - f"{'-'*60}\n" - f"{structured_report.get('tags')}\n" - f"{'='*60}\n" - f"[selling_points] type: {type(structured_report.get('selling_points'))}\n" - f"{'-'*60}\n" - f"{structured_report.get('selling_points')}\n" - f"{'='*60}" + f"structured_report = {structured_report.model_dump()}" ) marketing_analysis = MarketingAnalysis( - report=structured_report["report"], - tags=structured_report["tags"], - selling_points = structured_report["selling_points"]# list([sp['keywords'] for sp in structured_report["selling_points"]])# [json.dumps(structured_report["selling_points"])] # 나중에 Selling Points로 변수와 데이터구조 변경할 것 + report = structured_report + # report = structured_report["report"], + # tags=structured_report["tags"], + # selling_points = structured_report["selling_points"]# list([sp['keywords'] for sp in structured_report["selling_points"]])# [json.dumps(structured_report["selling_points"])] # 나중에 Selling Points로 변수와 데이터구조 변경할 것 ) # Selling Points 구조 # print(sp['category']) diff --git a/app/home/schemas/home_schema.py b/app/home/schemas/home_schema.py index f308c20..0985da3 100644 --- a/app/home/schemas/home_schema.py +++ b/app/home/schemas/home_schema.py @@ -1,7 +1,7 @@ from typing import Literal, Optional from pydantic import BaseModel, ConfigDict, Field - +from app.utils.prompts.schemas import MarketingPromptOutput class AttributeInfo(BaseModel): """음악 속성 정보""" @@ -147,21 +147,21 @@ class ProcessedInfo(BaseModel): detail_region_info: str = Field(..., description="상세 지역 정보 (roadAddress)") -class MarketingAnalysisDetail(BaseModel): - detail_title : str = Field(..., description="디테일 카테고리 이름") - detail_description : str = Field(..., description="해당 항목 설명") +# class MarketingAnalysisDetail(BaseModel): +# detail_title : str = Field(..., description="디테일 카테고리 이름") +# detail_description : str = Field(..., description="해당 항목 설명") -class MarketingAnalysisReport(BaseModel): - """마케팅 분석 리포트 스키마""" - summary : str = Field(..., description="비즈니스 한 줄 요약") - details : list[MarketingAnalysisDetail] = Field(default_factory=list, description="개별 디테일") +# class MarketingAnalysisReport(BaseModel): +# """마케팅 분석 리포트 스키마""" +# summary : str = Field(..., description="비즈니스 한 줄 요약") +# details : list[MarketingAnalysisDetail] = Field(default_factory=list, description="개별 디테일") class MarketingAnalysis(BaseModel): """마케팅 분석 결과 스키마""" - report: MarketingAnalysisReport = Field(..., description="마케팅 분석 리포트") - tags: list[str] = Field(default_factory=list, description="추천 태그 목록") - selling_points: list[str] = Field(default_factory=list, description="추천 부대시설 목록") + report: MarketingPromptOutput = Field(..., description = "마케팅 분석 결과")# MarketingAnalysisReport = Field(..., description="마케팅 분석 리포트") + # tags: list[str] = Field(default_factory=list, description="추천 태그 목록") + # selling_points: list[str] = Field(default_factory=list, description="추천 부대시설 목록") class CrawlingResponse(BaseModel): diff --git a/app/utils/chatgpt_prompt.py b/app/utils/chatgpt_prompt.py index cbb047b..0f1ede4 100644 --- a/app/utils/chatgpt_prompt.py +++ b/app/utils/chatgpt_prompt.py @@ -51,7 +51,7 @@ class ChatgptService: if response.status == "completed": logger.debug(f"[ChatgptService] Response output_text: {response.output_text[:200]}..." if len(response.output_text) > 200 else f"[ChatgptService] Response output_text: {response.output_text}") structured_output = response.output_parsed - return structured_output.model_dump() or {} + return structured_output #.model_dump() or {} # 에러 상태 처리 if response.status == "failed":