Spaces:
Build error
Build error
| import os | |
| import gradio as gr | |
| import main | |
| import shutil | |
| def predict_from_pdf(pdf_file): | |
| # Create a temporary directory for file uploads | |
| upload_dir = "./catalogue/" | |
| os.makedirs(upload_dir, exist_ok=True) | |
| # Use the provided file path from Gradio's file object | |
| dest_file_path = os.path.join(upload_dir, os.path.basename(pdf_file.name)) | |
| try: | |
| # Save the uploaded file using shutil.copy | |
| shutil.copy(pdf_file, dest_file_path) | |
| # Check if the file was saved successfully | |
| if not os.path.exists(dest_file_path): | |
| return None, f"Error: The file {dest_file_path} could not be found or opened." | |
| # Process the PDF and retrieve the product info | |
| df, response = main.process_pdf_catalog(dest_file_path) | |
| return df, response | |
| except Exception as e: | |
| return None, f"Error processing PDF: {str(e)}" | |
| # Define example PDFs | |
| pdf_examples = [ | |
| ["catalogue/flexpocket.pdf"], | |
| ["catalogue/ASICS_Catalog.pdf"], | |
| ] | |
| demo = gr.Interface( | |
| fn=predict_from_pdf, | |
| inputs=gr.File(label="Upload PDF Catalog"), | |
| outputs=["json", "text"], | |
| examples=pdf_examples, | |
| title="Open Source PDF Catalog Parser", | |
| description="Efficient PDF catalog processing using fitz and OpenLLM", | |
| article="Uses PyMuPDF for layout analysis and Llama-CPP for structured extraction" | |
| ) | |
| if __name__ == "__main__": | |
| demo.queue().launch(server_name="0.0.0.0", server_port=7860, share=True) | |