|
import json |
|
import os |
|
import requests |
|
|
|
import gradio as gr |
|
|
|
from autocards.autocards import Autocards |
|
|
|
AUTO = Autocards() |
|
|
|
def cardify(content, mode): |
|
global AUTO |
|
|
|
AUTO.clear_qa() |
|
if mode != "raw" and mode != "url": |
|
r = requests.get(content) |
|
if mode == "pdf": |
|
with open("temp.pdf", 'wb') as f: |
|
f.write(r.content) |
|
AUTO.consume_pdf(content) |
|
os.remove("temp.pdf") |
|
elif mode == "epub": |
|
with open("temp.epub", 'wb') as f: |
|
f.write(r.content) |
|
AUTO.consume_epub(content) |
|
os.remove("temp.epub") |
|
elif mode == "textfile": |
|
with open("temp.txt", 'w') as f: |
|
f.write(r.text) |
|
AUTO.consume_textfile(content) |
|
os.remove("temp.txt") |
|
else: |
|
if mode == "raw": |
|
AUTO.consume_var(content) |
|
elif mode == "url": |
|
AUTO.consume_web(content) |
|
|
|
AUTO.to_json("output.json", prefix="") |
|
with open("output_basic.json") as f: |
|
res = json.load(f) |
|
|
|
|
|
os.remove("output_basic.json") |
|
os.remove("output_cloze.json") |
|
|
|
return json.dumps(res) |
|
|
|
iface = gr.Interface( |
|
fn=cardify, |
|
inputs=["text", gr.inputs.Radio(["raw", "epub", "pdf", "textfile", "url"])], |
|
outputs="text" |
|
) |
|
iface.launch() |