Spaces:
Paused
Paused
Update app.py
Browse files
app.py
CHANGED
|
@@ -244,7 +244,7 @@ def send_to_model_impl(prompt, model_selection, hf_model_choice, hf_custom_model
|
|
| 244 |
with tempfile.NamedTemporaryFile(delete=False, mode='w', suffix='.txt') as f:
|
| 245 |
f.write(summary)
|
| 246 |
|
| 247 |
-
return summary,
|
| 248 |
except Exception as e:
|
| 249 |
error_msg = f"Error processing request: {str(e)}"
|
| 250 |
logging.error(error_msg)
|
|
@@ -456,7 +456,7 @@ with gr.Blocks(css="""
|
|
| 456 |
max_lines=50,
|
| 457 |
show_copy_button=True
|
| 458 |
)
|
| 459 |
-
download_full_text = gr.
|
| 460 |
|
| 461 |
# Tab 2: Snippet Selection
|
| 462 |
with gr.Tab("2️⃣ Snippet Selection"):
|
|
@@ -486,9 +486,8 @@ with gr.Blocks(css="""
|
|
| 486 |
)
|
| 487 |
|
| 488 |
with gr.Row():
|
| 489 |
-
|
| 490 |
-
|
| 491 |
-
download_snippet = gr.Button("📥 Download Selected Snippet")
|
| 492 |
|
| 493 |
# Tab 3: Model Processing
|
| 494 |
with gr.Tab("3️⃣ Model Processing"):
|
|
@@ -552,8 +551,7 @@ with gr.Blocks(css="""
|
|
| 552 |
)
|
| 553 |
|
| 554 |
with gr.Row():
|
| 555 |
-
|
| 556 |
-
download_summary = gr.Button("📥 Download Summary")
|
| 557 |
|
| 558 |
# Hidden components for file handling
|
| 559 |
download_files = gr.Files(label="📥 Downloads", visible=False)
|
|
@@ -675,7 +673,8 @@ with gr.Blocks(css="""
|
|
| 675 |
formatted_text,
|
| 676 |
snippets_list,
|
| 677 |
gr.update(choices=update_snippet_choices(snippets_list), value="Snippet 1 of " + str(len(snippets_list))),
|
| 678 |
-
|
|
|
|
| 679 |
)
|
| 680 |
|
| 681 |
except Exception as e:
|
|
@@ -690,29 +689,25 @@ with gr.Blocks(css="""
|
|
| 690 |
None
|
| 691 |
)
|
| 692 |
|
| 693 |
-
def handle_snippet_selection(choice, snippets_list):
|
| 694 |
-
"""Handle snippet selection and
|
| 695 |
if not snippets_list:
|
| 696 |
-
return
|
| 697 |
-
|
| 698 |
-
"", # generated_prompt
|
| 699 |
-
None # download_files
|
| 700 |
-
)
|
| 701 |
-
|
| 702 |
try:
|
| 703 |
idx = get_snippet_index(choice)
|
| 704 |
selected_snippet = snippets_list[idx]
|
| 705 |
-
|
| 706 |
-
# Create downloadable snippet
|
| 707 |
with tempfile.NamedTemporaryFile(delete=False, mode='w', suffix='.txt') as f:
|
| 708 |
f.write(selected_snippet)
|
| 709 |
-
|
|
|
|
| 710 |
return (
|
| 711 |
f"Selected snippet {idx + 1}",
|
| 712 |
selected_snippet,
|
| 713 |
-
|
| 714 |
)
|
| 715 |
-
|
| 716 |
except Exception as e:
|
| 717 |
error_msg = f"Error selecting snippet: {str(e)}"
|
| 718 |
logging.error(error_msg)
|
|
@@ -737,8 +732,10 @@ with gr.Blocks(css="""
|
|
| 737 |
# Save prompt for download
|
| 738 |
with tempfile.NamedTemporaryFile(delete=False, mode='w', suffix='.txt') as f:
|
| 739 |
f.write(prompt)
|
|
|
|
| 740 |
|
| 741 |
-
return "Prompt generated!", prompt,
|
|
|
|
| 742 |
except Exception as e:
|
| 743 |
logging.error(f"Error generating prompt: {e}")
|
| 744 |
return f"Error: {str(e)}", "", None
|
|
@@ -754,35 +751,20 @@ with gr.Blocks(css="""
|
|
| 754 |
process_button.click(
|
| 755 |
handle_pdf_process,
|
| 756 |
inputs=[pdf_input, format_type, context_size],
|
| 757 |
-
outputs=[
|
| 758 |
-
progress_status,
|
| 759 |
-
processed_text,
|
| 760 |
-
pdf_content,
|
| 761 |
-
snippets,
|
| 762 |
-
snippet_selector,
|
| 763 |
-
download_files
|
| 764 |
-
]
|
| 765 |
)
|
| 766 |
|
| 767 |
generate_prompt_btn.click(
|
| 768 |
handle_prompt_generation,
|
| 769 |
inputs=[generated_prompt, custom_prompt, snippet_selector, snippets],
|
| 770 |
-
outputs=[
|
| 771 |
-
progress_status,
|
| 772 |
-
generated_prompt,
|
| 773 |
-
download_files
|
| 774 |
-
]
|
| 775 |
)
|
| 776 |
|
| 777 |
# Snippet handling
|
| 778 |
snippet_selector.change(
|
| 779 |
handle_snippet_selection,
|
| 780 |
inputs=[snippet_selector, snippets],
|
| 781 |
-
outputs=[
|
| 782 |
-
progress_status,
|
| 783 |
-
generated_prompt,
|
| 784 |
-
download_files
|
| 785 |
-
]
|
| 786 |
)
|
| 787 |
|
| 788 |
# Model selection
|
|
@@ -809,18 +791,6 @@ with gr.Blocks(css="""
|
|
| 809 |
outputs=[context_size]
|
| 810 |
)
|
| 811 |
|
| 812 |
-
# Download handlers
|
| 813 |
-
copy_prompt_button.click(
|
| 814 |
-
fn=None,
|
| 815 |
-
_js=copy_text_js("generated_prompt"), # Use the helper function
|
| 816 |
-
outputs=progress_status
|
| 817 |
-
)
|
| 818 |
-
copy_summary_button.click(
|
| 819 |
-
fn=None,
|
| 820 |
-
_js=copy_text_js("summary_output"), # Use the helper function
|
| 821 |
-
outputs=progress_status
|
| 822 |
-
)
|
| 823 |
-
|
| 824 |
def download_file(content: str, prefix: str) -> List[str]:
|
| 825 |
if not content:
|
| 826 |
return []
|
|
@@ -854,10 +824,7 @@ with gr.Blocks(css="""
|
|
| 854 |
groq_api_key,
|
| 855 |
openai_api_key
|
| 856 |
],
|
| 857 |
-
outputs=[
|
| 858 |
-
summary_output,
|
| 859 |
-
download_files
|
| 860 |
-
]
|
| 861 |
)
|
| 862 |
|
| 863 |
groq_refresh_btn.click(
|
|
|
|
| 244 |
with tempfile.NamedTemporaryFile(delete=False, mode='w', suffix='.txt') as f:
|
| 245 |
f.write(summary)
|
| 246 |
|
| 247 |
+
return summary, download_file # Return the file for download_summary
|
| 248 |
except Exception as e:
|
| 249 |
error_msg = f"Error processing request: {str(e)}"
|
| 250 |
logging.error(error_msg)
|
|
|
|
| 456 |
max_lines=50,
|
| 457 |
show_copy_button=True
|
| 458 |
)
|
| 459 |
+
download_full_text = gr.File(label="📥 Download Full Text")
|
| 460 |
|
| 461 |
# Tab 2: Snippet Selection
|
| 462 |
with gr.Tab("2️⃣ Snippet Selection"):
|
|
|
|
| 486 |
)
|
| 487 |
|
| 488 |
with gr.Row():
|
| 489 |
+
download_prompt = gr.File(label="📥 Download Prompt")
|
| 490 |
+
download_snippet = gr.File(label="📥 Download Selected Snippet")
|
|
|
|
| 491 |
|
| 492 |
# Tab 3: Model Processing
|
| 493 |
with gr.Tab("3️⃣ Model Processing"):
|
|
|
|
| 551 |
)
|
| 552 |
|
| 553 |
with gr.Row():
|
| 554 |
+
download_summary = gr.File(label="📥 Download Summary")
|
|
|
|
| 555 |
|
| 556 |
# Hidden components for file handling
|
| 557 |
download_files = gr.Files(label="📥 Downloads", visible=False)
|
|
|
|
| 673 |
formatted_text,
|
| 674 |
snippets_list,
|
| 675 |
gr.update(choices=update_snippet_choices(snippets_list), value="Snippet 1 of " + str(len(snippets_list))),
|
| 676 |
+
download_file # Return the file for download_full_text
|
| 677 |
+
#[download_file]
|
| 678 |
)
|
| 679 |
|
| 680 |
except Exception as e:
|
|
|
|
| 689 |
None
|
| 690 |
)
|
| 691 |
|
| 692 |
+
def handle_snippet_selection(choice, snippets_list): # Add download_snippet output
|
| 693 |
+
"""Handle snippet selection, update prompt, and provide snippet download."""
|
| 694 |
if not snippets_list:
|
| 695 |
+
return "No snippets available.", "", None # Return None for download
|
| 696 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
| 697 |
try:
|
| 698 |
idx = get_snippet_index(choice)
|
| 699 |
selected_snippet = snippets_list[idx]
|
| 700 |
+
|
|
|
|
| 701 |
with tempfile.NamedTemporaryFile(delete=False, mode='w', suffix='.txt') as f:
|
| 702 |
f.write(selected_snippet)
|
| 703 |
+
snippet_download_file = f.name # Store the file path
|
| 704 |
+
|
| 705 |
return (
|
| 706 |
f"Selected snippet {idx + 1}",
|
| 707 |
selected_snippet,
|
| 708 |
+
snippet_download_file # Return file for download
|
| 709 |
)
|
| 710 |
+
|
| 711 |
except Exception as e:
|
| 712 |
error_msg = f"Error selecting snippet: {str(e)}"
|
| 713 |
logging.error(error_msg)
|
|
|
|
| 732 |
# Save prompt for download
|
| 733 |
with tempfile.NamedTemporaryFile(delete=False, mode='w', suffix='.txt') as f:
|
| 734 |
f.write(prompt)
|
| 735 |
+
download_file = f.name
|
| 736 |
|
| 737 |
+
return "Prompt generated!", prompt, download_file # Return the file for download_prompt
|
| 738 |
+
|
| 739 |
except Exception as e:
|
| 740 |
logging.error(f"Error generating prompt: {e}")
|
| 741 |
return f"Error: {str(e)}", "", None
|
|
|
|
| 751 |
process_button.click(
|
| 752 |
handle_pdf_process,
|
| 753 |
inputs=[pdf_input, format_type, context_size],
|
| 754 |
+
outputs=[progress_status, processed_text, pdf_content, snippets, snippet_selector, download_full_text]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 755 |
)
|
| 756 |
|
| 757 |
generate_prompt_btn.click(
|
| 758 |
handle_prompt_generation,
|
| 759 |
inputs=[generated_prompt, custom_prompt, snippet_selector, snippets],
|
| 760 |
+
outputs=[progress_status, generated_prompt, download_prompt]
|
|
|
|
|
|
|
|
|
|
|
|
|
| 761 |
)
|
| 762 |
|
| 763 |
# Snippet handling
|
| 764 |
snippet_selector.change(
|
| 765 |
handle_snippet_selection,
|
| 766 |
inputs=[snippet_selector, snippets],
|
| 767 |
+
outputs=[progress_status, generated_prompt, download_snippet] # Connect download_snippet
|
|
|
|
|
|
|
|
|
|
|
|
|
| 768 |
)
|
| 769 |
|
| 770 |
# Model selection
|
|
|
|
| 791 |
outputs=[context_size]
|
| 792 |
)
|
| 793 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 794 |
def download_file(content: str, prefix: str) -> List[str]:
|
| 795 |
if not content:
|
| 796 |
return []
|
|
|
|
| 824 |
groq_api_key,
|
| 825 |
openai_api_key
|
| 826 |
],
|
| 827 |
+
outputs=[summary_output, download_summary]
|
|
|
|
|
|
|
|
|
|
| 828 |
)
|
| 829 |
|
| 830 |
groq_refresh_btn.click(
|