AIRider commited on
Commit
0f96348
ยท
verified ยท
1 Parent(s): 4612806

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +3 -74
app.py CHANGED
@@ -130,79 +130,6 @@ def fetch_crawl_results(query):
130
 
131
  def generate_blog_post(query, prompt_template):
132
  try:
133
- # ๋žœ๋ค ์‹œ๋“œ ์„ค์ •
134
- random.seed(42)
135
-
136
- # ๋ชฉํ‘œ ๊ธ€์ž์ˆ˜ ์„ค์ • (๋ฌธ์ž ์ˆ˜)
137
- target_char_length = 2000
138
-
139
- # ์ฐธ๊ณ ๊ธ€ ๊ฐ€์ ธ์˜ค๊ธฐ
140
- references = fetch_references(query)
141
- ref1, ref2, ref3 = references
142
-
143
- # OpenAI API ์„ค์ •
144
- model_name = "gpt-4o-mini"
145
- temperature = 0.85
146
- max_tokens = 10000 # ์ตœ๋Œ€ ํ† ํฐ ์ˆ˜๋ฅผ ๋ชจ๋ธ ์ œํ•œ์— ๋งž๊ฒŒ ์„ค์ •
147
- top_p = 0.9
148
- frequency_penalty = 0.5
149
- presence_penalty = 0
150
-
151
- # ๋ถˆํ•„์š”ํ•œ ํ‘œํ˜„ ํŒจํ„ด ์ •์˜
152
- unwanted_patterns = [
153
- re.compile(r'\b์—ฌ๋Ÿฌ๋ถ„[,.]?\s*', re.IGNORECASE),
154
- re.compile(r'\b(๋งˆ์ง€๋ง‰์œผ๋กœ|๊ฒฐ๋ก ์ ์œผ๋กœ|๊ฒฐ๊ตญ|์ข…ํ•ฉ์ ์œผ๋กœ|๋”ฐ๋ผ์„œ|๋งˆ๋ฌด๋ฆฌ|์š”์•ฝ)[,.]?\s*', re.IGNORECASE)
155
- ]
156
-
157
- # ์‚ฌ์šฉ์ž ํ”„๋กฌํ”„ํŠธ ๊ตฌ์„ฑ
158
- user_prompt = prompt_template + f"""
159
- ์ฃผ์ œ: {query}
160
- ์ฐธ๊ณ ๊ธ€1: {ref1}
161
- ์ฐธ๊ณ ๊ธ€2: {ref2}
162
- ์ฐธ๊ณ ๊ธ€3: {ref3}
163
- """
164
-
165
- # ๋ฉ”์‹œ์ง€ ๊ตฌ์„ฑ
166
- messages = [
167
- {"role": "user", "content": user_prompt}
168
- ]
169
-
170
- # OpenAI API ํ˜ธ์ถœ
171
- response = openai.ChatCompletion.create(
172
- model=model_name,
173
- messages=messages,
174
- temperature=temperature,
175
- max_tokens=max_tokens,
176
- top_p=top_p,
177
- frequency_penalty=frequency_penalty,
178
- presence_penalty=presence_penalty,
179
- )
180
-
181
- generated_post = response['choices'][0]['message']['content'].strip()
182
-
183
- # ์ƒ์„ฑ๋œ ๊ธ€์—์„œ ๋ถˆํ•„์š”ํ•œ ํ‘œํ˜„ ์ œ๊ฑฐ
184
- for pattern in unwanted_patterns:
185
- generated_post = pattern.sub('', generated_post)
186
-
187
- # ์ƒ์„ฑ๋œ ๊ธ€์˜ ์‹ค์ œ ๋ฌธ์ž ์ˆ˜ ๊ณ„์‚ฐ
188
- actual_char_length = len(generated_post)
189
-
190
- # ๋ชฉํ‘œ ๊ธ€์ž์ˆ˜ ๋ฏธ๋‹ฌ ์‹œ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€ ์ถ”๊ฐ€
191
- if actual_char_length < target_char_length:
192
- warning_message = f"\n\n[๊ฒฝ๊ณ ] ์ƒ์„ฑ๋œ ๊ธ€์˜ ๊ธธ์ด๊ฐ€ ๋ชฉํ‘œ ๊ธ€์ž์ˆ˜์ธ {target_char_length}์ž์— ๋ฏธ๋‹ฌํ•ฉ๋‹ˆ๋‹ค. (ํ˜„์žฌ ๊ธ€์ž์ˆ˜: {actual_char_length}์ž)"
193
- generated_post += warning_message
194
-
195
- final_post = f"์ฃผ์ œ: {query}\n\n{generated_post}"
196
-
197
- return final_post, ref1, ref2, ref3, actual_char_length
198
- except Exception as e:
199
- print(f"generate_blog_post ํ•จ์ˆ˜์—์„œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ: {str(e)}")
200
- return f"๋ธ”๋กœ๊ทธ ๊ธ€ ์ƒ์„ฑ ์ค‘ ์˜ค๋ฅ˜ ๋ฐœ์ƒ: {str(e)}", "", "", "", 0
201
- def generate_blog_post(query, prompt_template):
202
- try:
203
- # ๋žœ๋ค ์‹œ๋“œ ์„ค์ •
204
- random.seed(42)
205
-
206
  # ๋ชฉํ‘œ ๊ธ€์ž์ˆ˜ ์„ค์ • (๋ฌธ์ž ์ˆ˜)
