Spaces:
Running
on
Zero
Running
on
Zero
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
|