Spaces:
Running
Running
File size: 3,710 Bytes
abdabaa 22ee398 abdabaa 22ee398 abdabaa 7fcb613 abdabaa 22ee398 abdabaa 22ee398 abdabaa 22ee398 abdabaa 22ee398 abdabaa 22ee398 abdabaa 22ee398 abdabaa 1d09a74 7fcb613 abdabaa 22ee398 abdabaa 7fcb613 abdabaa 7fcb613 abdabaa 7fcb613 abdabaa 7fcb613 abdabaa 7fcb613 abdabaa 22ee398 abdabaa 22ee398 abdabaa 7fcb613 22ee398 7fcb613 abdabaa 22ee398 |
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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
import subprocess
import warnings, os
warnings.filterwarnings("ignore")
os.environ["CURL_CA_BUNDLE"] = ""
from dotenv import load_dotenv
import gradio as gr
load_dotenv()
hf_token = os.environ["HF_TOKEN"]
SCRIPT_DOC_3GPP = "3gpp_tdoc_indexer.py"
SCRIPT_SPEC_3GPP = "3gpp_spec_indexer.py"
SCRIPT_BM25_3GPP = "3gpp_bm25_maker.py"
SCRIPT_SPEC_ETSI = "etsi_spec_indexer.py"
SCRIPT_BM25_ETSI = "etsi_bm25_maker.py"
def get_script_output(script_path, current_log=""):
accumulated_output = current_log
process = subprocess.Popen(
["python", script_path],
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
bufsize=1,
universal_newlines=True
)
for line in process.stdout:
accumulated_output += line
yield accumulated_output
process.stdout.close()
process.wait()
yield accumulated_output
def index_tdocs():
log_output = "⏳ Indexation en cours...\n"
yield gr.update(interactive=False), gr.update(interactive=False), gr.update(interactive=False), log_output
for log in get_script_output(SCRIPT_DOC_3GPP, log_output):
yield gr.update(interactive=False), gr.update(interactive=False), gr.update(interactive=False), log
log_output = log
log_output += "✅ Terminé.\n"
yield gr.update(interactive=True), gr.update(interactive=True), gr.update(interactive=True), log_output
def index_3gpp_specifications():
log_output = "⏳ Indexation en cours...\n"
yield gr.update(interactive=False), gr.update(interactive=False), gr.update(interactive=False), log_output
for log in get_script_output(SCRIPT_SPEC_3GPP, log_output):
yield gr.update(interactive=False), gr.update(interactive=False), gr.update(interactive=False), log
log_output = log
for log in get_script_output(SCRIPT_BM25_3GPP, log_output):
yield gr.update(interactive=False), gr.update(interactive=False), gr.update(interactive=False), log
log_output = log
log_output += "✅ Terminé.\n"
yield gr.update(interactive=True), gr.update(interactive=True), gr.update(interactive=True), log_output
def index_etsi_specifications():
log_output = "⏳ Indexation en cours...\n"
yield gr.update(interactive=False), gr.update(interactive=False), gr.update(interactive=False), log_output
for log in get_script_output(SCRIPT_SPEC_ETSI, log_output):
yield gr.update(interactive=False), gr.update(interactive=False), gr.update(interactive=False), log
log_output = log
for log in get_script_output(SCRIPT_BM25_ETSI, log_output):
yield gr.update(interactive=False), gr.update(interactive=False), gr.update(interactive=False), log
log_output = log
log_output += "✅ Terminé.\n"
yield gr.update(interactive=True), gr.update(interactive=True), gr.update(interactive=True), log_output
with gr.Blocks(theme=gr.themes.Soft()) as demo:
gr.Markdown("# 📄 3GPP Indexer Main Menu")
with gr.Row() as r1:
with gr.Column():
tdocs_btn = gr.Button("Re-index TDocs", variant="primary")
with gr.Column():
spec_btn_3gpp = gr.Button("Re-index 3GPP Specifications", variant="primary")
spec_btn_etsi = gr.Button("Re-index ETSI Specifications", variant="primary")
out = gr.Textbox(label="Output", lines=25, autoscroll=True, interactive=False)
tdocs_btn.click(index_tdocs, outputs=[tdocs_btn, spec_btn_3gpp, spec_btn_etsi, out])
spec_btn_3gpp.click(index_3gpp_specifications, outputs=[tdocs_btn, spec_btn_3gpp, spec_btn_etsi, out])
spec_btn_etsi.click(index_etsi_specifications, outputs=[tdocs_btn, spec_btn_3gpp, spec_btn_etsi, out])
demo.queue().launch() |