Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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 |
-
|
|
|
|
|
|
|
|
|
|
| 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 |
-
|
|
|
|
|
|
|
|
|
|
| 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],
|