207
  target_char_length = 2000
208
 
@@ -230,6 +157,7 @@ def generate_blog_post(query, prompt_template):
230
  ์ฐธ๊ณ ๊ธ€1: {ref1}
231
  ์ฐธ๊ณ ๊ธ€2: {ref2}
232
  ์ฐธ๊ณ ๊ธ€3: {ref3}
 
233
  """
234
 
235
  # ๋ฉ”์‹œ์ง€ ๊ตฌ์„ฑ
@@ -248,6 +176,7 @@ def generate_blog_post(query, prompt_template):
248
  presence_penalty=presence_penalty,
249
  )
250
 
 
251
  generated_post = response['choices'][0]['message']['content'].strip()
252
 
253
  # ์ƒ์„ฑ๋œ ๊ธ€์—์„œ ๋ถˆํ•„์š”ํ•œ ํ‘œํ˜„ ์ œ๊ฑฐ
@@ -262,13 +191,13 @@ def generate_blog_post(query, prompt_template):
262
  warning_message = f"\n\n[๊ฒฝ๊ณ ] ์ƒ์„ฑ๋œ ๊ธ€์˜ ๊ธธ์ด๊ฐ€ ๋ชฉํ‘œ ๊ธ€์ž์ˆ˜์ธ {target_char_length}์ž์— ๋ฏธ๋‹ฌํ•ฉ๋‹ˆ๋‹ค. (ํ˜„์žฌ ๊ธ€์ž์ˆ˜: {actual_char_length}์ž)"
263
  generated_post += warning_message
264
 
 
265
  final_post = f"์ฃผ์ œ: {query}\n\n{generated_post}"
266
 
267
  return final_post, ref1, ref2, ref3, actual_char_length
268
  except Exception as e:
269
  print(f"generate_blog_post ํ•จ์ˆ˜์—์„œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ: {str(e)}")
270
  return f"๋ธ”๋กœ๊ทธ ๊ธ€ ์ƒ์„ฑ ์ค‘ ์˜ค๋ฅ˜ ๋ฐœ์ƒ: {str(e)}", "", "", "", 0
271
-
272
 
273
  # PDF ํด๋ž˜์Šค ๋ฐ ๊ด€๋ จ ํ•จ์ˆ˜ ์ •์˜
274
  class PDF(FPDF2):
 
130
 
131
  def generate_blog_post(query, prompt_template):
132
  try:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
133
  # ๋ชฉํ‘œ ๊ธ€์ž์ˆ˜ ์„ค์ • (๋ฌธ์ž ์ˆ˜)
134
  target_char_length = 2000
135
 
 
157
  ์ฐธ๊ณ ๊ธ€1: {ref1}
158
  ์ฐธ๊ณ ๊ธ€2: {ref2}
159
  ์ฐธ๊ณ ๊ธ€3: {ref3}
160
+ ๋ชฉํ‘œ ๊ธ€์ž์ˆ˜: {target_char_length}
161
  """
162
 
163
  # ๋ฉ”์‹œ์ง€ ๊ตฌ์„ฑ
 
176
  presence_penalty=presence_penalty,
177
  )
178
 
179
+ # ๋ชจ๋ธ์ด ์ƒ์„ฑํ•œ ๋‹ต๋ณ€ ์ถ”์ถœ
180
  generated_post = response['choices'][0]['message']['content'].strip()
181
 
182
  # ์ƒ์„ฑ๋œ ๊ธ€์—์„œ ๋ถˆํ•„์š”ํ•œ ํ‘œํ˜„ ์ œ๊ฑฐ
 
191
  warning_message = f"\n\n[๊ฒฝ๊ณ ] ์ƒ์„ฑ๋œ ๊ธ€์˜ ๊ธธ์ด๊ฐ€ ๋ชฉํ‘œ ๊ธ€์ž์ˆ˜์ธ {target_char_length}์ž์— ๋ฏธ๋‹ฌํ•ฉ๋‹ˆ๋‹ค. (ํ˜„์žฌ ๊ธ€์ž์ˆ˜: {actual_char_length}์ž)"
192
  generated_post += warning_message
193
 
194
+ # ์ตœ์ข… ๊ฒฐ๊ณผ๋ฌผ ๊ตฌ์„ฑ
195
  final_post = f"์ฃผ์ œ: {query}\n\n{generated_post}"
196
 
197
  return final_post, ref1, ref2, ref3, actual_char_length
198
  except Exception as e:
199
  print(f"generate_blog_post ํ•จ์ˆ˜์—์„œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ: {str(e)}")
200
  return f"๋ธ”๋กœ๊ทธ ๊ธ€ ์ƒ์„ฑ ์ค‘ ์˜ค๋ฅ˜ ๋ฐœ์ƒ: {str(e)}", "", "", "", 0
 
201
 
202
  # PDF ํด๋ž˜์Šค ๋ฐ ๊ด€๋ จ ํ•จ์ˆ˜ ์ •์˜
203
  class PDF(FPDF2):