Toya0421 commited on
Commit
e124066
·
verified ·
1 Parent(s): ef6a5f9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -10
app.py CHANGED
@@ -101,9 +101,17 @@ def load_passage_info(xlsx_path: str) -> pd.DataFrame:
101
  # =========================
102
  # プロンプト(★1本固定:元の1つ目だけ)
103
  # =========================
104
- def build_prompt(text: str, target_level: int) -> str:
105
  target_flesch = target_flesch_from_level(target_level)
106
 
 
 
 
 
 
 
 
 
107
  return f"""
108
  Rewrite the following text to achieve a Flesch Readability Score of {target_flesch}.
109
 
@@ -115,15 +123,15 @@ Requirements:
115
  - Rewrite texts into clear, modern English by removing archaic expressions and unnatural syntax typical of older texts at all levels.
116
  - Key points to keep in mind when lowering reading comprehension difficulty include keeping sentences short, using familiar vocabulary, prioritizing simple sentence structures, avoiding jargon or providing clear explanations when used, and minimizing figurative language, idioms, and other expressions where meaning cannot be directly inferred from the words themselves.
117
  - Output only the rewritten text. Do not include explanatory notes or other additional text.
118
- {text}
119
  """.strip()
120
 
121
 
122
  # =========================
123
  # 書き換え
124
  # =========================
125
- def rewrite_level(text: str, target_level: int) -> str:
126
- prompt = build_prompt(text=text, target_level=target_level)
127
 
128
  max_tokens_candidates = [3000, 2000, 1500, 1000]
129
  last_error = None
@@ -301,10 +309,12 @@ def run_one(level: int, state: dict):
301
  path = passage_path_from_text_id(text_id, PASSAGES_DIR)
302
  original = load_text(path)
303
 
304
- rewritten = rewrite_level(original, target_level=level)
 
 
 
305
  rewritten_fre, wc = compute_metrics(rewritten)
306
 
307
- original_fre = float(state.get("orig_score_map", {}).get(text_id, float("nan")))
308
  ts = (datetime.utcnow() + timedelta(hours=9)).strftime("%Y-%m-%d %H:%M:%S")
309
 
310
  append_csv_row({
@@ -367,10 +377,12 @@ def run_all(level: int, state: dict):
367
  path = passage_path_from_text_id(text_id, PASSAGES_DIR)
368
  original = load_text(path)
369
 
370
- rewritten = rewrite_level(original, target_level=level)
 
 
 
371
  rewritten_fre, wc = compute_metrics(rewritten)
372
 
373
- original_fre = float(state.get("orig_score_map", {}).get(text_id, float("nan")))
374
  ts = (datetime.utcnow() + timedelta(hours=9)).strftime("%Y-%m-%d %H:%M:%S")
375
 
376
  append_csv_row({
@@ -494,7 +506,6 @@ with gr.Blocks() as demo:
494
 
495
  state = gr.State(init_state())
496
 
497
- # ★変更:プロンプト選択UIを削除(1本固定)
498
  level = gr.Dropdown(choices=[1, 2, 3, 4, 5], value=1, label="Target Level (1..5)")
499
  status = gr.Textbox(label="Status", interactive=False)
500
  header = gr.Textbox(label="Result Header (#Text / FRE / Words)", lines=8, interactive=False)
@@ -541,7 +552,6 @@ with gr.Blocks() as demo:
541
  gr.Markdown(f"📝 TXTフォルダ: `{REWRITE_DIR}`")
542
  gr.Markdown(f"📘 Excel: `{PASSAGE_INFO_XLSX}` / passages dir: `{PASSAGES_DIR}`")
543
 
544
- # ---- 既存ボタン(prompt_modeなし)----
545
  start_btn.click(
546
  fn=start,
547
  inputs=[level],
 
101
  # =========================
102
  # プロンプト(★1本固定:元の1つ目だけ)
103
  # =========================
104
+ def build_prompt(text: str, target_level: int, original_fre: Optional[float] = None) -> str:
105
  target_flesch = target_flesch_from_level(target_level)
106
 
107
+ # ★追加:書き換え前スコア(情報として渡すだけ。Requirementsは一切変更しない)
108
+ original_line = ""
109
+ if original_fre is not None:
110
+ try:
111
+ original_line = f"Original Flesch Reading Ease (before rewriting): {float(original_fre):.2f}\n"
112
+ except Exception:
113
+ original_line = ""
114
+
115
  return f"""
116
  Rewrite the following text to achieve a Flesch Readability Score of {target_flesch}.
117
 
 
123
  - Rewrite texts into clear, modern English by removing archaic expressions and unnatural syntax typical of older texts at all levels.
124
  - Key points to keep in mind when lowering reading comprehension difficulty include keeping sentences short, using familiar vocabulary, prioritizing simple sentence structures, avoiding jargon or providing clear explanations when used, and minimizing figurative language, idioms, and other expressions where meaning cannot be directly inferred from the words themselves.
125
  - Output only the rewritten text. Do not include explanatory notes or other additional text.
126
+ {original_line}{text}
127
  """.strip()
128
 
129
 
130
  # =========================
131
  # 書き換え
132
  # =========================
133
+ def rewrite_level(text: str, target_level: int, original_fre: Optional[float] = None) -> str:
134
+ prompt = build_prompt(text=text, target_level=target_level, original_fre=original_fre)
135
 
136
  max_tokens_candidates = [3000, 2000, 1500, 1000]
137
  last_error = None
 
309
  path = passage_path_from_text_id(text_id, PASSAGES_DIR)
310
  original = load_text(path)
311
 
312
+ original_fre = float(state.get("orig_score_map", {}).get(text_id, float("nan")))
313
+
314
+ # ★変更:original_fre をプロンプトに渡す(プロンプト文面は維持)
315
+ rewritten = rewrite_level(original, target_level=level, original_fre=original_fre)
316
  rewritten_fre, wc = compute_metrics(rewritten)
317
 
 
318
  ts = (datetime.utcnow() + timedelta(hours=9)).strftime("%Y-%m-%d %H:%M:%S")
319
 
320
  append_csv_row({
 
377
  path = passage_path_from_text_id(text_id, PASSAGES_DIR)
378
  original = load_text(path)
379
 
380
+ original_fre = float(state.get("orig_score_map", {}).get(text_id, float("nan")))
381
+
382
+ # ★変更:original_fre をプロンプトに渡す(プロンプト文面は維持)
383
+ rewritten = rewrite_level(original, target_level=level, original_fre=original_fre)
384
  rewritten_fre, wc = compute_metrics(rewritten)
385
 
 
386
  ts = (datetime.utcnow() + timedelta(hours=9)).strftime("%Y-%m-%d %H:%M:%S")
387
 
388
  append_csv_row({
 
506
 
507
  state = gr.State(init_state())
508
 
 
509
  level = gr.Dropdown(choices=[1, 2, 3, 4, 5], value=1, label="Target Level (1..5)")
510
  status = gr.Textbox(label="Status", interactive=False)
511
  header = gr.Textbox(label="Result Header (#Text / FRE / Words)", lines=8, interactive=False)
 
552
  gr.Markdown(f"📝 TXTフォルダ: `{REWRITE_DIR}`")
553
  gr.Markdown(f"📘 Excel: `{PASSAGE_INFO_XLSX}` / passages dir: `{PASSAGES_DIR}`")
554
 
 
555
  start_btn.click(
556
  fn=start,
557
  inputs=[level],