ssboost commited on
Commit
dbaa5c5
·
verified ·
1 Parent(s): 7a49e61

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +76 -82
app.py CHANGED
@@ -6,72 +6,76 @@ from io import StringIO
6
  import traceback
7
  import inspect
8
 
 
 
 
9
  # 환경변수에서 각 모듈 코드를 불러와서 실행
10
- def load_and_execute_module(module_name):
11
- """환경변수에서 모듈 코드를 불러와서 실행"""
12
  try:
13
  module_code = os.getenv(module_name)
14
  if not module_code:
15
  raise ValueError(f"환경변수 {module_name}이 설정되지 않았습니다.")
16
 
 
 
 
17
  # 모듈 코드 실행
18
  exec(module_code, globals())
 
 
 
 
 
 
 
 
 
 
 
19
  print(f"{module_name} 모듈이 성공적으로 로드되었습니다.")
 
20
 
21
  except Exception as e:
22
  print(f"{module_name} 모듈 로드 중 오류: {str(e)}")
23
  traceback.print_exc()
 
24
 
25
  # 각 모듈 로드
26
  print("모듈들을 로드하는 중...")
27
 
28
- # 정보성 블로그 모듈 로드 (info_blog.py 코드 전체)
29
- load_and_execute_module("INFO_BLOG_CODE")
30
 
31
- # 여행 블로그 모듈 로드 (travel_blog.py 코드 전체)
32
- load_and_execute_module("TRAVEL_BLOG_CODE")
33
 
34
- # 상품후기 블로그 모듈 로드 (product_review_blog.py 코드 전체)
35
- load_and_execute_module("PRODUCT_REVIEW_BLOG_CODE")
36
 
37
- # 핵심기능집중형 블로그 모듈 로드 (feature_focus_blog.py 코드 전체)
38
- load_and_execute_module("FEATURE_FOCUS_BLOG_CODE")
39
 
40
- # 방문후기형 블로그 모듈 로드 (visit_review_blog.py 코드 전체)
41
- load_and_execute_module("VISIT_REVIEW_BLOG_CODE")
42
 
43
  print("모든 모듈 로드 완료!")
44
 
45
- # 래퍼 함수들 정의
46
- def safe_call_function(func_name, *args, **kwargs):
47
- """함수를 안전하게 호출하는 래퍼"""
48
- try:
49
- if func_name in globals():
50
- func = globals()[func_name]
51
- # 함수의 시그니처 확인
52
- sig = inspect.signature(func)
53
- params = list(sig.parameters.keys())
54
-
55
- # 매개변수 수에 맞게 호출
56
- if len(args) <= len(params):
57
- return func(*args[:len(params)])
58
- else:
59
- return func(*args)
60
- else:
61
- return f"{func_name} 함수를 찾을 수 없습니다."
62
- except Exception as e:
63
- return f"{func_name} 호출 중 오류: {str(e)}"
64
 
65
- # 각 탭별 래퍼 함수들
66
 
67
  # 정보성 블로그 래퍼 함수들
68
  def generate_outline_1_wrapper(category, style, ref1, ref2, ref3):
69
  """정보성 블로그 아웃라인 생성 래퍼"""
70
  try:
71
- if 'generate_outline_1' in globals():
72
- return generate_outline_1(category, style, ref1, ref2, ref3)
73
- elif 'generate_outline' in globals():
74
- return generate_outline(category, style, ref1, ref2, ref3)
 
75
  else:
76
  return "정보성 블로그 아웃라인 생성 함수를 찾을 수 없습니다."
77
  except Exception as e:
@@ -80,10 +84,10 @@ def generate_outline_1_wrapper(category, style, ref1, ref2, ref3):
80
  def generate_blog_post_1_wrapper(category, style, ref1, ref2, ref3, outline):
81
  """정보성 블로그 글 생성 래퍼"""
82
  try:
83
- if 'generate_blog_post_1' in globals():
84
- return generate_blog_post_1(category, style, ref1, ref2, ref3, outline)
85
- elif 'generate_blog_post' in globals():
86
- return generate_blog_post(category, style, outline, ref1, ref2, ref3)
87
  else:
88
  return "정보성 블로그 글 생성 함수를 찾을 수 없습니다."
