Spaces:
Running
Running
<html dir="rtl" lang="ar"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>المنصة القانونية المتكاملة</title> | |
<link href="https://cdnjs.cloudflare.com/ajax/libs/tailwindcss/2.2.19/tailwind.min.css" rel="stylesheet"> | |
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet"> | |
<style> | |
@import url('https://fonts.googleapis.com/css2?family=Tajawal:wght@400;500;700&display=swap'); | |
body { | |
font-family: 'Tajawal', sans-serif; | |
background-color: #f8f9fc; | |
} | |
.premium-gradient { | |
background: linear-gradient(135deg, #1a365d 0%, #2d3748 100%); | |
} | |
.gold-accent { | |
color: #d4af37; | |
} | |
.feature-card { | |
transition: all 0.3s ease; | |
border: 1px solid rgba(229, 231, 235, 0.5); | |
} | |
.feature-card:hover { | |
transform: translateY(-5px); | |
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); | |
border-color: #d4af37; | |
} | |
.premium-button { | |
background: linear-gradient(135deg, #d4af37 0%, #f0c75e 100%); | |
transition: all 0.3s ease; | |
} | |
.premium-button:hover { | |
transform: translateY(-2px); | |
box-shadow: 0 5px 15px rgba(212, 175, 55, 0.3); | |
} | |
.custom-scroll::-webkit-scrollbar { | |
width: 8px; | |
} | |
.custom-scroll::-webkit-scrollbar-track { | |
background: #f1f1f1; | |
} | |
.custom-scroll::-webkit-scrollbar-thumb { | |
background: #d4af37; | |
border-radius: 4px; | |
} | |
#searchResults { | |
max-height: 400px; | |
overflow-y: auto; | |
} | |
.logo-img { | |
max-height: 60px; | |
width: auto; | |
} | |
</style> | |
</head> | |
<body> | |
<!-- الهيدر --> | |
<header class="premium-gradient text-white"> | |
<div class="container mx-auto px-4 py-6"> | |
<nav class="flex justify-between items-center"> | |
<div class="flex items-center gap-2"> | |
<img src="https://ufastpro.com/wp-content/uploads/2025/01/تصميم_بدون_عنوان__5_-removebg-preview.png" alt="شعار المنصة" class="logo-img"> | |
<div> | |
<h1 class="text-2xl font-bold">المنصة القانونية المتكاملة</h1> | |
<p class="text-sm text-gray-300">العدالة والقانون في خدمتكم</p> | |
</div> | |
</div> | |
<div class="flex gap-4 items-center"> | |
<a href="https://joermd-test22.static.hf.space/index.html" class="px-4 py-2 hover:text-gold-accent transition-colors">اتكلم مع سبيدي</a> | |
<button onclick="showLegalChat()" class="premium-button text-gray-900 px-6 py-2 rounded-lg font-bold"> | |
اسأل سؤال قانوني | |
</button> | |
</div> | |
</nav> | |
</div> | |
</header> | |
<main class="container mx-auto px-4 py-12"> | |
<!-- قسم البحث الرئيسي --> | |
<div class="bg-white rounded-2xl shadow-xl p-8 mb-12 border-t-4 border-[#d4af37]"> | |
<div class="max-w-3xl mx-auto"> | |
<h2 class="text-3xl font-bold text-center mb-8 text-gray-800">البحث في التشريعات والأحكام القضائية</h2> | |
<div class="flex gap-4"> | |
<div class="flex-grow relative"> | |
<i class="fas fa-search absolute right-4 top-4 text-gray-400"></i> | |
<input type="text" | |
id="searchInput" | |
class="w-full p-3 pr-12 border-2 border-gray-200 rounded-xl focus:border-[#d4af37] focus:ring-2 focus:ring-[#d4af37] focus:ring-opacity-50 outline-none transition-all" | |
placeholder="ابحث في القوانين، الأحكام، والمواد القانونية..."> | |
</div> | |
<button onclick="handleSearch()" class="premium-button px-8 py-3 rounded-xl font-bold flex items-center gap-2"> | |
<i class="fas fa-search"></i> | |
بحث | |
</button> | |
</div> | |
<div id="searchResults" class="mt-4 custom-scroll"></div> | |
</div> | |
</div> | |
<!-- الخدمات الرئيسية --> | |
<div class="grid md:grid-cols-2 lg:grid-cols-3 gap-8 mb-12"> | |
<!-- تحليل القضايا --> | |
<div class="feature-card bg-white rounded-2xl p-8 hover:shadow-xl"> | |
<div class="flex items-center gap-4 mb-6"> | |
<div class="w-12 h-12 rounded-full premium-gradient flex items-center justify-center"> | |
<i class="fas fa-gavel gold-accent text-xl"></i> | |
</div> | |
<h3 class="text-xl font-bold">تحليل القضايا</h3> | |
</div> | |
<p class="text-gray-600 mb-6">تحليل متقدم للقضايا باستخدام أحدث التقنيات والذكاء الاصطناعي مع مراعاة القوانين المصرية</p> | |
<button onclick="showCaseAnalysis()" class="w-full bg-gray-100 text-gray-800 py-3 rounded-xl hover:bg-gray-200 transition-colors font-bold"> | |
تحليل قضية جديدة | |
</button> | |
</div> | |
<!-- اسأل الموضوع --> | |
<div class="feature-card bg-white rounded-2xl p-8 hover:shadow-xl"> | |
<div class="flex items-center gap-4 mb-6"> | |
<div class="w-12 h-12 rounded-full premium-gradient flex items-center justify-center"> | |
<i class="fas fa-comments gold-accent text-xl"></i> | |
</div> | |
<h3 class="text-xl font-bold">اسأل الموضوع</h3> | |
</div> | |
<p class="text-gray-600 mb-6">اطرح سؤالك حول أي موضوع قانوني وسنقوم بتحليله والإجابة عليه بدقة</p> | |
<button onclick="showAskTopic()" class="w-full bg-gray-100 text-gray-800 py-3 rounded-xl hover:bg-gray-200 transition-colors font-bold"> | |
اطرح سؤالك | |
</button> | |
</div> | |
<a href="okod.html" class="feature-card bg-white rounded-2xl p-8 hover:shadow-xl block"> | |
<div class="flex items-center gap-4 mb-6"> | |
<div class="w-12 h-12 rounded-full premium-gradient flex items-center justify-center"> | |
<i class="fas fa-file-contract gold-accent text-xl"></i> | |
</div> | |
<h3 class="text-xl font-bold">كتابة العقود والوثائق بالذكاء الاصطناعي</h3> | |
</div> | |
<p class="text-gray-600 mb-6">كتابة العقود والمواثيق والاوراق الهامة اصبح سهل الان مع سبيدي</p> | |
<div class="w-full bg-gray-100 text-gray-800 py-3 rounded-xl hover:bg-gray-200 transition-colors font-bold text-center cursor-pointer"> | |
خلي سبيدي يكتبلك وثيقتك او عقدك | |
</div> | |
</a> | |
<!-- الأدوات القانونية --> | |
<h2 class="text-2xl font-bold mb-6 text-gray-800">الأدوات القانونية المتخصصة</h2> | |
<div class="grid md:grid-cols-2 lg:grid-cols-4 gap-6"> | |
<div class="feature-card bg-white p-6 rounded-xl"> | |
<div class="flex items-center gap-3"> | |
<div class="w-10 h-10 rounded-lg premium-gradient flex items-center justify-center"> | |
<i class="fas fa-calendar gold-accent"></i> | |
</div> | |
<span class="font-bold">(لم يعمل بعد)إدارة الجلسات</span> | |
</div> | |
</div> | |
<div class="feature-card bg-white p-6 rounded-xl"> | |
<div class="flex items-center gap-3"> | |
<div class="w-10 h-10 rounded-lg premium-gradient flex items-center justify-center"> | |
<i class="fas fa-book gold-accent"></i> | |
</div> | |
<span class="font-bold">(لم يعمل بعد)المكتبة القانونية</span> | |
</div> | |
</div> | |
<div class="feature-card bg-white p-6 rounded-xl"> | |
<div class="flex items-center gap-3"> | |
<div class="w-10 h-10 rounded-lg premium-gradient flex items-center justify-center"> | |
<i class="fas fa-calculator gold-accent"></i> | |
</div> | |
<span class="font-bold">(لم يعمل بعد)حاسبة الأتعاب</span> | |
</div> | |
</div> | |
<div class="feature-card bg-white p-6 rounded-xl"> | |
<div class="flex items-center gap-3"> | |
<div class="w-10 h-10 rounded-lg premium-gradient flex items-center justify-center"> | |
<i class="fas fa-file-signature gold-accent"></i> | |
</div> | |
<span class="font-bold">(لم يعمل بعد)نماذج قانونية</span> | |
</div> | |
</div> | |
</div> | |
</main> | |
<!-- نافذة الدردشة القانونية --> | |
<div id="legalChatModal" class="hidden fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50"> | |
<div class="bg-white rounded-2xl p-8 w-full max-w-2xl mx-4"> | |
<div class="flex justify-between items-center mb-6"> | |
<h3 class="text-2xl font-bold text-gray-800">اسأل سؤال قانوني</h3> | |
<button onclick="hideLegalChat()" class="text-gray-500 hover:text-gray-700"> | |
<i class="fas fa-times text-xl"></i> | |
</button> | |
</div> | |
<div class="h-96 overflow-y-auto mb-4 p-4 border-2 rounded-xl custom-scroll" id="chatMessages"> | |
<!-- الرسائل ستظهر هنا --> | |
</div> | |
<div class="flex gap-2"> | |
<input type="text" id="chatInput" class="flex-grow p-3 border-2 rounded-xl focus:border-[#d4af37] focus:ring-2 focus:ring-[#d4af37] focus:ring-opacity-50 outline-none" placeholder="اكتب سؤالك هنا..."> | |
<button onclick="sendMessage()" class="premium-button px-6 py-2 rounded-xl font-bold"> | |
إرسال | |
</button> | |
</div> | |
</div> | |
</div> | |
<!-- نافذة تحليل القضايا --> | |
<div id="caseAnalysisModal" class="hidden fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50"> | |
<div class="bg-white rounded-2xl p-8 w-full max-w-2xl mx-4"> | |
<div class="flex justify-between items-center mb-6"> | |
<h3 class="text-2xl font-bold text-gray-800">تحليل قضية جديدة</h3> | |
<button onclick="hideCaseAnalysis()" class="text-gray-500 hover:text-gray-700"> | |
<i class="fas fa-times text-xl"></i> | |
</button> | |
</div> | |
<div class="modal-content"> | |
<textarea | |
class="w-full p-4 border-2 rounded-xl mb-6 h-48 focus:border-[#d4af37] focus:ring-2 focus:ring-[#d4af37] focus:ring-opacity-50 outline-none transition-all custom-scroll" | |
placeholder="اكتب تفاصيل القضية هنا..." | |
></textarea> | |
<div class="flex justify-end gap-4"> | |
<button onclick="hideCaseAnalysis()" class="px-6 py-3 border-2 rounded-xl hover:bg-gray-50 font-bold"> | |
إلغاء | |
</button> | |
<button onclick="handleCaseAnalysis()" class="premium-button px-6 py-3 rounded-xl font-bold"> | |
تحليل القضية | |
</button> | |
</div> | |
</div> | |
</div> | |
</div> | |
<!-- نافذة اسأل الموضوع --> | |
<div id="askTopicModal" class="hidden fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50"> | |
<div class="bg-white rounded-2xl p-8 w-full max-w-2xl mx-4 max-h-[90vh] overflow-y-auto"> | |
<div class="flex justify-between items-center mb-6"> | |
<h3 class="text-2xl font-bold text-gray-800">اسأل الموضوع</h3> | |
<button onclick="hideAskTopic()" class="text-gray-500 hover:text-gray-700"> | |
<i class="fas fa-times text-xl"></i> | |
</button> | |
</div> | |
<div class="modal-content space-y-6"> | |
<div> | |
<label class="block text-gray-700 font-bold mb-2">النص القانوني</label> | |
<textarea | |
id="legalText" | |
class="w-full p-4 border-2 rounded-xl h-48 focus:border-[#d4af37] focus:ring-2 focus:ring-[#d4af37] focus:ring-opacity-50 outline-none transition-all custom-scroll" | |
placeholder="أدخل النص القانوني هنا..." | |
></textarea> | |
</div> | |
<div> | |
<label class="block text-gray-700 font-bold mb-2">سؤالك حول النص</label> | |
<textarea | |
id="userQuestion" | |
class="w-full p-4 border-2 rounded-xl h-24 focus:border-[#d4af37] focus:ring-2 focus:ring-[#d4af37] focus:ring-opacity-50 outline-none transition-all custom-scroll" | |
placeholder="اكتب سؤالك هنا..." | |
></textarea> | |
</div> | |
<!-- قسم النتائج --> | |
<div id="askTopicResult" class="hidden mt-4 p-4 bg-gray-50 rounded-xl"></div> | |
<div class="flex justify-end gap-4"> | |
<button onclick="hideAskTopic()" class="px-6 py-3 border-2 rounded-xl hover:bg-gray-50 font-bold"> | |
إلغاء | |
</button> | |
<button onclick="handleAskTopic()" class="premium-button px-6 py-3 rounded-xl font-bold"> | |
إرسال السؤال | |
</button> | |
</div> | |
</div> | |
</div> | |
</div> | |
<script> | |
const API_URL = 'https://j8fp9mu44k547j-7777.proxy.runpod.net/proxy/9000/chat'; | |
const LEGAL_PROMPT = 'أريد منك أن تتصرف كمحامٍ خبير في القانون المصري. قم بتحليل الموضوعات القانونية التي سأطرحها عليك، مستندًا إلى القوانين المصرية الحديثة والمبادئ القانونية الراسخة. يجب أن تكون إجاباتك دقيقة ومحددة، وتقدم النصائح بناءً على القوانين واللوائح المصرية المعمول بها. إذا كان الموضوع يتطلب تفصيلاً قانونياً أكثر عمقًا، فأرجو أن تسألني عن المزيد من التفاصيل. الآن، إليك القضية التي أحتاج لتحليلها: '; | |
// دوال الدردشة القانونية | |
function showLegalChat() { | |
document.getElementById('legalChatModal').classList.remove('hidden'); | |
document.body.style.overflow = 'hidden'; | |
} | |
function hideLegalChat() { | |
document.getElementById('legalChatModal').classList.add('hidden'); | |
document.body.style.overflow = 'auto'; | |
} | |
async function sendMessage() { | |
const input = document.getElementById('chatInput'); | |
const messagesDiv = document.getElementById('chatMessages'); | |
const message = input.value.trim(); | |
if (!message) return; | |
// إضافة رسالة المستخدم | |
messagesDiv.innerHTML += ` | |
<div class="flex justify-end mb-4"> | |
<div class="bg-blue-100 rounded-lg p-3 max-w-[80%]"> | |
${message} | |
</div> | |
</div> | |
`; | |
input.value = ''; | |
messagesDiv.scrollTop = messagesDiv.scrollHeight; | |
try { | |
const response = await fetch(API_URL, { | |
method: 'POST', | |
headers: { | |
'Content-Type': 'application/json' | |
}, | |
body: JSON.stringify({ message }) | |
}); | |
if (!response.ok) throw new Error('Network response was not ok'); | |
const data = await response.json(); | |
// إضافة رد النظام | |
messagesDiv.innerHTML += ` | |
<div class="flex justify-start mb-4"> | |
<div class="bg-gray-100 rounded-lg p-3 max-w-[80%]"> | |
${data.response} | |
</div> | |
</div> | |
`; | |
messagesDiv.scrollTop = messagesDiv.scrollHeight; | |
} catch (error) { | |
console.error('Error:', error); | |
messagesDiv.innerHTML += ` | |
<div class="flex justify-start mb-4"> | |
<div class="bg-red-100 rounded-lg p-3 max-w-[80%]"> | |
عذراً، حدث خطأ في معالجة طلبك. يرجى المحاولة مرة أخرى. | |
</div> | |
</div> | |
`; | |
} | |
} | |
// دالة البحث | |
async function searchLegal(query) { | |
try { | |
const response = await fetch(API_URL, { | |
method: 'POST', | |
headers: { | |
'Content-Type': 'application/json' | |
}, | |
body: JSON.stringify({ | |
message: "ابحث: " + query | |
}) | |
}); | |
if (!response.ok) { | |
throw new Error(`HTTP error! status: ${response.status}`); | |
} | |
const data = await response.json(); | |
return data.response; | |
} catch (error) { | |
console.error('Error:', error); | |
return 'حدث خطأ في عملية البحث. الرجاء المحاولة مرة أخرى.'; | |
} | |
} | |
// معالجة البحث | |
async function handleSearch() { | |
const searchInput = document.getElementById('searchInput'); | |
const searchResults = document.getElementById('searchResults'); | |
const query = searchInput.value; | |
if (!query.trim()) { | |
alert('الرجاء إدخال نص للبحث'); | |
return; | |
} | |
searchResults.innerHTML = '<div class="text-center p-4">جاري البحث...</div>'; | |
const result = await searchLegal(query); | |
searchResults.innerHTML = `<div class="bg-white p-4 rounded-xl mt-4">${result}</div>`; | |
} | |
// تحليل القضايا | |
async function analyzeLegalCase(caseDetails) { | |
try { | |
const response = await fetch(API_URL, { | |
method: 'POST', | |
headers: { | |
'Content-Type': 'application/json' | |
}, | |
body: JSON.stringify({ | |
message: LEGAL_PROMPT + caseDetails | |
}) | |
}); | |
if (!response.ok) { | |
throw new Error(`HTTP error! status: ${response.status}`); | |
} | |
const data = await response.json(); | |
return data.response; | |
} catch (error) { | |
console.error('Error:', error); | |
return 'حدث خطأ في تحليل القضية. الرجاء المحاولة مرة أخرى.'; | |
} | |
} | |
// معالجة تحليل القضية | |
async function handleCaseAnalysis() { | |
const caseText = document.querySelector('#caseAnalysisModal textarea').value; | |
if (!caseText.trim()) { | |
alert('الرجاء إدخال تفاصيل القضية'); | |
return; | |
} | |
const analysisButton = document.querySelector('#caseAnalysisModal .premium-button'); | |
const originalButtonText = analysisButton.innerHTML; | |
analysisButton.innerHTML = 'جاري التحليل...'; | |
analysisButton.disabled = true; | |
const result = await analyzeLegalCase(caseText); | |
const resultsDiv = document.createElement('div'); | |
resultsDiv.className = 'mt-4 p-4 bg-gray-50 rounded-xl'; | |
resultsDiv.innerHTML = result; | |
const oldResults = document.querySelector('#caseAnalysisModal .analysis-results'); | |
if (oldResults) { | |
oldResults.remove(); | |
} | |
resultsDiv.classList.add('analysis-results'); | |
document.querySelector('#caseAnalysisModal .modal-content').appendChild(resultsDiv); | |
analysisButton.innerHTML = originalButtonText; | |
analysisButton.disabled = false; | |
} | |
// معالجة اسأل الموضوع | |
async function handleAskTopic() { | |
const legalText = document.getElementById('legalText').value; | |
const userQuestion = document.getElementById('userQuestion').value; | |
const resultDiv = document.getElementById('askTopicResult'); | |
if (!legalText.trim() || !userQuestion.trim()) { | |
alert('الرجاء إدخال النص القانوني والسؤال'); | |
return; | |
} | |
const submitButton = document.querySelector('#askTopicModal .premium-button'); | |
const originalButtonText = submitButton.innerHTML; | |
submitButton.innerHTML = 'جاري المعالجة...'; | |
submitButton.disabled = true; | |
try { | |
const response = await fetch(API_URL, { | |
method: 'POST', | |
headers: { | |
'Content-Type': 'application/json' | |
}, | |
body: JSON.stringify({ | |
message: `النص القانوني: ${legalText}\n\nالسؤال: ${userQuestion}` | |
}) | |
}); | |
if (!response.ok) { | |
throw new Error(`HTTP error! status: ${response.status}`); | |
} | |
const data = await response.json(); | |
resultDiv.innerHTML = data.response; | |
resultDiv.classList.remove('hidden'); | |
} catch (error) { | |
console.error('Error:', error); | |
resultDiv.innerHTML = 'حدث خطأ في معالجة السؤال. الرجاء المحاولة مرة أخرى.'; | |
resultDiv.classList.remove('hidden'); | |
} finally { | |
submitButton.innerHTML = originalButtonText; | |
submitButton.disabled = false; | |
} | |
} | |
// معالجة رفع الملفات | |
function handleFileUpload(event) { | |
const file = event.target.files[0]; | |
if (file) { | |
const formData = new FormData(); | |
formData.append('file', file); | |
fetch(API_URL, { | |
method: 'POST', | |
body: formData | |
}) | |
.then(response => { | |
if (!response.ok) { | |
throw new Error(`HTTP error! status: ${response.status}`); | |
} | |
return response.json(); | |
}) | |
.then(data => { | |
alert('تم تحليل المستند بنجاح'); | |
}) | |
.catch(error => { | |
console.error('Error:', error); | |
alert('حدث خطأ أثناء تحليل المستند'); | |
}); | |
} | |
} | |
// دوال إظهار وإخفاء النوافذ المنبثقة | |
function showCaseAnalysis() { | |
document.getElementById('caseAnalysisModal').classList.remove('hidden'); | |
document.body.style.overflow = 'hidden'; | |
} | |
function hideCaseAnalysis() { | |
document.getElementById('caseAnalysisModal').classList.add('hidden'); | |
document.body.style.overflow = 'auto'; | |
document.querySelector('#caseAnalysisModal textarea').value = ''; | |
const oldResults = document.querySelector('#caseAnalysisModal .analysis-results'); | |
if (oldResults) { | |
oldResults.remove(); | |
} | |
} | |
function showAskTopic() { | |
document.getElementById('askTopicModal').classList.remove('hidden'); | |
document.body.style.overflow = 'hidden'; | |
} | |
function hideAskTopic() { | |
const modal = document.getElementById('askTopicModal'); | |
const resultDiv = document.getElementById('askTopicResult'); | |
modal.classList.add('hidden'); | |
document.body.style.overflow = 'auto'; | |
document.getElementById('legalText').value = ''; | |
document.getElementById('userQuestion').value = ''; | |
resultDiv.innerHTML = ''; | |
resultDiv.classList.add('hidden'); | |
} | |
// إضافة مستمعي الأحداث | |
document.getElementById('searchInput').addEventListener('keypress', function(e) { | |
if (e.key === 'Enter') { | |
handleSearch(); | |
} | |
}); | |
document.getElementById('chatInput')?.addEventListener('keypress', function(e) { | |
if (e.key === 'Enter') { | |
sendMessage(); | |
} | |
}); | |
// إغلاق النوافذ المنبثقة عند النقر خارجها | |
window.onclick = function(event) { | |
const caseModal = document.getElementById('caseAnalysisModal'); | |
const askModal = document.getElementById('askTopicModal'); | |
const chatModal = document.getElementById('legalChatModal'); | |
if (event.target === caseModal) { | |
hideCaseAnalysis(); | |
} else if (event.target === askModal) { | |
hideAskTopic(); | |
} else if (event.target === chatModal) { | |
hideLegalChat(); | |
} | |
} | |
</script> | |
</body> | |
</html> |