import os import gradio as gr from model.controller import Controller import zipfile os.chdir("/home/user/app") os.system('wget -O processed_cases.csv "https://drive.usercontent.google.com/download?id=1jMuQtywo0mbj7ZHCCsyE8xurbSyVVCst&export=download&confirm=t&uuid=2f681c98-86f8-4159-9e03-673cdcbc7cb51"') os.system('wget -O chromadb_collection.zip "https://drive.usercontent.google.com/download?id=1gz5-gxSlySEtPTzL_VPQ9e8jxHFuL0ZJ&export=download&confirm=t&uuid=de946efb-47b3-435d-b432-3bd5c01c73fb"') with zipfile.ZipFile("chromadb_collection.zip", 'r') as zip_ref: zip_ref.extractall() os.system('mv content/chromadb_collections chromadb_collections') os.system('rm -r content') bot = Controller() # Define chatbot function def chatbot_interface(user_input, chat_id=2311): return bot.handle_message(chat_id, user_input) # Custom CSS to load and apply Vazir font custom_css = """ @font-face { font-family: 'Vazir'; src: url('https://cdn.jsdelivr.net/gh/rastikerdar/vazir-font/vf/Vazir.woff2') format('woff2'), url('https://cdn.jsdelivr.net/gh/rastikerdar/vazir-font/vf/Vazir.woff') format('woff'); } .gradio-container { background-color: #f9f9f9; } .chatbox, .inputbox { font-family: 'Vazir', sans-serif; font-size: 16px; } """ # Define Gradio interface with legal emojis and enhanced appearance with gr.Blocks(css=custom_css) as interface: # Introduction and Instructions with law-related emojis gr.Markdown("""

⚖️ RAG Law Chatbot ⚖️

Welcome to the legal chatbot! 👨‍⚖️👩‍⚖️
Ask any legal question, and our assistant will help you! 📜🏛️

""") with gr.Column(): # Replacing Box() with Column() chatbot = gr.Chatbot(label="🧑‍⚖️ Legal Chatbot Assistant 🧑‍⚖️", elem_classes=["chatbox"]).style(height=400) # Customize the input box and button area with emojis with gr.Row(): user_input = gr.Textbox(show_label=False, placeholder="Enter your law question here... ⚖️", elem_classes=["inputbox"]).style( container=True, border_color="#4a90e2", rounded=True, background_color="#f1f3f4", font_size="16px" ) send_button = gr.Button("📤 Send", variant="primary").style( padding="10px 20px", background_color="#4a90e2", color="white", rounded=True ) # Chat update function def chat_update(user_message, history): history = history or [] bot_reply = chatbot_interface(user_message) history.append((user_message, bot_reply)) return history, "" send_button.click(chat_update, [user_input, chatbot], [chatbot, user_input]) # Launch the Gradio interface with more appealing design and emojis interface.launch()