Spaces:
Sleeping
Sleeping
Commit
Β·
f67af4b
1
Parent(s):
6e8ab15
Add feedback logging and UI components for analysis and paper matches
Browse files
app.py
CHANGED
@@ -20,6 +20,12 @@ HF_TOKEN = os.getenv("HF_TOKEN")
|
|
20 |
# Login to Hugging Face Hub
|
21 |
hf_hub_login(token=HF_TOKEN, add_to_git_credential=True)
|
22 |
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
# Dataset details
|
24 |
dataset_name = "nomadicsynth/arxiv-dataset-abstract-embeddings"
|
25 |
dataset_revision = "v1.0.0"
|
@@ -488,6 +494,10 @@ latex_delimiters = [
|
|
488 |
|
489 |
|
490 |
def create_interface():
|
|
|
|
|
|
|
|
|
491 |
with gr.Blocks(
|
492 |
css="""
|
493 |
.cell-menu-button {
|
@@ -549,21 +559,62 @@ def create_interface():
|
|
549 |
with gr.Column(scale=1):
|
550 |
paper_details_output = gr.Markdown(
|
551 |
value="# Paper Details",
|
552 |
-
label="Paper Details",
|
553 |
latex_delimiters=latex_delimiters,
|
554 |
show_copy_button=True,
|
555 |
key="paper_details",
|
556 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
557 |
analyze_btn = gr.Button("Analyze Connection Potential", variant="primary", interactive=False)
|
558 |
with gr.Column(scale=1):
|
559 |
-
# Analysis output
|
560 |
analysis_output = gr.Markdown(
|
561 |
value="# Synergy Analysis",
|
562 |
label="Synergy Analysis",
|
563 |
-
latex_delimiters=latex_delimiters,
|
564 |
show_copy_button=True,
|
565 |
key="analysis_output",
|
566 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
567 |
|
568 |
# Display paper details when row is selected
|
569 |
def on_select(evt: gr.SelectData, papers, query):
|
@@ -610,6 +661,8 @@ def create_interface():
|
|
610 |
lambda: gr.update(interactive=True), # Enable analyze button when paper selected
|
611 |
outputs=[analyze_btn],
|
612 |
api_name=False,
|
|
|
|
|
613 |
)
|
614 |
|
615 |
# Connect analyze button to run analysis
|
@@ -619,6 +672,19 @@ def create_interface():
|
|
619 |
outputs=[analysis_output],
|
620 |
show_progress_on=[paper_details_output, analysis_output],
|
621 |
api_name=False,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
622 |
)
|
623 |
|
624 |
return demo
|
|
|
20 |
# Login to Hugging Face Hub
|
21 |
hf_hub_login(token=HF_TOKEN, add_to_git_credential=True)
|
22 |
|
23 |
+
# Check if using persistent storage
|
24 |
+
persistent_storage = os.path.exists("/data")
|
25 |
+
if persistent_storage:
|
26 |
+
# Use persistent storage
|
27 |
+
print("Using persistent storage")
|
28 |
+
|
29 |
# Dataset details
|
30 |
dataset_name = "nomadicsynth/arxiv-dataset-abstract-embeddings"
|
31 |
dataset_revision = "v1.0.0"
|
|
|
494 |
|
495 |
|
496 |
def create_interface():
|
497 |
+
# Create CSV loggers
|
498 |
+
analysis_logger = gr.CSVLogger()
|
499 |
+
paper_match_logger = gr.CSVLogger()
|
500 |
+
|
501 |
with gr.Blocks(
|
502 |
css="""
|
503 |
.cell-menu-button {
|
|
|
559 |
with gr.Column(scale=1):
|
560 |
paper_details_output = gr.Markdown(
|
561 |
value="# Paper Details",
|
562 |
+
label="Paper Details",
|
563 |
latex_delimiters=latex_delimiters,
|
564 |
show_copy_button=True,
|
565 |
key="paper_details",
|
566 |
)
|
567 |
+
paper_feedback = gr.Radio(
|
568 |
+
["π Good Match", "π Poor Match"],
|
569 |
+
label="Is this paper a good match?",
|
570 |
+
visible=False
|
571 |
+
)
|
572 |
+
paper_comment = gr.Textbox(
|
573 |
+
label="Additional feedback on this paper match (optional)",
|
574 |
+
visible=False
|
575 |
+
)
|
576 |
+
flag_paper_btn = gr.Button("Submit Paper Feedback", visible=False)
|
577 |
analyze_btn = gr.Button("Analyze Connection Potential", variant="primary", interactive=False)
|
578 |
with gr.Column(scale=1):
|
|
|
579 |
analysis_output = gr.Markdown(
|
580 |
value="# Synergy Analysis",
|
581 |
label="Synergy Analysis",
|
582 |
+
latex_delimiters=latex_delimiters,
|
583 |
show_copy_button=True,
|
584 |
key="analysis_output",
|
585 |
)
|
586 |
+
# Add thumbs up/down for analysis
|
587 |
+
analysis_feedback = gr.Radio(
|
588 |
+
["π Helpful", "π Not Helpful"],
|
589 |
+
label="Was this analysis helpful?",
|
590 |
+
visible=False
|
591 |
+
)
|
592 |
+
analysis_comment = gr.Textbox(
|
593 |
+
label="Additional feedback on analysis (optional)",
|
594 |
+
visible=False
|
595 |
+
)
|
596 |
+
flag_analysis_btn = gr.Button("Submit Analysis Feedback", visible=False)
|
597 |
+
|
598 |
+
# Set up loggers for analysis and paper match feedback
|
599 |
+
data_path = "/data" if persistent_storage else ""
|
600 |
+
analysis_logger.setup([paper_details_output, analysis_output, analysis_feedback, analysis_comment], data_path + "flagged_analyses")
|
601 |
+
paper_match_logger.setup([abstract_input, paper_details_output, paper_feedback, paper_comment], data_path + "flagged_paper_matches")
|
602 |
+
|
603 |
+
# Show analysis feedback components when analysis is displayed
|
604 |
+
def show_analysis_feedback():
|
605 |
+
return {
|
606 |
+
analysis_feedback: gr.update(visible=True),
|
607 |
+
analysis_comment: gr.update(visible=True),
|
608 |
+
flag_analysis_btn: gr.update(visible=True)
|
609 |
+
}
|
610 |
+
|
611 |
+
# Show paper feedback when paper is selected
|
612 |
+
def show_paper_feedback():
|
613 |
+
return {
|
614 |
+
paper_feedback: gr.update(visible=True),
|
615 |
+
paper_comment: gr.update(visible=True),
|
616 |
+
flag_paper_btn: gr.update(visible=True)
|
617 |
+
}
|
618 |
|
619 |
# Display paper details when row is selected
|
620 |
def on_select(evt: gr.SelectData, papers, query):
|
|
|
661 |
lambda: gr.update(interactive=True), # Enable analyze button when paper selected
|
662 |
outputs=[analyze_btn],
|
663 |
api_name=False,
|
664 |
+
).then(
|
665 |
+
show_paper_feedback # Add feedback UI when paper selected
|
666 |
)
|
667 |
|
668 |
# Connect analyze button to run analysis
|
|
|
672 |
outputs=[analysis_output],
|
673 |
show_progress_on=[paper_details_output, analysis_output],
|
674 |
api_name=False,
|
675 |
+
).then(show_analysis_feedback)
|
676 |
+
|
677 |
+
# Add flagging handlers
|
678 |
+
flag_analysis_btn.click(
|
679 |
+
lambda *args: analysis_logger.flag(list(args)),
|
680 |
+
inputs=[paper_details_output, analysis_output, analysis_feedback, analysis_comment],
|
681 |
+
preprocess=False
|
682 |
+
)
|
683 |
+
|
684 |
+
flag_paper_btn.click(
|
685 |
+
lambda *args: paper_match_logger.flag(list(args)),
|
686 |
+
inputs=[abstract_input, paper_details_output, paper_feedback, paper_comment],
|
687 |
+
preprocess=False
|
688 |
)
|
689 |
|
690 |
return demo
|