89
  except Exception as e:
@@ -93,10 +97,10 @@ def generate_blog_post_1_wrapper(category, style, ref1, ref2, ref3, outline):
93
  def generate_outline_2_wrapper(category, style, ref1, ref2, ref3):
94
  """여행 블로그 아웃라인 생성 래퍼"""
95
  try:
96
- if 'generate_outline_2' in globals():
97
- return generate_outline_2(category, style, ref1, ref2, ref3)
98
- elif 'generate_outline' in globals():
99
- return generate_outline(category, style, ref1, ref2, ref3)
100
  else:
101
  return "여행 블로그 아웃라인 생성 함수를 찾을 수 없습니다."
102
  except Exception as e:
@@ -105,10 +109,10 @@ def generate_outline_2_wrapper(category, style, ref1, ref2, ref3):
105
  def generate_blog_post_2_wrapper(category, style, ref1, ref2, ref3, outline):
106
  """여행 블로그 글 생성 래퍼"""
107
  try:
108
- if 'generate_blog_post_2' in globals():
109
- return generate_blog_post_2(category, style, ref1, ref2, ref3, outline)
110
- elif 'generate_blog_post' in globals():
111
- return generate_blog_post(category, style, outline, ref1, ref2, ref3)
112
  else:
113
  return "여행 블로그 글 생성 함수를 찾을 수 없습니다."
114
  except Exception as e:
@@ -118,10 +122,10 @@ def generate_blog_post_2_wrapper(category, style, ref1, ref2, ref3, outline):
118
  def generate_outline_3_wrapper(category, style, ref1, ref2, ref3):
119
  """상품후기 블로그 아웃라인 생성 래퍼"""
120
  try:
121
- if 'generate_outline_3' in globals():
122
- return generate_outline_3(category, style, ref1, ref2, ref3)
123
- elif 'generate_outline' in globals():
124
- return generate_outline(category, style, ref1, ref2, ref3)
125
  else:
126
  return "상품후기 블로그 아웃라인 생성 함수를 찾을 수 없습니다."
127
  except Exception as e:
@@ -130,10 +134,10 @@ def generate_outline_3_wrapper(category, style, ref1, ref2, ref3):
130
  def generate_blog_post_3_wrapper(category, style, ref1, ref2, ref3, outline):
131
  """상품후기 블로그 글 생성 래퍼"""
132
  try:
133
- if 'generate_blog_post_3' in globals():
134
- return generate_blog_post_3(category, style, ref1, ref2, ref3, outline)
135
- elif 'generate_blog_post' in globals():
136
- return generate_blog_post(category, style, outline, ref1, ref2, ref3)
137
  else:
138
  return "상품후기 블로그 글 생성 함수를 찾을 수 없습니다."
139
  except Exception as e:
@@ -143,14 +147,14 @@ def generate_blog_post_3_wrapper(category, style, ref1, ref2, ref3, outline):
143
  def generate_outline_4_wrapper(category, style, ref1, ref2, ref3):
144
  """핵심기능집중형 블로그 아웃라인 생성 래퍼"""
145
  try:
146
- if 'generate_outline_4' in globals():
147
- result = generate_outline_4(category, style, ref1, ref2, ref3)
148
  if isinstance(result, tuple) and len(result) == 3:
149
  return result
150
  else:
151
  return (str(result), "", "")
152
- elif 'generate_outline' in globals():
153
- result = generate_outline(category, style, ref1, ref2, ref3)
154
  return (str(result), "", "")
155
  else:
156
  return ("핵심기능집중형 블로그 아웃라인 생성 함수를 찾을 수 없습니다.", "", "")
@@ -160,10 +164,10 @@ def generate_outline_4_wrapper(category, style, ref1, ref2, ref3):
160
  def generate_blog_post_4_wrapper(category, style, ref1, ref2, ref3, outline):
161
  """핵심기능집중형 블로그 글 생성 래퍼"""
162
  try:
163
- if 'generate_blog_post_4' in globals():
164
- return generate_blog_post_4(category, style, ref1, ref2, ref3, outline)
165
- elif 'generate_blog_post' in globals():
166
- return generate_blog_post(category, style, outline, ref1, ref2, ref3)
167
  else:
