aliceblue11 commited on
Commit
dee660a
·
verified ·
1 Parent(s): 3da1cdb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +34 -72
app.py CHANGED
@@ -184,76 +184,7 @@ class ConceptAnalyzer:
184
 
185
  concept_names.append(concept['name'])
186
 
187
- return result, concept_names
188
-
189
- def generate_trendy_copy(self, concept_name, month):
190
- """트렌디한 카피라이팅 생성 - 더 다양한 패턴 추가"""
191
-
192
- trendy_copies = {
193
- "미니멀": {
194
- "sub1": "🌟 '나는 정리를 못하는 여자'는 이제 그만!",
195
- "main": "미니멀은 '미'니로 '말'하는 거야, 작게 말해도 큰 변화! ✨",
196
- "sub2": "올해는 진짜 '갓생'을 살아보자구요! 💪",
197
- "hashtags": ["#갓생살기", "#미니멀", "#정리의신", "#새해정리"]
198
- },
199
- "셀프케어": {
200
- "sub1": "💕 '나 자신과 연애 중'이라고 말할 수 있나요?",
201
- "main": "셀프케어는 '셀프'로 '케어'하는 거 맞아! 💖",
202
- "sub2": "오늘부터 내가 내 최고의 친구가 되는 거야 ✨",
203
- "hashtags": ["#셀프케어", "#나를위한시간", "#힐링", "#자기사랑"]
204
- },
205
- "갓생": {
206
- "sub1": "✨ 매일 똑같은 하루가 지겨우신가요?",
207
- "main": "갓생은 '갓'처럼 살아보자는 거야! 너도 할 수 있어 🔥",
208
- "sub2": "작은 변화가 큰 행복을 만들어요 💫",
209
- "hashtags": ["#갓생살기", "#미라클모닝", "#자기계발", "#루틴만들기"]
210
- },
211
- "챌린지": {
212
- "sub1": "🎯 혼자서는 어려워도 함께라면 가능해!",
213
- "main": "챌린지는 '챌'만 해봐도 성공이야! 도전해볼까? 🚀",
214
- "sub2": "우리 함께 새로운 나를 만나러 가요 ✨",
215
- "hashtags": ["#챌린지", "#함께해요", "#새로운나", "#도전"]
216
- },
217
- "벚꽃": {
218
- "sub1": "🌸 봄이 왔어요! 설레는 마음 준비되셨나요?",
219
- "main": "벚꽃은 '벚'보다 '꽃'이 중요해! 꽃처럼 예쁘게 피어나요 🌺",
220
- "sub2": "짧지만 아름다운 순간을 함께 만들어요 💕",
221
- "hashtags": ["#벚꽃놀이", "#봄나들이", "#꽃구경", "#봄감성"]
222
- },
223
- "바캉스": {
224
- "sub1": "🏖️ 더위는 싫어도 여름은 좋아하는 사람?",
225
- "main": "바캉스는 '바'쁜 일상에서 '캉'스럽게 쉬는 거야! 🌊",
226
- "sub2": "올여름 가장 핫한 추억을 만들어봐요 🔥",
227
- "hashtags": ["#바캉스", "#여름휴가", "#힐링여행", "#여름추억"]
228
- },
229
- "카페": {
230
- "sub1": "☕ 오늘도 카페인에 의존하며 살고 계신가요?",
231
- "main": "카페는 '카'페인보다 '페'이스북 같은 소통공간! 📸",
232
- "sub2": "따뜻한 커피 한 잔으로 시작하는 특별한 하루 ✨",
233
- "hashtags": ["#카페투어", "#커피타임", "#감성카페", "#카페추천"]
234
- },
235
- "크리스마스": {
236
- "sub1": "🎄 올해 크리스마스는 뭔가 특별하게 보내고 싶다면?",
237
- "main": "크리스마스는 '크'게 '리'액션하며 '스'페셜하게! 🎅",
238
- "sub2": "따뜻한 마음이 가득한 연말을 함께 만들어요 💝",
239
- "hashtags": ["#크리스마스", "#연말파티", "#선물", "#따뜻한연말"]
240
- }
241
- }
242
-
243
- # 기본 카피
244
- default_copy = {
245
- "sub1": "✨ 이런 특별한 순간을 놓칠 수 없죠!",
246
- "main": "지금 이 순간이 바로 '찐'이야! 💫",
247
- "sub2": "함께라면 뭐든 '레전드'가 될 수 있어요 🎉",
248
- "hashtags": ["#찐이야", "#레전드순간", "#함께해요", "#특별한시간"]
249
- }
250
-
251
- # 컨셉명에서 키워드 찾기
252
- for keyword, copy_data in trendy_copies.items():
253
- if keyword in concept_name:
254
- return copy_data
255
-
256
- return default_copy False) else ""
257
  result += f"## {i}. {concept['name']}{is_recommended_mark}\n"
