ABDALLAH31's picture
Update app.py
5fc16ba verified
import gradio as gr
import requests
import os
API_URL = "https://api-inference.huggingface.co/models/nlpaueb/legal-bert-base-uncased"
API_KEY = os.getenv("Contract_Risk")
def analyze_contract(contract_text):
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
payload = {"inputs": contract_text}
try:
# Send the contract text to Hugging Face for analysis
response = requests.post(API_URL, headers=headers, json=payload, timeout=30)
response.raise_for_status()
result = response.json()
overall_risk_score = result.get('overall_score', 'No score available')
high_risk_clauses = result.get('high_risk_clauses', 'No high-risk clauses detected')
risk_map_url = result.get('risk_map_url', 'No risk map available')
return overall_risk_score, high_risk_clauses, risk_map_url
except requests.exceptions.ConnectionError as e:
print(f"Network Error: {e}")
return "Network Error: Unable to connect to Hugging Face API", "", ""
except requests.exceptions.RequestException as e:
print(f"Request Error: {e}")
return f"Request Error: {e}", "", ""
except Exception as e:
print(f"Unexpected error: {e}")
return f"Unexpected error: {e}", "", ""
def create_ui():
with gr.Blocks() as demo:
gr.Markdown("### Contract Risk Analyzer")
with gr.Row():
contract_input = gr.Textbox(label="Contract Text", placeholder="Paste contract text here", lines=10)
with gr.Row():
analyze_button = gr.Button("Analyze Contract")
with gr.Row():
risk_score_output = gr.Textbox(label="Overall Risk Score", interactive=False)
high_risk_clauses_output = gr.Textbox(label="High Risk Clauses", interactive=False)
risk_map_url_output = gr.Textbox(label="Risk Map URL", interactive=False)
analyze_button.click(fn=analyze_contract, inputs=contract_input, outputs=[risk_score_output, high_risk_clauses_output, risk_map_url_output])
demo.launch()
if __name__ == "__main__":
create_ui()