Spaces:
Running
Running
Update index.html
Browse files- index.html +87 -3
index.html
CHANGED
|
@@ -9,6 +9,8 @@
|
|
| 9 |
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet" />
|
| 10 |
<!-- ربط مكتبة jsPDF لتحويل النص إلى PDF -->
|
| 11 |
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
|
|
|
|
|
|
|
| 12 |
<style>
|
| 13 |
@import url("https://fonts.googleapis.com/css2?family=Tajawal:wght@400;500;700&display=swap");
|
| 14 |
|
|
@@ -243,6 +245,11 @@
|
|
| 243 |
<i class="fas fa-gavel ml-3"></i>
|
| 244 |
<span>الأحكام والسوابق</span>
|
| 245 |
</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 246 |
</nav>
|
| 247 |
</div>
|
| 248 |
</aside>
|
|
@@ -478,15 +485,42 @@
|
|
| 478 |
</div>
|
| 479 |
</div>
|
| 480 |
</section>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 481 |
</main>
|
| 482 |
|
| 483 |
<!-- سكربتات الموقع -->
|
| 484 |
<script>
|
| 485 |
-
// تعريف API الأساسي (نقطة /chat)
|
| 486 |
const API_URL = 'https://g2mgow5tgbxsjy-7777.proxy.runpod.net/proxy/8000/chat';
|
| 487 |
const UPLOAD_URL = 'https://g2mgow5tgbxsjy-7777.proxy.runpod.net/proxy/8000/upload';
|
|
|
|
| 488 |
|
| 489 |
-
// دالة الحصول على البادئة (prompt prefix)
|
| 490 |
function getPromptPrefix(section) {
|
| 491 |
switch(section) {
|
| 492 |
case 'analysis':
|
|
@@ -755,7 +789,57 @@
|
|
| 755 |
});
|
| 756 |
}
|
| 757 |
|
| 758 |
-
//
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 759 |
document.addEventListener("DOMContentLoaded", () => {
|
| 760 |
showSection("home");
|
| 761 |
});
|
|
|
|
| 9 |
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet" />
|
| 10 |
<!-- ربط مكتبة jsPDF لتحويل النص إلى PDF -->
|
| 11 |
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
|
| 12 |
+
<!-- (اختياري) ربط مكتبة PicoCSS لتنسيق قسم OCR -->
|
| 13 |
+
<link rel="stylesheet" href="https://unpkg.com/@picocss/pico@latest/css/pico.min.css">
|
| 14 |
<style>
|
| 15 |
@import url("https://fonts.googleapis.com/css2?family=Tajawal:wght@400;500;700&display=swap");
|
| 16 |
|
|
|
|
| 245 |
<i class="fas fa-gavel ml-3"></i>
|
| 246 |
<span>الأحكام والسوابق</span>
|
| 247 |
</a>
|
| 248 |
+
<!-- إضافة قسم OCR -->
|
| 249 |
+
<a href="#" class="nav-link" data-section="ocr">
|
| 250 |
+
<i class="fas fa-image ml-3"></i>
|
| 251 |
+
<span>OCR</span>
|
| 252 |
+
</a>
|
| 253 |
</nav>
|
| 254 |
</div>
|
| 255 |
</aside>
|
|
|
|
| 485 |
</div>
|
| 486 |
</div>
|
| 487 |
</section>
|
| 488 |
+
|
| 489 |
+
<!-- قسم OCR للتعرف على النص من الصورة -->
|
| 490 |
+
<section id="ocr" class="section hidden">
|
| 491 |
+
<h2 class="text-3xl font-bold text-gray-800 mb-8">OCR التعرف على النص</h2>
|
| 492 |
+
<div class="bg-white rounded p-6 shadow">
|
| 493 |
+
<article style="text-align: center;">
|
| 494 |
+
<h3>نموذج OCR</h3>
|
| 495 |
+
<p>هذه الواجهة تقوم بمعالجة الصورة وإجراء التعرف على النص.</p>
|
| 496 |
+
</article>
|
| 497 |
+
<label for="ocrFile">اختر صورة للرفع
|
| 498 |
+
<input type="file" id="ocrFile" name="file" accept="image/*">
|
| 499 |
+
</label>
|
| 500 |
+
<button id="ocrSubmit" class="action-button mt-4">معالجة الصورة</button>
|
| 501 |
+
<h4 id="ocrSpinner" style="text-align: center;" aria-busy="true" hidden>جاري المعالجة...</h4>
|
| 502 |
+
<section id="ocrParsed" hidden>
|
| 503 |
+
<label for="ocrText">💬 النص المعترف عليه:
|
| 504 |
+
<pre id="ocrText" style="padding: 10px;"></pre>
|
| 505 |
+
</label>
|
| 506 |
+
</section>
|
| 507 |
+
<section id="ocrRaw" hidden>
|
| 508 |
+
<label for="ocrRawResponse">💬 الاستجابة الخام:
|
| 509 |
+
<pre id="ocrRawResponse" style="padding: 10px;"></pre>
|
| 510 |
+
</label>
|
| 511 |
+
</section>
|
| 512 |
+
</div>
|
| 513 |
+
</section>
|
| 514 |
</main>
|
| 515 |
|
| 516 |
<!-- سكربتات الموقع -->
|
| 517 |
<script>
|
| 518 |
+
// تعريف API الأساسي (نقطة /chat) ومصادر أخرى
|
| 519 |
const API_URL = 'https://g2mgow5tgbxsjy-7777.proxy.runpod.net/proxy/8000/chat';
|
| 520 |
const UPLOAD_URL = 'https://g2mgow5tgbxsjy-7777.proxy.runpod.net/proxy/8000/upload';
|
| 521 |
+
const OCR_URL = 'https://g2mgow5tgbxsjy-7777.proxy.runpod.net/proxy/8000/ocr';
|
| 522 |
|
| 523 |
+
// دالة الحصول على البادئة (prompt prefix) لكل قسم
|
| 524 |
function getPromptPrefix(section) {
|
| 525 |
switch(section) {
|
| 526 |
case 'analysis':
|
|
|
|
| 789 |
});
|
| 790 |
}
|
| 791 |
|
| 792 |
+
// دالة التعامل مع رفع ومعالجة الصورة لنظام OCR
|
| 793 |
+
document.getElementById("ocrSubmit").addEventListener("click", async function() {
|
| 794 |
+
const fileInput = document.getElementById("ocrFile");
|
| 795 |
+
const spinner = document.getElementById("ocrSpinner");
|
| 796 |
+
const ocrParsedSection = document.getElementById("ocrParsed");
|
| 797 |
+
const ocrRawSection = document.getElementById("ocrRaw");
|
| 798 |
+
const ocrTextPre = document.getElementById("ocrText");
|
| 799 |
+
const ocrRawResponsePre = document.getElementById("ocrRawResponse");
|
| 800 |
+
|
| 801 |
+
if (!fileInput.files || fileInput.files.length === 0) {
|
| 802 |
+
alert("الرجاء اختيار صورة.");
|
| 803 |
+
return;
|
| 804 |
+
}
|
| 805 |
+
|
| 806 |
+
const file = fileInput.files[0];
|
| 807 |
+
let formData = new FormData();
|
| 808 |
+
formData.append("file", file);
|
| 809 |
+
|
| 810 |
+
spinner.hidden = false;
|
| 811 |
+
ocrParsedSection.hidden = true;
|
| 812 |
+
ocrRawSection.hidden = true;
|
| 813 |
+
|
| 814 |
+
try {
|
| 815 |
+
const response = await fetch(OCR_URL, {
|
| 816 |
+
method: "POST",
|
| 817 |
+
body: formData
|
| 818 |
+
});
|
| 819 |
+
const data = await response.json();
|
| 820 |
+
|
| 821 |
+
// إذا كان النص طويلاً وقُسِم إلى جزئين، يتم دمجهما للعرض
|
| 822 |
+
let recognizedText = "";
|
| 823 |
+
if (data.text) {
|
| 824 |
+
recognizedText = data.text;
|
| 825 |
+
} else if (data.part1 && data.part2) {
|
| 826 |
+
recognizedText = data.part1 + "\n\n" + data.part2;
|
| 827 |
+
}
|
| 828 |
+
|
| 829 |
+
ocrTextPre.textContent = recognizedText;
|
| 830 |
+
ocrRawResponsePre.textContent = JSON.stringify(data, null, 2);
|
| 831 |
+
|
| 832 |
+
ocrParsedSection.hidden = false;
|
| 833 |
+
ocrRawSection.hidden = false;
|
| 834 |
+
} catch (error) {
|
| 835 |
+
console.error("OCR processing error:", error);
|
| 836 |
+
alert("حدث خطأ أثناء معالجة الصورة.");
|
| 837 |
+
} finally {
|
| 838 |
+
spinner.hidden = true;
|
| 839 |
+
}
|
| 840 |
+
});
|
| 841 |
+
|
| 842 |
+
// تهيئة الصفحة للقسم الافتراضي "home"
|
| 843 |
document.addEventListener("DOMContentLoaded", () => {
|
| 844 |
showSection("home");
|
| 845 |
});
|