michaelmc1618's picture
Update app.py
d66475a verified
import os
os.system('pip install transformers')
os.system('pip install gradio')
os.system('pip install requests')
import requests
import gradio as gr
from huggingface_hub import InferenceClient
from transformers import pipeline
# Inference client for chat completion
client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
# Different pipelines for different tasks
qa_pipeline = pipeline("question-answering", model="deepset/roberta-base-squad2")
def respond(message, system_message, max_tokens, temperature, top_p):
messages = [{"role": "system", "content": system_message}]
messages.append({"role": "user", "content": message})
response = ""
for message in client.chat_completion(
messages,
max_tokens=max_tokens,
stream=True,
temperature=temperature,
top_p=top_p,
):
token = message.choices[0].delta.content
if token is not None:
response += token
return response
def generate_defense_argument(case_details):
system_message = (
"You are an expert Defense Attorney. Provide the best and most detailed arguments "
"to defend the case based on the given case details. Include thorough analysis, "
"evidence presentation, and any relevant legal precedents."
)
arguments = respond(case_details, system_message, max_tokens=1024, temperature=0.7, top_p=0.95)
return arguments
# Custom CSS for a clean layout
custom_css = """
body {
background-color: #ffffff;
color: #000000;
font-family: Arial, sans-serif;
}
.gradio-container {
max-width: 1000px;
margin: 0 auto;
padding: 20px;
background-color: #ffffff;
border: 1px solid #e0e0e0;
border-radius: 8px;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
.gr-button {
background-color: #ffffff !important;
border-color: #ffffff !important;
color: #000000 !important;
margin: 5px;
}
.gr-button:hover {
background-color: #ffffff !important;
border-color: #004085 !important;
}
.gr-input, .gr-textbox, .gr-slider, .gr-markdown, .gr-chatbox {
border-radius: 4px;
border: 1px solid #ced4da;
background-color: #ffffff !important;
color: #000000 !important;
}
.gr-input:focus, .gr-textbox:focus, .gr-slider:focus {
border-color: #ffffff;
outline: 0;
box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 1.0);
}
#flagging-button {
display: none;
}
footer {
display: none;
}
.chatbox .chat-container .chat-message {
background-color: #ffffff !important;
color: #000000 !important;
}
.chatbox .chat-container .chat-message-input {
background-color: #ffffff !important;
color: #000000 !important;
}
.gr-markdown {
background-color: #ffffff !important;
color: #000000 !important;
}
.gr-markdown h1, .gr-markdown h2, .gr-markdown h3, .gr-markdown h4, .gr-markdown h5, .gr-markdown h6, .gr-markdown p, .gr-markdown ul, .gr-markdown ol, .gr-markdown li {
color: #000000 !important;
}
.score-box {
width: 60px;
height: 60px;
display: flex;
align-items: center
}
"""
# Gradio Interface
with gr.Blocks(css=custom_css) as demo:
with gr.Column():
gr.Markdown("# Defense Expert\n### Provide Case Details")
case_details = gr.Textbox(lines=5, placeholder="Enter case details here...")
defense_argument = gr.Textbox(lines=10, placeholder="Defense's Argument...")
generate_btn = gr.Button("Generate Argument")
generate_btn.click(generate_defense_argument, inputs=[case_details], outputs=[defense_argument])
clear_btn = gr.Button("Clear")
clear_btn.click(lambda: "", None, defense_argument)
demo.launch()