إسماعيل بن علا

Juridia

نظام RAG قانوني متعدد اللغات

RAG · يوليوز 2024 · مكتمل

إجابة سريعة عن الأسئلة وبحث فوق أكثر من 100,000 وثيقة قانونية بالعربية والفرنسية.

التقنياتFastAPIPostgreSQLQdrantLlamaIndexReactBM25 + cross-encoder

Juridia — نظرة عامة

نظرة عامة

الوثائق القانونية المكتوبة بالعربية والفرنسية معًا يصعب البحث فيها جيدًا: البحث بالكلمات المفتاحية وحده يفوّت نصوصًا ذات صلة، والتضمينات (embeddings) وحدها ليست دقيقة بما يكفي للأسئلة القانونية.

في Juridia صممت ونشرت نظامًا إنتاجيًا للتوليد المعزز بالاسترجاع (RAG) فوق أكثر من 100,000 وثيقة قانونية، مبنيًا بـ FastAPI وLlamaIndex وPostgreSQL وQdrant، مع واجهة بحث تتيح البحث بالكلمات المفتاحية والبحث الدلالي والبحث بالبيانات الوصفية.

الجمع بين BM25 والاسترجاع الكثيف والتضمينات متعددة اللغات، ثم إعادة الترتيب بمشفِّر متقاطع (cross-encoder)، حسّن دقة الاسترجاع بنسبة 18 إلى 22% مع إبقاء متوسط زمن الاستجابة للاستعلام أقل من 350 ملّي ثانية. الدرس الأهم: جودة الاسترجاع تعتمد على خط الترتيب بأكمله، لا على التضمينات وحدها. تنفيذ العميل خاص، لذا لا يُشارك سوى هذا الملخص التقني.

السؤال

كيف يمكن للاسترجاع متعدد اللغات أن يبقى سريعًا ودقيقًا فوق متن قانوني ضخم ومتخصص؟

أهم الميزات

كيف يعمل

  1. الفهرسة

    تُفهرس الوثائق للبحث بالكلمات المفتاحية وللبحث الدلالي متعدد اللغات معًا، باستخدام PostgreSQL وقاعدة البيانات المتجهية Qdrant.

  2. الاسترجاع الهجين

    يُطابَق الاستعلام بالبحث بالكلمات المفتاحية عبر BM25 وبالبحث الدلالي الكثيف معًا، مع إتاحة مرشحات البيانات الوصفية.

  3. إعادة الترتيب

    يعيد مشفِّر متقاطع ترتيب المرشحين بحيث تأتي المقاطع الأكثر صلة أولًا.

  4. الإجابة والتقديم

    تُقدَّم الإجابات المعززة بالاسترجاع عبر خدمة FastAPI مبنية بـ LlamaIndex، خلف واجهة البحث المبنية بـ React.

التقنيات المستخدمة

ما تعلمته

الحدود