PdfSumGPT / app.py
Qifan Zhang
add read web, text; update truncation
f89a7d8
import gradio as gr
from utils.chatgpt import ChatGPTAPI
from utils.read_pdf import read_pdf
from utils.read_web import read_web
from utils.truncate import truncate_string
def file2str(filepath: str) -> str:
if not filepath:
return ''
if filepath.endswith('.pdf'):
content_list = read_pdf(filepath)
text = '\n'.join(content_list)
elif filepath.endswith('.txt'):
with open(filepath, 'r') as f:
text = f.readlines()
else:
raise Exception('File type not supported')
text = truncate_string(text, max_length=1024)
return text
def process(api_key: str = '', prompt: str = '', file=None, url='') -> str:
chatgpt = ChatGPTAPI(api_key, max_input_length=1024)
file_text = file2str(file.name) if file else ''
web_txt = read_web(url)
web_txt = truncate_string(web_txt, max_length=1024)
content = prompt + '\n' + file_text + '\n' + web_txt
response = chatgpt(content)
return response
prompt_input = gr.components.Textbox(
value='用中文总结下面的文章',
lines=2,
type="text"
)
app = gr.Interface(
fn=process,
inputs=["text", prompt_input, "file", "text"],
outputs="text"
)
app.launch()