Spaces:
Sleeping
Sleeping
import gradio as gr | |
import requests | |
import os | |
base_url = os.getenv("DWANI_AI_API_BASE_URL") | |
def summarize_pdf(pdf_file, page_number): | |
endpoint = "/summarize-pdf" | |
# Construct the full API URL | |
url = f"{base_url.rstrip('/')}{endpoint}" | |
headers = { | |
"accept": "application/json" | |
} | |
try: | |
# Prepare the multipart form data | |
files = { | |
"file": (pdf_file.name, open(pdf_file.name, "rb"), "application/pdf") | |
} | |
data = { | |
"page_number": str(page_number) | |
} | |
# Send POST request | |
response = requests.post(url, headers=headers, files=files, data=data) | |
# Check if request was successful | |
if response.status_code == 200: | |
result = response.json() | |
return { | |
"Original Text": result.get("original_text", "N/A"), | |
"Summary": result.get("summary", "N/A"), | |
"Processed Page": result.get("processed_page", "N/A") | |
} | |
else: | |
return f"Error: {response.status_code} - {response.text}" | |
except Exception as e: | |
return f"Error: {str(e)}" | |
# Define Gradio interface | |
with gr.Blocks() as demo: | |
gr.Markdown("# PDF Summarizer") | |
with gr.Row(): | |
pdf_input = gr.File(label="Upload PDF", file_types=[".pdf"]) | |
page_number = gr.Number(label="Page Number", value=1, minimum=1, precision=0) | |
submit_btn = gr.Button("Summarize") | |
output = gr.JSON(label="Response") | |
submit_btn.click( | |
fn=summarize_pdf, | |
inputs=[pdf_input, page_number], | |
outputs=output | |
) | |
# Launch the interface | |
demo.launch() |