Spaces:
Sleeping
Sleeping
File size: 2,054 Bytes
aa4225d 7736b92 615f98d 1dcd1cd b776c5f 615f98d b776c5f e835725 b776c5f 35c2661 b776c5f aa4225d ffab851 970a425 9f8e6cc 8341baf f5f74ce 9f8e6cc b776c5f 362dc0e b776c5f ffab851 615f98d def98d5 b776c5f 1dcd1cd b776c5f f5f74ce b776c5f 1dcd1cd ffab851 f5f74ce caf9c68 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
import os
import pip
import gradio as gr
from epub2txt import epub2txt
from websocket import create_connection
if not os.path.exists(os.getenv("checkpoint_path")):
os.system("git clone --recurse-submodules https://github.com/ztxz16/fastllm.git")
os.system("cd fastllm; mkdir build; cd build; cmake ..; make -j; cd tools; python setup.py install --user --prefix=")
os.system("wget https://huggingface.co/huangyuyang/chatglm2-6b-int4.flm/resolve/main/chatglm2-6b-int4.flm")
os.system("uvicorn api:app --reload")
class GUI:
def __init__(self, *args, **kwargs):
with gr.Blocks() as demo:
with gr.Row():
gr.Markdown(scale=2).attach_load_event(self.hello, None)
gr.LoginButton()
gr.LogoutButton()
out = gr.Markdown()
inp = gr.File(file_types=['.epub'])
inp.change(self.process, inp, out)
self.ws = None
self.out = []
demo.launch()
def process(self, file, profile: gr.OAuthProfile | None):
if profile is None:
return gr.update(value='Login to access the tool.')
h = ''
chapter_titles = epub2txt.content_titles
title = epub2txt.title
if self.ws is None:
self.ws = create_connection(f"ws://localhost/{file.name}/ws")
res = self.ws.recv()
if 'chsum: ' in res:
self.out.append(res.remove("chsum: "))
elif 'draft_sum: ' in res:
h = res[11:]
elif 'output: ' in res:
self.ws.close()
self.ws = None
self.out = []
return gr.update(value=res)
return gr.update(
value=f"# {title}\n\n" +h+ "\n\n".join(
[f"## {ct}\n\n{c}" for ct, c in zip(chapter_titles, self.out)]))
def hello(self, profile: gr.OAuthProfile | None):
if profile is None:
return '# ePub summarization tool\n\nLogin to access the tool.'
return f"# ePub summarization tool\n\nWelcome {profile.name}!!"
GUI() |