البحث الفائق في المكتبة الوقفية باستخدام الذكاء الاصطناعي AI من Claude و ChatGPT

مكنون

عفا الله عنه وجميع المؤمنين
طاقم الإدارة
هذا الموضوع تكملة لمحاولة الاستفادة من أدوات الذكاء الاصطناعي في فهارس المحاضرات، المحاولة التالية هي للمكتبة الوقفية على نفس المنوال

الفكرة قائمة على استخدام Claude Desktop على ويندوز وربطه بقاعدة بيانات المكتبة الوقفية للبحث والرد مع إرفاق روابط الاقتباسات من أصول الكتب (PDF) وعرضها مباشرة من المكتبة المصورة

الخطوات:
  • تحميل قاعدة البيانات وفك الضغط من هذا الرابط
  • تشغيل قاعدة البيانات بالضغط على pg_start.bat
  • تحميل وتنصيب برنامج Claude Desktop من رابط الموقع
  • بعد التسجيل في البرنامج، عليك بتحميل وتنصيب أداة إضافة DBHub
    • بتحميل الملف dbhub-<version>.mcpb من هذا الرابط
    • وتنصيبه في البرنامج File → Settings → Extensions
    • الأداة تحتاج إلى مسار قاعدة البيانات وهي postgres://postgres:maknoon@localhost:5432/aidb
    • قم بتفعيل الأداة مع إعطائها كل الصلاحيات permissions
  • قم بإلصاق التوجيهات Prompt التالية في خانة Instructions for Claude تحت File → Settings → Account
    كود:
    DATA SOURCE
    For every question, query the connected PostgreSQL database (MCP) before answering. Never answer from general knowledge. Use read-only SELECT queries only; never modify data or manage sessions.
    
    CONTEXT
    The database is an Arabic Islamic book library. Every answer must be grounded in retrieved page text and cited to the exact page.
    
    STRUCTURE
    - arabicbook (catalog, one row per book or volume): id, name, parent, author, path.
      - Standalone books have parent = '' (empty string, not NULL).
      - For volumes, parent = the book title and name = the volume label. Display title = coalesce(nullif(parent,''), name), plus the volume when present.
      - author = the book's author.
    - b<N> (one table per book or volume, N = arabicbook.id): columns page (int), content (text, Arabic, diacritized). There is no index on content.
    
    SEARCH PROCEDURE
    1. Write all queries in Arabic, even if the question is in another language.
    2. There are 12,709 book tables, so never scan them all. First query arabicbook (name, parent, author with ILIKE) to pick the candidate books. Use the user's book or author if given; otherwise pick the classic works most relevant to the topic.
    3. Then search content only in those candidate tables (at most 10–20 per query, combined with UNION ALL), always with LIMIT.
    4. Match diacritics-insensitively and try spelling variants:
       regexp_replace(content, '[ً-ْٰـ]', '', 'g') ILIKE '%<normalized term>%'
       Also try أ/إ/آ→ا, ة→ه, ى→ي, and synonyms or root forms. If nothing matches, retry with fewer or different keywords before giving up.
    5. Return a short snippet around the match, not the whole page.
    
    CITATION LINK (required on every answer)
    https://maknoon.org/ai/view.php?bk=<path>&p=<page>
    - <path> = the path value of the matching row in arabicbook
    - <page> = the page value of the matching row in b<N>
    Display: one citation → 🔗 plus the full visible link. Several citations → an icon-only markdown link ([🔗](url)) placed right after the statement it supports, one per source row, never bundled at the end.
    
    ANSWER RULES
    - State the book title and author for each answer. If the text quotes another scholar, name that scholar too.
    - Quote the Arabic wording, and clearly separate quotes from any paraphrase or translation. Answer in the user's language.
    - If sources differ, present each with its own attribution and citation; do not choose one.
    - If nothing relevant is found, say clearly that no answer was found in the database. Do not fill the gap from general knowledge.
  • يمكن فعل الكثير في توجية الذكاء الاصطناعي وتشكيل الأجوبة بالشكل الذي تراه عن طريق تغيير التوجيهات السابقة. أتمنى مشاركة أي تصحيح على هذي التوجيهات.
  • عليك بحذف التوجيهات اذا أردت جعل Claude يبحث خارج قاعدة البيانات

