From 014efef2bbc4d902a3627ff39fc59cf64b2ba136 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=84=9C=EC=9D=80?= <61147083+BangSun98@users.noreply.github.com> Date: Thu, 19 Jun 2025 19:02:35 +0900 Subject: [PATCH] Update sns_content_service.py --- smarketing-ai/services/sns_content_service.py | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/smarketing-ai/services/sns_content_service.py b/smarketing-ai/services/sns_content_service.py index 8e82d85..c23463d 100644 --- a/smarketing-ai/services/sns_content_service.py +++ b/smarketing-ai/services/sns_content_service.py @@ -1337,7 +1337,7 @@ class SnsContentService: # 플랫폼별 콘텐츠 특성 정의 (대폭 개선) self.platform_specs = { - '인스타그램': { + 'INSTAGRAM': { 'max_length': 2200, 'hashtag_count': 15, 'style': '감성적이고 시각적', @@ -1359,7 +1359,7 @@ class SnsContentService: ], 'call_to_action': ['팔로우', '댓글', '저장', '공유', '방문'] }, - '네이버 블로그': { + 'NAVER_BLOG': { 'max_length': 3000, 'hashtag_count': 10, 'style': '정보성과 친근함', @@ -1410,16 +1410,16 @@ class SnsContentService: # 카테고리별 플랫폼 특화 키워드 self.category_keywords = { '음식': { - '인스타그램': ['#맛스타그램', '#음식스타그램', '#먹스타그램', '#맛집', '#foodstagram'], - '네이버 블로그': ['맛집 리뷰', '음식 후기', '메뉴 추천', '맛집 탐방', '식당 정보'] + 'INSTAGRAM': ['#맛스타그램', '#음식스타그램', '#먹스타그램', '#맛집', '#foodstagram'], + 'NAVER_BLOG': ['맛집 리뷰', '음식 후기', '메뉴 추천', '맛집 탐방', '식당 정보'] }, '매장': { - '인스타그램': ['#카페스타그램', '#인테리어', '#분위기맛집', '#데이트장소'], - '네이버 블로그': ['카페 추천', '분위기 좋은 곳', '인테리어 구경', '모임장소'] + 'INSTAGRAM': ['#카페스타그램', '#인테리어', '#분위기맛집', '#데이트장소'], + 'NAVER_BLOG': ['카페 추천', '분위기 좋은 곳', '인테리어 구경', '모임장소'] }, '이벤트': { - '인스타그램': ['#이벤트', '#프로모션', '#할인', '#특가'], - '네이버 블로그': ['이벤트 소식', '할인 정보', '프로모션 안내', '특별 혜택'] + 'INSTAGRAM': ['#이벤트', '#프로모션', '#할인', '#특가'], + 'NAVER_BLOG': ['이벤트 소식', '할인 정보', '프로모션 안내', '특별 혜택'] } } @@ -1450,14 +1450,14 @@ class SnsContentService: # 네이버 블로그인 경우 이미지 배치 계획 생성 image_placement_plan = None - if request.platform == '네이버 블로그': + if request.platform == 'NAVER_BLOG': image_placement_plan = self._create_image_placement_plan(image_analysis, request) # 플랫폼별 특화 프롬프트 생성 prompt = self._create_platform_specific_prompt(request, image_analysis, image_placement_plan) # blog_example을 프롬프트에 추가 - if request.platform == '네이버 블로그' and hasattr(self, 'blog_example') and self.blog_example: + if request.platform == 'NAVER_BLOG' and hasattr(self, 'blog_example') and self.blog_example: prompt += f"\n\n**참고 예시:**\n{str(self.blog_example)}\n위 예시를 참고하여 점주의 입장에서 가게 홍보 게시물을 작성해주세요." elif hasattr(self, 'insta_example') and self.insta_example : prompt += f"\n\n**참고 예시:**\n{str(self.insta_example)}\n위 예시를 참고하여 점주의 입장에서 가게 홍보 게시물을 작성해주세요." @@ -1477,7 +1477,7 @@ class SnsContentService: } # 네이버 블로그인 경우 이미지 배치 가이드라인 추가 - if request.platform == '네이버 블로그' and image_placement_plan: + if request.platform == 'NAVER_BLOG' and image_placement_plan: result['image_placement_guide'] = image_placement_plan return result @@ -1685,7 +1685,7 @@ class SnsContentService: """ 플랫폼별 특화 프롬프트 생성 """ - platform_spec = self.platform_specs.get(request.platform, self.platform_specs['인스타그램']) + platform_spec = self.platform_specs.get(request.platform, self.platform_specs['INSTAGRAM']) #tone_style = self.tone_styles.get(request.toneAndManner, {}).get(request.platform, '친근하고 자연스러운 어조') # 이미지 설명 추출 @@ -1695,9 +1695,9 @@ class SnsContentService: image_descriptions.append(result['description']) # 플랫폼별 특화 프롬프트 생성 - if request.platform == '인스타그램': + if request.platform == 'INSTAGRAM': return self._create_instagram_prompt(request, platform_spec, image_descriptions) - elif request.platform == '네이버 블로그': + elif request.platform == 'NAVER_BLOG': return self._create_naver_blog_prompt(request, platform_spec, image_descriptions, image_placement_plan) else: @@ -1708,7 +1708,7 @@ class SnsContentService: """ 인스타그램 특화 프롬프트 """ - category_hashtags = self.category_keywords.get(request.category, {}).get('인스타그램', []) + category_hashtags = self.category_keywords.get(request.category, {}).get('INSTAGRAM', []) # 🔥 핵심 추가: 실제 이미지 개수 계산 actual_image_count = len(request.images) if request.images else 0 @@ -1784,7 +1784,7 @@ class SnsContentService: """ 네이버 블로그 특화 프롬프트 (이미지 배치 계획 포함) """ - category_keywords = self.category_keywords.get(request.category, {}).get('네이버 블로그', []) + category_keywords = self.category_keywords.get(request.category, {}).get('NAVER_BLOG', []) seo_keywords = platform_spec['seo_keywords'] # 🔥 핵심: 실제 이미지 개수 계산 @@ -1864,9 +1864,9 @@ class SnsContentService: """ 플랫폼별 후처리 """ - if request.platform == '인스타그램': + if request.platform == 'INSTAGRAM': return self._post_process_instagram(content, request) - elif request.platform == '네이버 블로그': + elif request.platform == 'NAVER_BLOG': return self._post_process_naver_blog(content, request) return content @@ -1930,7 +1930,7 @@ class SnsContentService: # 2. 인스타그램인 경우 첫 번째 이미지를 맨 위에 배치 ⭐ 새로 추가! images_html_content = "" - if request.platform == '인스타그램' and request.images and len(request.images) > 0: + if request.platform == 'INSTAGRAM' and request.images and len(request.images) > 0: # 모든 이미지를 통일된 크기로 HTML 변환 (한 줄로 작성!) for i, image_url in enumerate(request.images): # ⭐ 핵심: 모든 HTML을 한 줄로 작성해서
변환 문제 방지 @@ -1949,7 +1949,7 @@ class SnsContentService: content = re.sub(r'
\s*
\s*
', '

', content) # 3개 이상의 연속
을 2개로 # 2. 네이버 블로그인 경우 이미지 태그를 실제 이미지로 변환 - elif request.platform == '네이버 블로그' and image_placement_plan: + elif request.platform == 'NAVER_BLOG' and image_placement_plan: if image_placement_plan and request.images: content = self._replace_image_tags_with_html(content, image_placement_plan, request.images) else: @@ -1989,9 +1989,9 @@ class SnsContentService: # 플랫폼별 헤더 스타일 platform_style = "" - if request.platform == '인스타그램': + if request.platform == 'INSTAGRAM': platform_style = "background: linear-gradient(45deg, #f09433 0%,#e6683c 25%,#dc2743 50%,#cc2366 75%,#bc1888 100%);" - elif request.platform == '네이버 블로그': + elif request.platform == 'NAVER_BLOG': platform_style = "background: linear-gradient(135deg, #1EC800 0%, #00B33C 100%);" else: platform_style = "background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);"