ABDALLAH31 commited on
Commit
95bf8db
·
verified ·
1 Parent(s): 7938ec8

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +51 -0
app.py ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import base64
3
+ import tempfile
4
+ from utils import extract_text_from_pdf, simple_clause_split
5
+ from model import classify_clauses
6
+ from report import generate_pdf
7
+ from salesforce_stub import send_to_salesforce
8
+
9
+ def analyze_contract(file):
10
+ with tempfile.NamedTemporaryFile(delete=False, suffix=".pdf") as tmp:
11
+ tmp.write(file.read())
12
+ tmp_path = tmp.name
13
+
14
+ text = extract_text_from_pdf(tmp_path)
15
+ clauses = simple_clause_split(text)
16
+ results = classify_clauses(clauses)
17
+
18
+ overall_score = sum(r['risk_score'] for r in results) / len(results) if results else 0
19
+
20
+ report_path = generate_pdf(results, overall_score)
21
+
22
+ highlight_output = ""
23
+ for r in results:
24
+ color = (
25
+ "red" if r['risk_level'] == "High" else
26
+ "orange" if r['risk_level'] == "Medium" else
27
+ "green"
28
+ )
29
+ highlight_output += f"<div style='color:{color}'><b>{r['risk_level']}</b>: {r['clause']}</div><br>"
30
+
31
+ send_to_salesforce({
32
+ "clauses": results,
33
+ "overall_score": overall_score
34
+ })
35
+
36
+ return f"Overall Risk Score: {overall_score:.2f}", highlight_output, report_path
37
+
38
+ iface = gr.Interface(
39
+ fn=analyze_contract,
40
+ inputs=gr.File(label="Upload Contract PDF"),
41
+ outputs=[
42
+ gr.Textbox(label="Overall Risk Score"),
43
+ gr.HTML(label="Clause Risk Highlight"),
44
+ gr.File(label="Download Risk Report (PDF)")
45
+ ],
46
+ title="📜 Contract Risk Heatmap Generator",
47
+ description="Upload a contract and get clause-level risk scores with heatmap-style highlights. Powered by Hugging Face Transformers."
48
+ )
49
+
50
+ if __name__ == "__main__":
51
+ iface.launch()