Mehdi commited on
Commit ·
3f931e8
1
Parent(s): 93eb128
fix: expose chunk via hidden textbox so source passage displays in feedback
Browse files
app.py
CHANGED
|
@@ -155,7 +155,8 @@ body { background: #0A0F1E !important; margin: 0 !important; }
|
|
| 155 |
#hidden-submit-btn,
|
| 156 |
#hidden-question-btn,
|
| 157 |
#hidden-question-trigger,
|
| 158 |
-
#hidden-answer-trigger
|
|
|
|
| 159 |
position: fixed !important;
|
| 160 |
top: -9999px !important;
|
| 161 |
left: -9999px !important;
|
|
@@ -276,17 +277,17 @@ def new_question(chunks, language):
|
|
| 276 |
s = UI[language]
|
| 277 |
if not chunks:
|
| 278 |
print("[new_question] no chunks, returning early")
|
| 279 |
-
return s["no_pdf"], "", s["no_pdf"]
|
| 280 |
try:
|
| 281 |
chunk = random.choice(chunks)
|
| 282 |
print(f"[new_question] chunk selected ({len(chunk)} chars), calling LLM…")
|
| 283 |
question = generate_question(chunk, language=language)
|
| 284 |
print(f"[new_question] question generated: {question[:80]!r}")
|
| 285 |
-
return question, chunk, ""
|
| 286 |
except Exception as e:
|
| 287 |
import traceback; traceback.print_exc()
|
| 288 |
err = f"Erreur : {e}"
|
| 289 |
-
return err, "", err
|
| 290 |
|
| 291 |
|
| 292 |
@spaces.GPU(duration=120)
|
|
@@ -415,6 +416,9 @@ BRIDGE_JS = """() => {
|
|
| 415 |
? sections.map(s => '<div class="section"><span class="section-num">'+(labels[s.num]||'Part '+s.num)+'</span><div class="section-content">'+s.body.replace(/\\n/g,'<br>')+'</div></div>').join('')
|
| 416 |
: '<div class="feedback-raw">'+text.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>')+'</div>';
|
| 417 |
}
|
|
|
|
|
|
|
|
|
|
| 418 |
if (fc) { fc.classList.remove('hidden'); fc.classList.add('fade-in-up'); setTimeout(() => fc.scrollIntoView({behavior:'smooth',block:'nearest'}),100); }
|
| 419 |
return verdict;
|
| 420 |
}
|
|
@@ -616,6 +620,7 @@ with gr.Blocks(title="PaperProf", css=CSS) as demo:
|
|
| 616 |
feedback_box = gr.Textbox(label="💬 Feedback", interactive=False, lines=7, elem_id="hidden-feedback-output")
|
| 617 |
question_trigger = gr.Textbox(value="0", label="qtrig", elem_id="hidden-question-trigger")
|
| 618 |
answer_trigger = gr.Textbox(value="0", label="atrig", elem_id="hidden-answer-trigger")
|
|
|
|
| 619 |
|
| 620 |
# Traduction UI quand on change la langue
|
| 621 |
language_selector.change(
|
|
@@ -633,7 +638,7 @@ with gr.Blocks(title="PaperProf", css=CSS) as demo:
|
|
| 633 |
question_trigger.change(
|
| 634 |
new_question,
|
| 635 |
inputs=[chunks_state, language_selector],
|
| 636 |
-
outputs=[question_box, chunk_state, feedback_box],
|
| 637 |
)
|
| 638 |
|
| 639 |
answer_trigger.change(
|
|
|
|
| 155 |
#hidden-submit-btn,
|
| 156 |
#hidden-question-btn,
|
| 157 |
#hidden-question-trigger,
|
| 158 |
+
#hidden-answer-trigger,
|
| 159 |
+
#hidden-chunk-output {
|
| 160 |
position: fixed !important;
|
| 161 |
top: -9999px !important;
|
| 162 |
left: -9999px !important;
|
|
|
|
| 277 |
s = UI[language]
|
| 278 |
if not chunks:
|
| 279 |
print("[new_question] no chunks, returning early")
|
| 280 |
+
return s["no_pdf"], "", s["no_pdf"], ""
|
| 281 |
try:
|
| 282 |
chunk = random.choice(chunks)
|
| 283 |
print(f"[new_question] chunk selected ({len(chunk)} chars), calling LLM…")
|
| 284 |
question = generate_question(chunk, language=language)
|
| 285 |
print(f"[new_question] question generated: {question[:80]!r}")
|
| 286 |
+
return question, chunk, "", chunk
|
| 287 |
except Exception as e:
|
| 288 |
import traceback; traceback.print_exc()
|
| 289 |
err = f"Erreur : {e}"
|
| 290 |
+
return err, "", err, ""
|
| 291 |
|
| 292 |
|
| 293 |
@spaces.GPU(duration=120)
|
|
|
|
| 416 |
? sections.map(s => '<div class="section"><span class="section-num">'+(labels[s.num]||'Part '+s.num)+'</span><div class="section-content">'+s.body.replace(/\\n/g,'<br>')+'</div></div>').join('')
|
| 417 |
: '<div class="feedback-raw">'+text.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>')+'</div>';
|
| 418 |
}
|
| 419 |
+
const chunkEl = document.querySelector('#hidden-chunk-output textarea');
|
| 420 |
+
const srcEl = document.getElementById('source-text');
|
| 421 |
+
if (srcEl && chunkEl) srcEl.textContent = chunkEl.value;
|
| 422 |
if (fc) { fc.classList.remove('hidden'); fc.classList.add('fade-in-up'); setTimeout(() => fc.scrollIntoView({behavior:'smooth',block:'nearest'}),100); }
|
| 423 |
return verdict;
|
| 424 |
}
|
|
|
|
| 620 |
feedback_box = gr.Textbox(label="💬 Feedback", interactive=False, lines=7, elem_id="hidden-feedback-output")
|
| 621 |
question_trigger = gr.Textbox(value="0", label="qtrig", elem_id="hidden-question-trigger")
|
| 622 |
answer_trigger = gr.Textbox(value="0", label="atrig", elem_id="hidden-answer-trigger")
|
| 623 |
+
chunk_display = gr.Textbox(value="", label="chunk", elem_id="hidden-chunk-output")
|
| 624 |
|
| 625 |
# Traduction UI quand on change la langue
|
| 626 |
language_selector.change(
|
|
|
|
| 638 |
question_trigger.change(
|
| 639 |
new_question,
|
| 640 |
inputs=[chunks_state, language_selector],
|
| 641 |
+
outputs=[question_box, chunk_state, feedback_box, chunk_display],
|
| 642 |
)
|
| 643 |
|
| 644 |
answer_trigger.change(
|