AIRider commited on
Commit
c5a9055
ยท
verified ยท
1 Parent(s): 421135d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +38 -4
app.py CHANGED
@@ -130,6 +130,8 @@ def fetch_crawl_results(query):
130
 
131
  def generate_blog_post(query, prompt_template):
132
  try:
 
 
133
  references = fetch_references(query)
134
  ref1, ref2, ref3 = references
135
 
@@ -144,8 +146,8 @@ def generate_blog_post(query, prompt_template):
144
  {ref2}
145
 
146
  ์ฐธ๊ณ ๊ธ€3:
147
- {ref3}"""
148
-
149
  messages = [
150
  {"role": "system", "content": prompt_template},
151
  {"role": "user", "content": user_message}
@@ -163,11 +165,43 @@ def generate_blog_post(query, prompt_template):
163
 
164
  generated_post = response.choices[0].message['content']
165
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
166
  final_post = f"์ฃผ์ œ: {query}\n\n{generated_post}"
 
167
 
168
- return final_post, ref1, ref2, ref3
169
  except Exception as e:
170
- return f"๋ธ”๋กœ๊ทธ ๊ธ€ ์ƒ์„ฑ ์ค‘ ์˜ค๋ฅ˜ ๋ฐœ์ƒ: {str(e)}", "", "", ""
171
 
172
  # PDF ํด๋ž˜์Šค ๋ฐ ๊ด€๋ จ ํ•จ์ˆ˜ ์ •์˜
173
  class PDF(FPDF2):
 
130
 
131
  def generate_blog_post(query, prompt_template):
132
  try:
133
+ target_length = 2000 # ๋‚ด๋ถ€์ ์œผ๋กœ ๋ชฉํ‘œ ๊ธ€์ž์ˆ˜ ์„ค์ •
134
+
135
  references = fetch_references(query)
136
  ref1, ref2, ref3 = references
137
 
 
146
  {ref2}
147
 
148
  ์ฐธ๊ณ ๊ธ€3:
149
+ {ref3}
150
+ """
151
  messages = [
152
  {"role": "system", "content": prompt_template},
153
  {"role": "user", "content": user_message}
 
165
 
166
  generated_post = response.choices[0].message['content']
167
 
168
+ # ์›์น˜ ์•Š๋Š” ํ‘œํ˜„๋“ค์„ ์ •๊ทœํ‘œํ˜„์‹ ํŒจํ„ด์œผ๋กœ ์ •์˜
169
+ unwanted_patterns = [
170
+ r'\b์—ฌ๋Ÿฌ๋ถ„[,.]?\s*',
171
+ r'\b(๋งˆ์ง€๋ง‰์œผ๋กœ|๊ฒฐ๋ก ์ ์œผ๋กœ|๊ฒฐ๊ตญ|์ข…ํ•ฉ์ ์œผ๋กœ|๋”ฐ๋ผ์„œ|๋งˆ๋ฌด๋ฆฌ|์š”์•ฝ)[,.]?\s*'
172
+ ]
173
+
174
+ # ๊ธ€์ž์ˆ˜๊ฐ€ ๋ถ€์กฑํ•œ ๊ฒฝ์šฐ ์ถ”๊ฐ€ ์ƒ์„ฑ
175
+ while len(generated_post) < target_length or any(re.search(pattern, generated_post, re.IGNORECASE) for pattern in unwanted_patterns):
176
+ if len(generated_post) < target_length:
177
+ additional_length = target_length - len(generated_post)
178
+ reason = f"ํ˜„์žฌ ๊ธ€์ž์ˆ˜๋Š” {len(generated_post)}์ž ์ด๋‹ค. ์•ฝ {additional_length}์ž๋ฅผ ์ถ”๊ฐ€๋กœ ์ž‘์„ฑํ•˜์—ฌ ์ด {target_length}์ž ์ด์ƒ์ด ๋˜๋„๋ก ์ž‘์„ฑํ•˜๋ผ"
179
+ else:
180
+ reason = "์›์น˜ ์•Š๋Š” ํ‘œํ˜„์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ํ‘œํ˜„์„ ์ œ๊ฑฐํ•˜๊ณ  ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ธ€์„ ๋‹ค์‹œ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”."
181
+
182
+ additional_message = f"{reason} ์ด์ „ ๋‚ด์šฉ๊ณผ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์—ฐ๊ฒฐ๋˜๋„๋ก ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์•ž์„œ ์–ธ๊ธ‰ํ•œ ํ‘œํ˜„๋“ค(์—ฌ๋Ÿฌ๋ถ„, ๋งˆ์ง€๋ง‰์œผ๋กœ, ๊ฒฐ๋ก ์ ์œผ๋กœ, ๊ฒฐ๊ตญ, ์ข…ํ•ฉ์ ์œผ๋กœ, ๋”ฐ๋ผ์„œ, ๋งˆ๋ฌด๋ฆฌ, ์š”์•ฝ)์€ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”."
183
+
184
+ messages.append({"role": "assistant", "content": generated_post})
185
+ messages.append({"role": "user", "content": additional_message})
186
+
187
+ additional_response = openai.ChatCompletion.create(
188
+ model="gpt-4o-mini",
189
+ messages=messages,
190
+ max_tokens=min(10000, max(additional_length * 2, 1000)),
191
+ temperature=0.85,
192
+ top_p=0.9,
193
+ frequency_penalty=0.5,
194
+ seed=random_seed
195
+ )
196
+
197
+ generated_post = additional_response.choices[0].message['content']
198
+
199
  final_post = f"์ฃผ์ œ: {query}\n\n{generated_post}"
200
+ actual_length = len(generated_post)
201
 
202
+ return final_post, ref1, ref2, ref3, actual_length
203
  except Exception as e:
204
+ return f"๋ธ”๋กœ๊ทธ ๊ธ€ ์ƒ์„ฑ ์ค‘ ์˜ค๋ฅ˜ ๋ฐœ์ƒ: {str(e)}", "", "", "", 0
205
 
206
  # PDF ํด๋ž˜์Šค ๋ฐ ๊ด€๋ จ ํ•จ์ˆ˜ ์ •์˜
207
  class PDF(FPDF2):