sachin
add-summary
8b00b05
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()