lacos03 commited on
Commit
ebd5453
·
1 Parent(s): 3c75b94
Files changed (1) hide show
  1. app.py +23 -6
app.py CHANGED
@@ -50,15 +50,29 @@ MAX_NEW_TOKENS = 62
50
  # === Hàm xử lý ===
51
  def summarize_article(article_text):
52
  """Tóm tắt bài viết và tạo prompt refinement"""
 
53
  if not article_text.strip():
54
- return "[Empty]", "[Empty]"
55
- summary = summarizer(article_text, num_beams=NUM_BEAMS,
 
 
 
 
 
 
 
 
 
 
 
56
  no_repeat_ngram_size=NO_REPEAT_NGRAM_SIZE,
57
  length_penalty=LENGTH_PENALTY,
58
  min_new_tokens=MIN_NEW_TOKENS,
59
- max_new_tokens=MAX_NEW_TOKENS, do_sample=False)[0]["summary_text"]
 
 
 
60
  title = summary.split(".")[0] + "."
61
- # Prompt refinement
62
  input_ids = promptist_tokenizer(title.strip() + " Rephrase:", return_tensors="pt").input_ids.to(device)
63
  eos_id = promptist_tokenizer.eos_token_id
64
  outputs = promptist_model.generate(
@@ -73,7 +87,9 @@ def summarize_article(article_text):
73
  )
74
  output_texts = promptist_tokenizer.batch_decode(outputs, skip_special_tokens=True)
75
  prompt = output_texts[0].replace(title + " Rephrase:", "").strip()
76
- return title, prompt
 
 
77
 
78
  def generate_images(prompt, style, num_images=4):
79
  """Sinh nhiều ảnh"""
@@ -113,6 +129,7 @@ def create_app():
113
  choices=["Art", "Anime", "Watercolor", "Cyberpunk"],
114
  label="🎨 Phong cách ảnh", value="Art"
115
  )
 
116
  num_images_slider = gr.Slider(1, 8, value=4, step=1, label="🔢 Số lượng ảnh")
117
  btn_summary = gr.Button("📌 Sinh Tiêu đề & Prompt")
118
 
@@ -132,7 +149,7 @@ def create_app():
132
  btn_summary.click(
133
  fn=summarize_article,
134
  inputs=[article_input],
135
- outputs=[title_output, prompt_output]
136
  )
137
 
138
  def update_gallery(prompt, style, num_images):
 
50
  # === Hàm xử lý ===
51
  def summarize_article(article_text):
52
  """Tóm tắt bài viết và tạo prompt refinement"""
53
+ # Kiểm tra rỗng
54
  if not article_text.strip():
55
+ return gr.update(value="❌ <span style='color:red'>Bạn chưa nhập bài viết</span>"), "", ""
56
+
57
+ # Kiểm tra số từ
58
+ word_count = len(article_text.split())
59
+ if word_count < 20 or word_count > 300:
60
+ return gr.update(value=f"❌ <span style='color:red'>Bài viết phải từ 20–300 từ (hiện tại: {word_count} từ)</span>"), "", ""
61
+
62
+ # Nếu hợp lệ thì xóa cảnh báo
63
+ error_msg = gr.update(value="")
64
+
65
+ summary = summarizer(
66
+ article_text,
67
+ num_beams=NUM_BEAMS,
68
  no_repeat_ngram_size=NO_REPEAT_NGRAM_SIZE,
69
  length_penalty=LENGTH_PENALTY,
70
  min_new_tokens=MIN_NEW_TOKENS,
71
+ max_new_tokens=MAX_NEW_TOKENS,
72
+ do_sample=False
73
+ )[0]["summary_text"]
74
+
75
  title = summary.split(".")[0] + "."
 
76
  input_ids = promptist_tokenizer(title.strip() + " Rephrase:", return_tensors="pt").input_ids.to(device)
77
  eos_id = promptist_tokenizer.eos_token_id
78
  outputs = promptist_model.generate(
 
87
  )
88
  output_texts = promptist_tokenizer.batch_decode(outputs, skip_special_tokens=True)
89
  prompt = output_texts[0].replace(title + " Rephrase:", "").strip()
90
+
91
+ return error_msg, title, prompt
92
+
93
 
94
  def generate_images(prompt, style, num_images=4):
95
  """Sinh nhiều ảnh"""
 
129
  choices=["Art", "Anime", "Watercolor", "Cyberpunk"],
130
  label="🎨 Phong cách ảnh", value="Art"
131
  )
132
+ error_box = gr.Markdown(value="", elem_id="error-msg")
133
  num_images_slider = gr.Slider(1, 8, value=4, step=1, label="🔢 Số lượng ảnh")
134
  btn_summary = gr.Button("📌 Sinh Tiêu đề & Prompt")
135
 
 
149
  btn_summary.click(
150
  fn=summarize_article,
151
  inputs=[article_input],
152
+ outputs=[error_box, title_output, prompt_output]
153
  )
154
 
155
  def update_gallery(prompt, style, num_images):