Mehdi commited on
Commit
3f931e8
·
1 Parent(s): 93eb128

fix: expose chunk via hidden textbox so source passage displays in feedback

Browse files
Files changed (1) hide show
  1. app.py +10 -5
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,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;')+'</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,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;')+'</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(