Rasha-83 commited on
Commit
3a9ef18
·
verified ·
1 Parent(s): 141a745

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -13
app.py CHANGED
@@ -13,10 +13,10 @@ class ContractAnalyzer:
13
 
14
  # الكلمات المفتاحية القانونية
15
  self.legal_keywords = [
16
- "يلتزم", "يتعهد", "يحق", "لا يحق", "شرط جزائي",
17
  "فسخ العقد", "إنهاء", "تعويض", "غرامة", "مدة العقد",
18
  "طرف أول", "طرف ثاني", "قيمة العقد", "التزامات", "سداد",
19
- "دفعات", "ضمان", "مخالفة", "إخلال", "قوة قاهرة"
20
  ]
21
 
22
  # قالب التحليل (Prompt)
@@ -28,23 +28,20 @@ class ContractAnalyzer:
28
  - الأطراف المتعاقدة: {parties}
29
  - موضوع العقد: {subject}
30
 
31
- 2. تحليل البنود الرئيسية:
32
- {clauses_analysis}
33
-
34
- 3. الالتزامات:
35
  أ. التزامات الطرف الأول:
36
  {party1_obligations}
37
 
38
  ب. التزامات الطرف الثاني:
39
  {party2_obligations}
40
 
41
- 4. المخاطر المحتملة:
42
  {risks}
43
 
44
- 5. العناصر المفقودة أو غير الواضحة:
45
  {missing_elements}
46
 
47
- 6. توصيات قانونية:
48
  {recommendations}
49
  """
50
 
@@ -69,7 +66,7 @@ class ContractAnalyzer:
69
  info["date"] = text[start_idx:end_idx].strip()
70
 
71
  # البحث عن الأطراف
72
- party_indicators = ["طرف أول", "طرف ثاني", "الطرف الأول", "الطرف الثاني"]
73
  for indicator in party_indicators:
74
  if indicator in text:
75
  start_idx = text.find(indicator)
@@ -116,9 +113,9 @@ class ContractAnalyzer:
116
  })
117
 
118
  # تحليل الالتزامات
119
- if "طرف أول" in sentence or "الطرف الأول" in sentence:
120
  results["party1_obligations"].append(sentence.strip())
121
- elif "طرف ثاني" in sentence or "الطرف الثاني" in sentence:
122
  results["party2_obligations"].append(sentence.strip())
123
 
124
  # تحليل المخاطر
@@ -141,7 +138,7 @@ class ContractAnalyzer:
141
  date=contract_info["date"],
142
  parties="\n".join(contract_info["parties"]) or "غير محدد",
143
  subject=contract_info["subject"],
144
- clauses_analysis="\n".join([f"• {clause['keyword']}: {clause['text']}" for clause in results["important_clauses"]]),
145
  party1_obligations="\n".join([f"• {ob}" for ob in results["party1_obligations"]]) or "غير محدد",
146
  party2_obligations="\n".join([f"• {ob}" for ob in results["party2_obligations"]]) or "غير محدد",
147
  risks="\n".join([f"• {risk}" for risk in results["risks"]]) or "لا توجد مخاطر واضحة",
 
13
 
14
  # الكلمات المفتاحية القانونية
15
  self.legal_keywords = [
16
+ "يلتزم", "الزام" , "يتعهد", "يحق", "لا يحق", "شرط جزائي",
17
  "فسخ العقد", "إنهاء", "تعويض", "غرامة", "مدة العقد",
18
  "طرف أول", "طرف ثاني", "قيمة العقد", "التزامات", "سداد",
19
+ "دفعات", "ينكل ", "ضمان", "مخالفة", "إخلال", "قوة قاهرة"
20
  ]
21
 
22
  # قالب التحليل (Prompt)
 
28
  - الأطراف المتعاقدة: {parties}
29
  - موضوع العقد: {subject}
30
 
31
+ 2. الالتزامات:
 
 
 
32
  أ. التزامات الطرف الأول:
33
  {party1_obligations}
34
 
35
  ب. التزامات الطرف الثاني:
36
  {party2_obligations}
37
 
38
+ 3. المخاطر المحتملة:
39
  {risks}
40
 
41
+ 4. العناصر المفقودة أو غير الواضحة:
42
  {missing_elements}
43
 
44
+ 5. توصيات قانونية:
45
  {recommendations}
46
  """
47
 
 
66
  info["date"] = text[start_idx:end_idx].strip()
67
 
68
  # البحث عن الأطراف
69
+ party_indicators = ["طرف أول", "طرف ثاني", "الطرف الأول", "الطرف الثاني", "الفريق الأول", "الفريق الثاني"]
70
  for indicator in party_indicators:
71
  if indicator in text:
72
  start_idx = text.find(indicator)
 
113
  })
114
 
115
  # تحليل الالتزامات
116
+ if "طرف أول" in sentence or "الطرف الأول" in sentence or "الفريق الأول" in sentence :
117
  results["party1_obligations"].append(sentence.strip())
118
+ elif "طرف ثاني" in sentence or "الطرف الثاني" in sentence or "الفريق الثاني" in sentence :
119
  results["party2_obligations"].append(sentence.strip())
120
 
121
  # تحليل المخاطر
 
138
  date=contract_info["date"],
139
  parties="\n".join(contract_info["parties"]) or "غير محدد",
140
  subject=contract_info["subject"],
141
+
142
  party1_obligations="\n".join([f"• {ob}" for ob in results["party1_obligations"]]) or "غير محدد",
143
  party2_obligations="\n".join([f"• {ob}" for ob in results["party2_obligations"]]) or "غير محدد",
144
  risks="\n".join([f"• {risk}" for risk in results["risks"]]) or "لا توجد مخاطر واضحة",