258
  result += f"**🏷️ 테마:** {concept['theme']}\n"
259
  result += f"**⭐ 참여도 점수:** {concept['score']}/10점\n"
@@ -753,12 +684,16 @@ def create_interface():
753
  return (
754
  result,
755
  gr.update(choices=concepts, visible=True, value=concepts[0] if concepts else ""),
 
756
  concepts
757
  )
758
 
759
  def handle_concept_selection(concept):
760
  return gr.update(value=concept)
761
 
 
 
 
762
  def update_reward_ui(reward_type):
763
  return (
764
  gr.update(visible=(reward_type == "단일 상품")),
@@ -782,13 +717,34 @@ def create_interface():
782
  else:
783
  reward_structure = custom_reward
784
 
 
 
 
 
 
785
  event_template = event_manager.generate_detailed_comment_event(
786
  start_date, end_date, concept, reward_structure, kakao, phone
787
  )
788
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
789
  design_guide = event_manager.generate_design_advice(concept)
790
 
791
- return event_template, design_guide
792
 
793
  def toggle_api_inputs(instagram, analytics, chatgpt):
794
  return (
@@ -814,7 +770,7 @@ def create_interface():
814
  analyze_concept_btn.click(
815
  handle_concept_analysis,
816
  inputs=[concept_month],
817
- outputs=[concept_result, selected_concept, concepts_state]
818
  )
819
 
820
  selected_concept.change(
@@ -823,6 +779,12 @@ def create_interface():
823
  outputs=[event_concept_input]
824
  )
825
 
 
 
 
 
 
 
826
  reward_type_selector.change(
827
  update_reward_ui,
828
  inputs=[reward_type_selector],
 
184
 
185
  concept_names.append(concept['name'])
186
 
187
+ return result, concept_names False) else ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
188
  result += f"## {i}. {concept['name']}{is_recommended_mark}\n"
189
  result += f"**🏷️ 테마:** {concept['theme']}\n"
190
  result += f"**⭐ 참여도 점수:** {concept['score']}/10점\n"
 
684
  return (
685
  result,
686
  gr.update(choices=concepts, visible=True, value=concepts[0] if concepts else ""),
687
+ gr.update(visible=True),
688
  concepts
689
  )
690
 
691
  def handle_concept_selection(concept):
692
  return gr.update(value=concept)
693
 
694
+ def handle_custom_concept_change(custom_concept):
695
+ return gr.update(value=custom_concept)
696
+
697
  def update_reward_ui(reward_type):
698
  return (
699
  gr.update(visible=(reward_type == "단일 상품")),
 
717
  else:
718
  reward_structure = custom_reward
719
 
720
+ # 컨셉에 따른 트렌디한 카피 생성
721
+ month = concept_month.value if hasattr(concept_month, 'value') else "8월"
722
+ copy_data = concept_analyzer.generate_trendy_copy(concept, month)
723
+
724
+ # 기본 이벤트 템플릿 생성
725
  event_template = event_manager.generate_detailed_comment_event(
726
  start_date, end_date, concept, reward_structure, kakao, phone
727
  )
728
 
729
+ # 트렌디한 카피를 템플릿 상단에 추가
730
+ trendy_intro = f"""{copy_data['sub1']}
731
+
732
+ 💫 {copy_data['main']} 💫
733
+
734
+ {copy_data['sub2']}
735
+
736
+ {' '.join(copy_data['hashtags'])}
737
+
738
+ ---
739
+
740
+ """
741
+
742
+ final_template = trendy_intro + event_template
743
+
744
+ # 디자인 가이드 생성
745
  design_guide = event_manager.generate_design_advice(concept)
746
 
747
+ return final_template, design_guide
748
 
749
  def toggle_api_inputs(instagram, analytics, chatgpt):
750
  return (
 
770
  analyze_concept_btn.click(
771
  handle_concept_analysis,
772
  inputs=[concept_month],
773
+ outputs=[concept_result, selected_concept, custom_concept_input, concepts_state]
774
  )
775
 
776
  selected_concept.change(
 
779
  outputs=[event_concept_input]
780
  )
781
 
782
+ custom_concept_input.change(
783
+ handle_custom_concept_change,
784
+ inputs=[custom_concept_input],
785
+ outputs=[event_concept_input]
786
+ )
787
+
788
  reward_type_selector.change(
789
  update_reward_ui,
790
  inputs=[reward_type_selector],