168
  return "핵심기능집중형 블로그 글 생성 함수를 찾을 수 없습니다."
169
  except Exception as e:
@@ -173,15 +177,10 @@ def generate_blog_post_4_wrapper(category, style, ref1, ref2, ref3, outline):
173
  def generate_outline_5_wrapper(category, style, ref1, ref2, ref3, photo_recommendations):
174
  """방문후기형 블로그 아웃라인 생성 래퍼"""
175
  try:
176
- if 'generate_outline_5' in globals():
177
- return generate_outline_5(category, style, ref1, ref2, ref3, photo_recommendations)
178
- elif 'generate_outline' in globals():
179
- # photo_recommendations 매개변수가 있는 경우
180
- sig = inspect.signature(generate_outline)
181
- if len(sig.parameters) >= 6:
182
- return generate_outline(category, style, ref1, ref2, ref3, photo_recommendations)
183
- else:
184
- return generate_outline(category, style, ref1, ref2, ref3)
185
  else:
186
  return "방문후기형 블로그 아웃라인 생성 함수를 찾을 수 없습니다."
187
  except Exception as e:
@@ -190,15 +189,10 @@ def generate_outline_5_wrapper(category, style, ref1, ref2, ref3, photo_recommen
190
  def generate_blog_post_5_wrapper(category, style, ref1, ref2, ref3, outline, photo_recommendations):
191
  """방문후기형 블로그 글 생성 래퍼"""
192
  try:
193
- if 'generate_blog_post_5' in globals():
194
- return generate_blog_post_5(category, style, ref1, ref2, ref3, outline, photo_recommendations)
195
- elif 'generate_blog_post' in globals():
196
- # photo_recommendations 매개변수가 있는 경우
197
- sig = inspect.signature(generate_blog_post)
198
- if len(sig.parameters) >= 7:
199
- return generate_blog_post(category, style, ref1, ref2, ref3, outline, photo_recommendations)
200
- else:
201
- return generate_blog_post(category, style, outline, ref1, ref2, ref3)
202
  else:
203
  return "방문후기형 블로그 글 생성 함수를 찾을 수 없습니다."
204
  except Exception as e:
 
6
  import traceback
7
  import inspect
8
 
9
+ # 각 모듈의 함수들을 저장할 딕셔너리
10
+ module_functions = {}
11
+
12
  # 환경변수에서 각 모듈 코드를 불러와서 실행
13
+ def load_and_execute_module(module_name, module_key):
14
+ """환경변수에서 모듈 코드를 불러와서 실행하고 함수들을 저장"""
15
  try:
16
  module_code = os.getenv(module_name)
17
  if not module_code:
18
  raise ValueError(f"환경변수 {module_name}이 설정되지 않았습니다.")
19
 
20
+ # 모듈 실행 전 현재 globals 상태 저장
21
+ before_globals = set(globals().keys())
22
+
23
  # 모듈 코드 실행
24
  exec(module_code, globals())
25
+
26
+ # 모듈 실행 후 새로 추가된 함수들 찾기
27
+ after_globals = set(globals().keys())
28
+ new_functions = after_globals - before_globals
29
+
30
+ # 새로 추가된 함수들을 모듈별로 저장
31
+ module_functions[module_key] = {}
32
+ for func_name in new_functions:
33
+ if callable(globals()[func_name]) and not func_name.startswith('_'):
34
+ module_functions[module_key][func_name] = globals()[func_name]
35
+
36
  print(f"{module_name} 모듈이 성공적으로 로드되었습니다.")
37
+ print(f"로드된 함수들: {list(module_functions[module_key].keys())}")
38
 
39
  except Exception as e:
40
  print(f"{module_name} 모듈 로드 중 오류: {str(e)}")
41
  traceback.print_exc()
42
+ module_functions[module_key] = {}
43
 
44
  # 각 모듈 로드
45
  print("모듈들을 로드하는 중...")
46
 
47
+ # 정보성 블로그 모듈 로드
48
+ load_and_execute_module("INFO_BLOG_CODE", "info_blog")
49
 
50
+ # 여행 블로그 모듈 로드
51
+ load_and_execute_module("TRAVEL_BLOG_CODE", "travel_blog")
52
 
53
+ # 상품후기 블로그 모듈 로드
54
+ load_and_execute_module("PRODUCT_REVIEW_BLOG_CODE", "product_review_blog")
55
 
56
+ # 핵심기능집중형 블로그 모듈 로드
57
+ load_and_execute_module("FEATURE_FOCUS_BLOG_CODE", "feature_focus_blog")
58
 
59
+ # 방문후기형 블로그 모듈 로드
60
+ load_and_execute_module("VISIT_REVIEW_BLOG_CODE", "visit_review_blog")
61
 
62
  print("모든 모듈 로드 완료!")
63
 
64
+ # 모듈의 함수 확인
65
+ for module_key, functions in module_functions.items():
66
+ print(f"{module_key}: {list(functions.keys())}")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
67
 
68
+ # 래퍼 함수들 정의
69
 
70
  # 정보성 블로그 래퍼 함수들
71
  def generate_outline_1_wrapper(category, style, ref1, ref2, ref3):
72
  """정보성 블로그 아웃라인 생성 래퍼"""
73
  try:
74
+ # 정보성 블로그 모듈에서 함수 찾기
75
+ if 'generate_outline_1' in module_functions.get('info_blog', {}):
76
+ return module_functions['info_blog']['generate_outline_1'](category, style, ref1, ref2, ref3)
77
+ elif 'generate_outline' in module_functions.get('info_blog', {}):
78
+ return module_functions['info_blog']['generate_outline'](category, style, ref1, ref2, ref3)
79
  else:
80
  return "정보성 블로그 아웃라인 생성 함수를 찾을 수 없습니다."
81
  except Exception as e:
 
84
  def generate_blog_post_1_wrapper(category, style, ref1, ref2, ref3, outline):
85
  """정보성 블로그 글 생성 래퍼"""
86
  try:
87
+ if 'generate_blog_post_1' in module_functions.get('info_blog', {}):
88
+ return module_functions['info_blog']['generate_blog_post_1'](category, style, ref1, ref2, ref3, outline)
89
+ elif 'generate_blog_post' in module_functions.get('info_blog', {}):
90
+ return module_functions['info_blog']['generate_blog_post'](category, style, outline, ref1, ref2, ref3)
91
  else:
92
  return "정보성 블로그 글 생성 함수를 찾을 수 없습니다."
93
  except Exception as e:
 
97
  def generate_outline_2_wrapper(category, style, ref1, ref2, ref3):
98
  """여행 블로그 아웃라인 생성 래퍼"""
99
  try:
100
+ if 'generate_outline_2' in module_functions.get('travel_blog', {}):
101
+ return module_functions['travel_blog']['generate_outline_2'](category, style, ref1, ref2, ref3)
102
+ elif 'generate_outline' in module_functions.get('travel_blog', {}):
103
+ return module_functions['travel_blog']['generate_outline'](category, style, ref1, ref2, ref3)
104
  else:
105
  return "여행 블로그 아웃라인 생성 함수를 찾을 수 없습니다."
106
  except Exception as e:
 
109
  def generate_blog_post_2_wrapper(category, style, ref1, ref2, ref3, outline):
110
  """여행 블로그 글 생성 래퍼"""
111
  try:
112
+ if 'generate_blog_post_2' in module_functions.get('travel_blog', {}):
113
+ return module_functions['travel_blog']['generate_blog_post_2'](category, style, ref1, ref2, ref3, outline)
114
+ elif 'generate_blog_post' in module_functions.get('travel_blog', {}):
115
+ return module_functions['travel_blog']['generate_blog_post'](category, style, outline, ref1, ref2, ref3)
116
  else:
117
  return "여행 블로그 글 생성 함수를 찾을 수 없습니다."
118
  except Exception as e:
 
122
  def generate_outline_3_wrapper(category, style, ref1, ref2, ref3):
123
  """상품후기 블로그 아웃라인 생성 래퍼"""
124
  try:
125
+ if 'generate_outline_3' in module_functions.get('product_review_blog', {}):
126
+ return module_functions['product_review_blog']['generate_outline_3'](category, style, ref1, ref2, ref3)
127
+ elif 'generate_outline' in module_functions.get('product_review_blog', {}):
128
+ return module_functions['product_review_blog']['generate_outline'](category, style, ref1, ref2, ref3)
129
  else:
130
  return "상품후기 블로그 아웃라인 생성 함수를 찾을 수 없습니다."
131
  except Exception as e:
 
134
  def generate_blog_post_3_wrapper(category, style, ref1, ref2, ref3, outline):
135
  """상품후기 블로그 글 생성 래퍼"""
136
  try:
137
+ if 'generate_blog_post_3' in module_functions.get('product_review_blog', {}):
138
+ return module_functions['product_review_blog']['generate_blog_post_3'](category, style, ref1, ref2, ref3, outline)
139
+ elif 'generate_blog_post' in module_functions.get('product_review_blog', {}):
140
+ return module_functions['product_review_blog']['generate_blog_post'](category, style, outline, ref1, ref2, ref3)
141
  else:
142
  return "상품후기 블로그 글 생성 함수를 찾을 수 없습니다."
143
  except Exception as e:
 
147
  def generate_outline_4_wrapper(category, style, ref1, ref2, ref3):
148
  """핵심기능집중형 블로그 아웃라인 생성 래퍼"""
149
  try:
150
+ if 'generate_outline_4' in module_functions.get('feature_focus_blog', {}):
151
+ result = module_functions['feature_focus_blog']['generate_outline_4'](category, style, ref1, ref2, ref3)
152
  if isinstance(result, tuple) and len(result) == 3:
153
  return result
154
  else:
155
  return (str(result), "", "")
156
+ elif 'generate_outline' in module_functions.get('feature_focus_blog', {}):
157
+ result = module_functions['feature_focus_blog']['generate_outline'](category, style, ref1, ref2, ref3)
158
  return (str(result), "", "")
159
  else:
160
  return ("핵심기능집중형 블로그 아웃라인 생성 함수를 찾을 수 없습니다.", "", "")
 
164
  def generate_blog_post_4_wrapper(category, style, ref1, ref2, ref3, outline):
165
  """핵심기능집중형 블로그 글 생성 래퍼"""
166
  try:
167
+ if 'generate_blog_post_4' in module_functions.get('feature_focus_blog', {}):
168
+ return module_functions['feature_focus_blog']['generate_blog_post_4'](category, style, ref1, ref2, ref3, outline)
169
+ elif 'generate_blog_post' in module_functions.get('feature_focus_blog', {}):
170
+ return module_functions['feature_focus_blog']['generate_blog_post'](category, style, outline, ref1, ref2, ref3)
171
  else:
172
  return "핵심기능집중형 블로그 글 생성 함수를 찾을 수 없습니다."
173
  except Exception as e:
 
177
  def generate_outline_5_wrapper(category, style, ref1, ref2, ref3, photo_recommendations):
178
  """방문후기형 블로그 아웃라인 생성 래퍼"""
179
  try:
180
+ if 'generate_outline_5' in module_functions.get('visit_review_blog', {}):
181
+ return module_functions['visit_review_blog']['generate_outline_5'](category, style, ref1, ref2, ref3, photo_recommendations)
182
+ elif 'generate_outline' in module_functions.get('visit_review_blog', {}):
183
+ return module_functions['visit_review_blog']['generate_outline'](category, style, ref1, ref2, ref3, photo_recommendations)
 
 
 
 
 
184
  else:
185
  return "방문후기형 블로그 아웃라인 생성 함수를 찾을 수 없습니다."
186
  except Exception as e:
 
189
  def generate_blog_post_5_wrapper(category, style, ref1, ref2, ref3, outline, photo_recommendations):
190
  """방문후기형 블로그 글 생성 래퍼"""
191
  try:
192
+ if 'generate_blog_post_5' in module_functions.get('visit_review_blog', {}):
193
+ return module_functions['visit_review_blog']['generate_blog_post_5'](category, style, ref1, ref2, ref3, outline, photo_recommendations)
194
+ elif 'generate_blog_post' in module_functions.get('visit_review_blog', {}):
195
+ return module_functions['visit_review_blog']['generate_blog_post'](category, style, ref1, ref2, ref3, outline, photo_recommendations)
 
 
 
 
 
196
  else:
197
  return "방문후기형 블로그 글 생성 함수를 찾을 수 없습니다."
198
  except Exception as e: