가사 marketing Intel 삽입
parent
54e66e4682
commit
ada5dfeeb4
|
|
@ -294,6 +294,7 @@ async def _crawling_logic(
|
||||||
session.add(marketing_intelligence)
|
session.add(marketing_intelligence)
|
||||||
await session.commit()
|
await session.commit()
|
||||||
await session.refresh(marketing_intelligence)
|
await session.refresh(marketing_intelligence)
|
||||||
|
m_id = marketing_intelligence.id
|
||||||
logger.debug(f"[MarketingPrompt] INSERT placeid {marketing_intelligence.place_id}")
|
logger.debug(f"[MarketingPrompt] INSERT placeid {marketing_intelligence.place_id}")
|
||||||
step3_3_elapsed = (time.perf_counter() - step3_3_start) * 1000
|
step3_3_elapsed = (time.perf_counter() - step3_3_start) * 1000
|
||||||
logger.info(
|
logger.info(
|
||||||
|
|
@ -374,6 +375,7 @@ async def _crawling_logic(
|
||||||
"image_count": len(scraper.image_link_list) if scraper.image_link_list else 0,
|
"image_count": len(scraper.image_link_list) if scraper.image_link_list else 0,
|
||||||
"processed_info": processed_info,
|
"processed_info": processed_info,
|
||||||
"marketing_analysis": marketing_analysis,
|
"marketing_analysis": marketing_analysis,
|
||||||
|
"m_id" : m_id
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -329,7 +329,8 @@ class CrawlingResponse(BaseModel):
|
||||||
"힐링스테이",
|
"힐링스테이",
|
||||||
"스테이머뭄"
|
"스테이머뭄"
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
|
"m_id" : 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
@ -346,6 +347,7 @@ class CrawlingResponse(BaseModel):
|
||||||
marketing_analysis: Optional[MarketingPromptOutput] = Field(
|
marketing_analysis: Optional[MarketingPromptOutput] = Field(
|
||||||
None, description="마케팅 분석 결과 . 실패 시 null"
|
None, description="마케팅 분석 결과 . 실패 시 null"
|
||||||
)
|
)
|
||||||
|
m_id : int = Field(..., description="마케팅 분석 결과 ID")
|
||||||
|
|
||||||
|
|
||||||
class ErrorResponse(BaseModel):
|
class ErrorResponse(BaseModel):
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ from sqlalchemy import select
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.database.session import get_session
|
from app.database.session import get_session
|
||||||
from app.home.models import Project
|
from app.home.models import Project, MarketingIntel
|
||||||
from app.user.dependencies.auth import get_current_user
|
from app.user.dependencies.auth import get_current_user
|
||||||
from app.user.models import User
|
from app.user.models import User
|
||||||
from app.lyric.models import Lyric
|
from app.lyric.models import Lyric
|
||||||
|
|
@ -48,6 +48,7 @@ from app.utils.pagination import PaginatedResponse, get_paginated
|
||||||
|
|
||||||
from app.utils.prompts.prompts import lyric_prompt
|
from app.utils.prompts.prompts import lyric_prompt
|
||||||
import traceback as tb
|
import traceback as tb
|
||||||
|
import json
|
||||||
# 로거 설정
|
# 로거 설정
|
||||||
logger = get_logger("lyric")
|
logger = get_logger("lyric")
|
||||||
|
|
||||||
|
|
@ -278,11 +279,15 @@ async def generate_lyric(
|
||||||
Full verse flow, immersive mood
|
Full verse flow, immersive mood
|
||||||
"""
|
"""
|
||||||
}
|
}
|
||||||
|
marketing_intel_result = await session.execute(select(MarketingIntel).where(MarketingIntel.id == request_body.m_id))
|
||||||
|
marketing_intel = marketing_intel_result.scalar_one_or_none()
|
||||||
|
|
||||||
|
|
||||||
lyric_input_data = {
|
lyric_input_data = {
|
||||||
"customer_name" : request_body.customer_name,
|
"customer_name" : request_body.customer_name,
|
||||||
"region" : request_body.region,
|
"region" : request_body.region,
|
||||||
"detail_region_info" : request_body.detail_region_info or "",
|
"detail_region_info" : request_body.detail_region_info or "",
|
||||||
"marketing_intelligence_summary" : None, # task_idx 변경 후 marketing intelligence summary DB에 저장하고 사용할 필요가 있음
|
"marketing_intelligence_summary" : json.dumps(marketing_intel.intel_result, ensure_ascii = False),
|
||||||
"language" : request_body.language,
|
"language" : request_body.language,
|
||||||
"promotional_expression_example" : promotional_expressions[request_body.language],
|
"promotional_expression_example" : promotional_expressions[request_body.language],
|
||||||
"timing_rules" : timing_rules["60s"], # 아직은 선택지 하나
|
"timing_rules" : timing_rules["60s"], # 아직은 선택지 하나
|
||||||
|
|
@ -314,6 +319,7 @@ async def generate_lyric(
|
||||||
detail_region_info=request_body.detail_region_info,
|
detail_region_info=request_body.detail_region_info,
|
||||||
language=request_body.language,
|
language=request_body.language,
|
||||||
user_uuid=current_user.user_uuid,
|
user_uuid=current_user.user_uuid,
|
||||||
|
marketing_inteligence = request_body.m_id
|
||||||
)
|
)
|
||||||
session.add(project)
|
session.add(project)
|
||||||
await session.commit()
|
await session.commit()
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,8 @@ class GenerateLyricRequest(BaseModel):
|
||||||
"customer_name": "스테이 머뭄",
|
"customer_name": "스테이 머뭄",
|
||||||
"region": "군산",
|
"region": "군산",
|
||||||
"detail_region_info": "군산 신흥동 말랭이 마을",
|
"detail_region_info": "군산 신흥동 말랭이 마을",
|
||||||
"language": "Korean"
|
"language": "Korean",
|
||||||
|
"m_id" : 1
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
@ -53,6 +54,7 @@ class GenerateLyricRequest(BaseModel):
|
||||||
"region": "군산",
|
"region": "군산",
|
||||||
"detail_region_info": "군산 신흥동 말랭이 마을",
|
"detail_region_info": "군산 신흥동 말랭이 마을",
|
||||||
"language": "Korean",
|
"language": "Korean",
|
||||||
|
"m_id" : 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
@ -67,6 +69,7 @@ class GenerateLyricRequest(BaseModel):
|
||||||
default="Korean",
|
default="Korean",
|
||||||
description="가사 출력 언어 (Korean, English, Chinese, Japanese, Thai, Vietnamese)",
|
description="가사 출력 언어 (Korean, English, Chinese, Japanese, Thai, Vietnamese)",
|
||||||
)
|
)
|
||||||
|
m_id : Optional[int] = Field(None, description="마케팅 인텔리전스 ID 값")
|
||||||
|
|
||||||
|
|
||||||
class GenerateLyricResponse(BaseModel):
|
class GenerateLyricResponse(BaseModel):
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ You are a content marketing expert, brand strategist, and creative songwriter
|
||||||
specializing in Korean pension / accommodation businesses.
|
specializing in Korean pension / accommodation businesses.
|
||||||
You create lyrics strictly based on Brand & Marketing Intelligence analysis
|
You create lyrics strictly based on Brand & Marketing Intelligence analysis
|
||||||
and optimized for viral short-form video content.
|
and optimized for viral short-form video content.
|
||||||
|
Marketing Intelligence Report is background reference.
|
||||||
|
|
||||||
[INPUT]
|
[INPUT]
|
||||||
Business Name: {customer_name}
|
Business Name: {customer_name}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue