Ask_PDF / gradio_chatwithpdf.py
shayanSolSameed's picture
Update gradio_chatwithpdf.py
67d2ddc
Raw
History Blame Contribute Delete
1.27 kB
from openai import OpenAI
import gradio
import pdfplumber
import os
from io import BytesIO
def read_PDF_2(fileobj):
print("readPDF called")
pdf_text = ""
pdf_file = BytesIO(fileobj)
with pdfplumber.open(pdf_file) as pdf:
for page in pdf.pages:
pdf_text += page.extract_text()
return pdf_text
def askPDF(upload_PDF, prompt):
print("askPDF called")
client = OpenAI()
pdf_text = read_PDF_2(upload_PDF)
systemMessage = '"""' + pdf_text + '"""' + \
'\nAnswer all questions according to the text delimited in tripple quotes above'
completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": systemMessage},
{"role": "user", "content": prompt}
]
)
return (completion.choices[0].message).content
# gradio deployment
demo = gradio.Interface(fn=askPDF,
inputs=[gradio.File(type = "binary",file_types=['.pdf']), 'text'],
outputs="text",
title = "Ask questions from pdf",
description = "Limitations: it works for small files, breaks for long PDFs."
)
demo.launch()