File size: 1,312 Bytes
5723ef4
 
af30c7d
5186608
 
 
5723ef4
 
 
 
 
 
 
 
 
 
 
 
 
c6d8421
5723ef4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr
import logging
from rag_core.business import build_index, rescan_index, answer_query, retriever, is_ready
import os
os.environ["SPACE_HOST"] = "https://vietcat-ragsample.hf.space"

logging.info("🎨 Khởi tạo Gradio UI...")

def handle_rebuild():
    if retriever.index is None:
        logging.info("⚙️ Chưa có index, gọi build_index()")
        build_index()
        return "✅ Đã tạo mới FAISS index."
    else:
        logging.info("♻️ Đã có index, gọi rescan_index()")
        result = rescan_index()
        return result["status"]

def handle_query(query):
    logging.info(f"📨 Người dùng gửi truy vấn: {query}")
    result = answer_query(query)
    return result.get("answer", result.get("error", "❌ Lỗi không xác định."))

with gr.Blocks(title="Luật Giao Thông RAG") as iface:
    gr.Markdown("## 📚 Trợ lý hỏi đáp văn bản luật")

    query_box = gr.Textbox(label="❓ Nhập câu hỏi", lines=2)
    answer_box = gr.Textbox(label="💬 Trả lời", lines=6)

    submit_btn = gr.Button("📤 Gửi câu hỏi")
    rebuild_btn = gr.Button("🔄 Rebuild Index")

    submit_btn.click(fn=handle_query, inputs=query_box, outputs=answer_box)
    rebuild_btn.click(fn=handle_rebuild, outputs=answer_box)

app_ui = iface