مثال لجواب متضمن روابط لصور صفحات الكتب الأصلية الذي تم اقتباس الجواب منه:
1790665750842.png
 
التعديل الأخير:
طريقة أخرى لربط قاعدة البيانات تتضمن جميع الخطوات السابقة باستثناء استخدام الأداة DBHub، قم بتعطيلها في الإعدادات. وبدلا منها قم بـ:
  • تحميل وتنصيب Node.js من هذا الرابط
  • قم بالذهاب إلى File → Settings → Developer وتحرير الملف claude_desktop_config.json بالضغط على Edit config وقم بإضافة التالي في نهاية الملف:
    JSON:
    "mcpServers": {
        "postgres": {
          "command": "npx",
          "args": ["-y", "@yawlabs/postgres-mcp"],
          "env": {
              "DATABASE_URL": "postgres://postgres:maknoon@localhost:5432/aidb"
          }
        }
      }
  • انتبه جيدا للفواصل والأقواس فوق وتحت الكود. صورة للتوضيح:
    1790665470474.png
  • قم باغلاق برنامج Claude تماما وإعادة تشغليه

مثال لنفس السؤال ونلاحظ فروقات في الجواب والسبب يرجع إلى اختلاف الطريقتين. الأولى هي المنصوح بها والسبب أنها لا تستهلك كثيرا من AI Tokens من حسابك. هذه الطريقة تستهلك الكثير لكن نتائجها أفضل:
1790665394574.png
 
ملاحظات عامة:
  • هذه الطرق توفر قدرا مناسبا للبحث والسؤال مع Claude مع قيود كثيرة منها:
    • لا يمكن البحث في بيانات كثيرة لهذه المكتبة، ولذلك الأسئلة العامة ستكون أجوبتها مقتضبة من كتاب أو اثنين. Claude يعتمد على أسماء الكتب للبحث داخلها فقط، فلا يمكنه البحث في كل المجلدات والتي تتجاوز 11 ألف مجلد وأكثر من 5 ملايين ورقة
    • تستهلك AI Tokens كثيرة جدا للرد ولذلك أغلب الظن سيتوقف حسابك المجاني لليوم بعد بضع أسئلة فقط. وستضطر للحساب المدفوع
  • قاعدة البيانات هنا (SQL) غير موائمة للذكاء الاصطناعي ولذلك البحث محصور وضيق حسب ما تتيحه لغة SQL. للذكاء الاصطناعي قاعدة بيانات متخصصة Vector DB تقوم بالبحث الشامل في كل البيانات وايجاد أفضل الأجوبة. الفرق في النتائج سيكون كبير جدا.
  • هذه الطرق تقدم معلومات ومقتبسات ولا تعطي Claude مجال واسع للتفكير والاستنباط والتلخيص الشامل ولذلك بعض الإسئلة قد لا يجد لها جوابا، على خلاف ما إذا كانت البيانات على هيئة Vector
  • الخطوة القادمة إن شاء الله هو تحويل البيانات إلى Vector DB وإكمال الأفكار التي طرحناها سابقا في بنك الأفكار. هناك قيود في حجم Vector DB فهي ستتضاعف كثيرا عن 6GB الحالية.
ونسأل الله التوفيق والقبول
 
التعديل الأخير:
يمكن أيضا استعمال ChatGPT أيضا بنفس الطريقة الثانية:
  • تحميل وتنصيب Node.js من هذا الرابط
  • قم بالذهاب إلى Edit → Settings → Personalization ثم إلى خانة Custom instructions وإلصاق نفس التوجيهات Prompt المذكورة في أول الموضوع
  • قم بالذهاب إلى Edit → Settings → Plugins ثم الضغط على أيقونة Add ثم اختر Add MCP server وأضف البيانات كالتالي:

    1790688878992.png


  • قم باغلاق برنامج ChatGPT تماما وإعادة تشغليه

مثال لنفس السؤال ونلاحظ فروقات في الجواب والسبب يرجع إلى اختلاف البرنامجين. Claude يتفوق في هذه التجربة على ChatGPT:
1790680814622.png
 
عودة
أعلى