Spaces:
Runtime error
Runtime error
File size: 3,008 Bytes
6fe80c5 163e91e 8d5e3ad 5a3afcf 6fe80c5 8d5e3ad 5a3afcf 8d5e3ad 8df9d74 5a3afcf 6fe80c5 163e91e 1b9921d 8df9d74 163e91e 8df9d74 b3a9df5 8df9d74 fa350e7 8df9d74 fa350e7 8df9d74 4c6b197 ed83b89 8df9d74 fa350e7 163e91e 1b9921d 30b8a78 1b9921d 163e91e fa350e7 163e91e 30b8a78 |
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 |
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()
def chatbot_interface(user_input, chat_id=2311):
return bot.handle_message(chat_id, user_input)
def validate_input(user_input):
if not user_input or user_input.strip() == "":
return False, "π« Please enter a valid legal question. It cannot be empty."
if len(user_input) < 5:
return False, "β οΈ Your question is too short. Please provide more details."
return True, None
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;
}
"""
with gr.Blocks(css=custom_css) as interface:
gr.Markdown("""
<div style="text-align: center; font-family: 'Vazir';">
<h1 style="color: #4a90e2;">βοΈ RAG Law Chatbot βοΈ</h1>
<p style="font-size: 18px; color: #333;">Welcome to the legal chatbot! π¨ββοΈπ©ββοΈ<br>Ask any legal question, and our assistant will help you! πποΈ</p>
</div>
""")
# 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... βοΈ", container=True)
send_button = gr.Button("π€ Send")
# Chat update function to append new messages to the chatbot
def chat_update(user_message, history):
history = history or []
is_valid, validation_message = validate_input(user_message)
if not is_valid:
history.append((user_message, validation_message))
return history, ""
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])
interface.launch()
|