ssboost commited on
Commit
810dee9
·
verified ·
1 Parent(s): eab12d7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +6 -202
app.py CHANGED
@@ -1,209 +1,13 @@
1
- #app.py
2
  import gradio as gr
3
  from gradio_client import Client
4
  import os
5
- import tempfile
6
- import importlib.util
7
 
8
- def load_module_from_env(env_var_name, module_name):
9
- """환경변수에서 모듈 코드를 가져와서 동적으로 로드"""
10
- module_code = os.environ.get(env_var_name)
11
- if not module_code:
12
- raise ValueError(f"환경변수 {env_var_name}가 설정되지 않았습니다.")
13
-
14
- # 임시 파일 생성
15
- with tempfile.NamedTemporaryFile(mode='w', suffix='.py', delete=False, encoding='utf-8') as f:
16
- f.write(module_code)
17
- temp_file_path = f.name
18
-
19
- try:
20
- # 모듈 동적 로드
21
- spec = importlib.util.spec_from_file_location(module_name, temp_file_path)
22
- module = importlib.util.module_from_spec(spec)
23
- spec.loader.exec_module(module)
24
- return module
25
- finally:
26
- # 임시 파일 삭제
27
- if os.path.exists(temp_file_path):
28
- os.unlink(temp_file_path)
29
-
30
- def load_module_from_env(env_var_name, module_name):
31
- """환경변수에서 모듈 코드를 가져와서 동적으로 로드"""
32
- module_code = os.environ.get(env_var_name)
33
- if not module_code:
34
- raise ValueError(f"환경변수 {env_var_name}가 설정되지 않았습니다.")
35
-
36
- # 임시 파일 생성
37
- with tempfile.NamedTemporaryFile(mode='w', suffix='.py', delete=False, encoding='utf-8') as f:
38
- f.write(module_code)
39
- temp_file_path = f.name
40
-
41
- try:
42
- # 모듈 동적 로드
43
- spec = importlib.util.spec_from_file_location(module_name, temp_file_path)
44
- module = importlib.util.module_from_spec(spec)
45
- spec.loader.exec_module(module)
46
- return module
47
- except Exception as e:
48
- print(f"모듈 {module_name} 로드 실패: {e}")
49
- return None
50
- finally:
51
- # 임시 파일 삭제
52
- if os.path.exists(temp_file_path):
53
- os.unlink(temp_file_path)
54
-
55
- # 환경변수에서 각 모듈 로드 (에러 처리 추가)
56
- print("=== 모듈 로드 시작 ===")
57
-
58
- # 환경변수 존재 확인
59
- env_vars = ['INFO_BLOG_CODE', 'TRAVEL_BLOG_CODE', 'PRODUCT_REVIEW_BLOG_CODE', 'FEATURE_FOCUS_BLOG_CODE', 'VISIT_REVIEW_BLOG_CODE']
60
- for var in env_vars:
61
- exists = bool(os.environ.get(var))
62
- length = len(os.environ.get(var, ''))
63
- print(f"{var}: 존재={exists}, 길이={length}")
64
-
65
- try:
66
- print("info_blog 로드 시도...")
67
- info_blog = load_module_from_env('INFO_BLOG_CODE', 'info_blog')
68
- if info_blog:
69
- print("✓ info_blog 로드 성공")
70
- print(f"info_blog 함수들: {[attr for attr in dir(info_blog) if not attr.startswith('_')]}")
71
- else:
72
- print("✗ info_blog 로드 실패")
73
- except Exception as e:
74
- print(f"info_blog 로드 실패: {e}")
75
- info_blog = None
76
-
77
- try:
78
- print("travel_blog 로드 시도...")
79
- travel_blog = load_module_from_env('TRAVEL_BLOG_CODE', 'travel_blog')
80
- if travel_blog:
81
- print("✓ travel_blog 로드 성공")
82
- print(f"travel_blog 함수들: {[attr for attr in dir(travel_blog) if not attr.startswith('_')]}")
83
- else:
84
- print("✗ travel_blog 로드 실패")
85
- except Exception as e:
86
- print(f"travel_blog 로드 실패: {e}")
87
- travel_blog = None
88
-
89
- try:
90
- print("product_review_blog 로드 시도...")
91
- product_review_blog = load_module_from_env('PRODUCT_REVIEW_BLOG_CODE', 'product_review_blog')
92
- if product_review_blog:
93
- print("✓ product_review_blog 로드 성공")
94
- else:
95
- print("✗ product_review_blog 로드 실패")
96
- except Exception as e:
97
- print(f"product_review_blog 로드 실패: {e}")
98
- product_review_blog = None
99
-
100
- try:
101
- print("feature_focus_blog 로드 시도...")
102
- feature_focus_blog = load_module_from_env('FEATURE_FOCUS_BLOG_CODE', 'feature_focus_blog')
103
- if feature_focus_blog:
104
- print("✓ feature_focus_blog 로드 성공")
105
- else:
106
- print("✗ feature_focus_blog 로드 실패")
107
- except Exception as e:
108
- print(f"feature_focus_blog 로드 실패: {e}")
109
- feature_focus_blog = None
110
-
111
- try:
112
- print("visit_review_blog 로드 시도...")
113
- visit_review_blog = load_module_from_env('VISIT_REVIEW_BLOG_CODE', 'visit_review_blog')
114
- if visit_review_blog:
115
- print("✓ visit_review_blog 로드 성공")
116
- else:
117
- print("✗ visit_review_blog 로드 실패")
118
- except Exception as e:
119
- print(f"visit_review_blog 로드 실패: {e}")
120
- visit_review_blog = None
121
-
122
- print("=== 모듈 로드 완료 ===")
123
-
124
- # 더미 함수 정의
125
- def dummy_function(*args, **kwargs):
126
- return "모듈 로드에 실패했습니다. 환경변수를 확인해주세요."
127
-
128
- # 환경변수에서 로드된 모듈에서 함수 가져오기 (안전한 방식)
129
- print("=== 함수 할당 시작 ===")
130
- generate_outline_1 = getattr(info_blog, 'generate_outline_1', dummy_function) if info_blog else dummy_function
131
- generate_blog_post_1 = getattr(info_blog, 'generate_blog_post_1', dummy_function) if info_blog else dummy_function
132
-
133
- # travel_blog 모듈 ��세 디버깅
134
- print(f"travel_blog 모듈 상태: {travel_blog}")
135
- print(f"travel_blog type: {type(travel_blog)}")
136
- if travel_blog:
137
- print(f"travel_blog 속성들: {dir(travel_blog)}")
138
- print(f"generate_outline_3 존재: {hasattr(travel_blog, 'generate_outline_3')}")
139
- print(f"generate_blog_post_3 존재: {hasattr(travel_blog, 'generate_blog_post_3')}")
140
-
141
- # 실제로 함수가 있는지 확인
142
- all_funcs = [attr for attr in dir(travel_blog) if callable(getattr(travel_blog, attr, None)) and not attr.startswith('_')]
143
- print(f"travel_blog 호출 가능한 함수들: {all_funcs}")
144
-
145
- # travel_blog 함수 할당 (더 안전한 방식)
146
- try:
147
- if travel_blog:
148
- outline_func = getattr(travel_blog, 'generate_outline_3', None)
149
- if outline_func:
150
- generate_outline_2 = outline_func
151
- print("✓ generate_outline_2: travel_blog.generate_outline_3 할당 성공")
152
- else:
153
- # 다른 이름으로 시도
154
- outline_func = getattr(travel_blog, 'generate_outline', None)
155
- if outline_func:
156
- generate_outline_2 = outline_func
157
- print("✓ generate_outline_2: travel_blog.generate_outline 할당 성공")
158
- else:
159
- generate_outline_2 = dummy_function
160
- print("✗ generate_outline_2: 적절한 함수를 찾을 수 없음")
161
- else:
162
- generate_outline_2 = dummy_function
163
- print("✗ generate_outline_2: travel_blog 모듈이 None")
164
-
165
- if travel_blog:
166
- blog_func = getattr(travel_blog, 'generate_blog_post_3', None)
167
- if blog_func:
168
- generate_blog_post_2 = blog_func
169
- print("✓ generate_blog_post_2: travel_blog.generate_blog_post_3 할당 성공")
170
- else:
171
- # 다른 이름으로 시도
172
- blog_func = getattr(travel_blog, 'generate_blog_post', None)
173
- if blog_func:
174
- generate_blog_post_2 = blog_func
175
- print("✓ generate_blog_post_2: travel_blog.generate_blog_post 할당 성공")
176
- else:
177
- generate_blog_post_2 = dummy_function
178
- print("✗ generate_blog_post_2: 적절한 함수를 찾을 수 없음")
179
- else:
180
- generate_blog_post_2 = dummy_function
181
- print("✗ generate_blog_post_2: travel_blog 모듈이 None")
182
-
183
- except Exception as e:
184
- print(f"travel_blog 함수 할당 중 오류: {e}")
185
- generate_outline_2 = dummy_function
186
- generate_blog_post_2 = dummy_function
187
-
188
- generate_outline_3 = getattr(product_review_blog, 'generate_outline_3', dummy_function) if product_review_blog else dummy_function
189
- generate_blog_post_3 = getattr(product_review_blog, 'generate_blog_post_3', dummy_function) if product_review_blog else dummy_function
190
- generate_outline_4 = getattr(feature_focus_blog, 'generate_outline_4', dummy_function) if feature_focus_blog else dummy_function
191
- generate_blog_post_4 = getattr(feature_focus_blog, 'generate_blog_post_4', dummy_function) if feature_focus_blog else dummy_function
192
- generate_outline_5 = getattr(visit_review_blog, 'generate_outline_5', dummy_function) if visit_review_blog else dummy_function
193
- generate_blog_post_5 = getattr(visit_review_blog, 'generate_blog_post_5', dummy_function) if visit_review_blog else dummy_function
194
-
195
- print("함수 할당 완료:")
196
- print(f"- generate_outline_1: {'✓' if generate_outline_1 != dummy_function else '✗'}")
197
- print(f"- generate_blog_post_1: {'✓' if generate_blog_post_1 != dummy_function else '✗'}")
198
- print(f"- generate_outline_2: {'✓' if generate_outline_2 != dummy_function else '✗'} (travel_blog.generate_outline_3 사용)")
199
- print(f"- generate_blog_post_2: {'✓' if generate_blog_post_2 != dummy_function else '✗'} (travel_blog.generate_blog_post_3 사용)")
200
- print(f"- generate_outline_3: {'✓' if generate_outline_3 != dummy_function else '✗'}")
201
- print(f"- generate_blog_post_3: {'✓' if generate_blog_post_3 != dummy_function else '✗'}")
202
- print(f"- generate_outline_4: {'✓' if generate_outline_4 != dummy_function else '✗'}")
203
- print(f"- generate_blog_post_4: {'✓' if generate_blog_post_4 != dummy_function else '✗'}")
204
- print(f"- generate_outline_5: {'✓' if generate_outline_5 != dummy_function else '✗'}")
205
- print(f"- generate_blog_post_5: {'✓' if generate_blog_post_5 != dummy_function else '✗'}")
206
- print("=== 함수 할당 완료 ===")
207
 
208
  # 기존 API 함수 정의 (정보성)
209
  def generate_outline_1_api(category, style, ref1, ref2, ref3):
 
 
1
  import gradio as gr
2
  from gradio_client import Client
3
  import os
 
 
4
 
5
+ # 각 모듈에서 함수 import (PDF 함수 제거)
6
+ from info_blog import generate_outline_1, generate_blog_post_1
7
+ from travel_blog import generate_outline_2, generate_blog_post_2
8
+ from product_review_blog import generate_outline_3, generate_blog_post_3
9
+ from feature_focus_blog import generate_outline_4, generate_blog_post_4
10
+ from visit_review_blog import generate_outline_5, generate_blog_post_5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
 
12
  # 기존 API 함수 정의 (정보성)
13
  def generate_outline_1_api(category, style, ref1, ref2, ref3):