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! 📜🏛️

""") # Organize the chatbot area in a column for vertical stacking with gr.Column(): chatbot = gr.Chatbot(label="🧑‍⚖️ Legal Chatbot Assistant 🧑‍⚖️", height=400, elem_classes=["chatbox"]) # Use Row to align input and button horizontally with gr.Row(): user_input = gr.Textbox(show_label=False, placeholder="Enter your law question here... ⚖️", rounded=True, container=True) send_button = gr.Button("📤 Send", full_width=False, rounded=True) # Chat update function to append new messages to the chatbot def chat_update(user_message, history): history = history or [] bot_reply = chatbot_interface(user_message) history.append((user_message, bot_reply)) return history, "" # Connect the button click to the chat update function send_button.click(chat_update, [user_input, chatbot], [chatbot, user_input]) # Launch the Gradio interface with a public shareable link interface.launch()