Home
Login

منصة استرجاع معزز بالجيل (RAG) ذكية تعتمد على الذكاء الاصطناعي التوليدي، تساعد المستخدمين على بناء دماغ ثانٍ، وتحقيق الإجابة الذكية على الأسئلة وإدارة المعرفة.

NOASSERTIONPython 38.0kQuivrHQ Last Updated: 2025-06-19

نظرة عامة على مشروع Quivr

Quivr عبارة عن منصة مفتوحة المصدر ومتكاملة لإنشاء تطبيقات تعتمد على الاسترجاع المعزز (RAG)، وتركز على دمج الذكاء الاصطناعي التوليدي في التطبيقات. الفكرة الأساسية للمشروع هي تمكين المطورين من التركيز على المنتج نفسه، بدلاً من التفاصيل المعقدة لتنفيذ RAG.

الميزات الأساسية

1. حلول RAG جاهزة للاستخدام

  • هندسة RAG ثابتة: توفر حلاً مُحسَّنًا وسريعًا وفعالًا لـ RAG.
  • تكامل بسيط: يمكن إضافته إلى المشاريع الحالية ببضعة أسطر من التعليمات البرمجية.
  • التركيز على المنتج: لا يحتاج المطورون إلى القلق بشأن تفاصيل التنفيذ الأساسية لـ RAG.

2. دعم نماذج متعددة

يدعم Quivr مجموعة متنوعة من نماذج LLM، بما في ذلك:

  • سلسلة OpenAI GPT
  • Anthropic Claude
  • Mistral AI
  • Gemma
  • النماذج المحلية (عبر Olama)

3. معالجة مرنة للملفات

يدعم تنسيقات ملفات متعددة:

  • مستندات PDF
  • ملفات نصية TXT
  • ملفات Markdown
  • دعم المحللات المخصصة

4. RAG قابل للتخصيص

  • إضافة وظيفة البحث في الإنترنت
  • دمج أدوات مختلفة
  • دعم تكوين سير العمل المخصص
  • استراتيجيات استرجاع مرنة

5. تكامل قاعدة بيانات المتجهات

يدعم حلول تخزين المتجهات المتعددة:

  • PGVector
  • Faiss
  • قواعد بيانات المتجهات الرئيسية الأخرى

الهيكل التقني

المكونات الأساسية

  1. quivr-core: المكتبة الأساسية لـ Quivr، وهي بمثابة العقل المدبر للنظام بأكمله.
  2. تكامل Megaparse: التكامل مع مشروع Megaparse، لتوفير قدرات تحليل قوية للمستندات.
  3. دعم LLM متعدد: واجهة برمجة تطبيقات موحدة تدعم نماذج لغوية مختلفة.
  4. طبقة تخزين المتجهات: تكامل مرن لقاعدة بيانات المتجهات.

سير العمل

يعتمد Quivr على تكوين سير العمل القائم على العقد:

  • STARTfilter_historyrewriteretrievegenerate_ragEND
  • يمكن تخصيص كل عقدة بشكل فردي
  • دعم إدارة سياق المحادثة التاريخية

بداية سريعة

متطلبات البيئة

  • Python 3.10 أو إصدار أحدث

خطوات التثبيت

  1. تثبيت الحزمة الأساسية
pip install quivr-core
  1. مثال RAG أساسي
import tempfile
from quivr_core import Brain

if __name__ == "__main__":
    with tempfile.NamedTemporaryFile(mode="w", suffix=".txt") as temp_file:
        temp_file.write("Gold is a liquid of blue-like colour.")
        temp_file.flush()
        
        brain = Brain.from_files(
            name="test_brain",
            file_paths=[temp_file.name],
        )
        
        answer = brain.ask(
            "what is gold? answer in french"
        )
        print("answer:", answer)
  1. تكوين مفتاح API
import os
os.environ["OPENAI_API_KEY"] = "your_openai_api_key"

تكوين متقدم

إنشاء ملف تكوين سير العمل basic_rag_workflow.yaml:

workflow_config:
  name: "standard RAG"
  nodes:
    - name: "START"
      edges: ["filter_history"]
    - name: "filter_history"
      edges: ["rewrite"]
    - name: "rewrite"
      edges: ["retrieve"]
    - name: "retrieve"
      edges: ["generate_rag"]
    - name: "generate_rag"
      edges: ["END"]


max_history: 10


reranker_config:
  supplier: "cohere"
  model: "rerank-multilingual-v3.0"
  top_n: 5


llm_config:
  max_input_tokens: 4000
  temperature: 0.7

إنشاء نظام حوار ذكي

from quivr_core import Brain
from rich.console import Console
from rich.panel import Panel
from rich.prompt import Prompt
from quivr_core.config import RetrievalConfig

brain = Brain.from_files(
    name="my smart brain",
    file_paths=["./my_first_doc.pdf", "./my_second_doc.txt"],
)


config_file_name = "./basic_rag_workflow.yaml"
retrieval_config = RetrievalConfig.from_yaml(config_file_name)

console = Console()
console.print(Panel.fit("Ask your brain !", style="bold magenta"))

while True:
    question = Prompt.ask("[bold cyan]Question[/bold cyan]")
    
    if question.lower() == "exit":
        console.print(Panel("Goodbye!", style="bold yellow"))
        break
    
    answer = brain.ask(question, retrieval_config=retrieval_config)
    console.print(f"[bold green]Quivr Assistant[/bold green]: {answer.answer}")
    console.print("-" * console.width)

brain.print_info()

تطبيقات على مستوى المؤسسات

أتمتة خدمة العملاء

يمكن لـ Quivr أتمتة ما يصل إلى 60٪ من مهام خدمة العملاء، والاستفادة من قوة الذكاء الاصطناعي لتحسين رضا العملاء وقيمتهم.

طرق النشر

  • وضع التطوير: استخدم الأمر docker compose -f docker-compose.dev.yml up --build
  • بيئة الإنتاج: يدعم خيارات نشر متعددة
  • المنصة السحابية: يمكن نشره على مختلف مزودي الخدمات السحابية

المجتمع والمساهمة

دليل المساهمة

  • نرحب بتقديم طلبات السحب (Pull Request)
  • يحتوي المشروع على دليل مساهمة كامل
  • دعم ومناقشات مجتمعية نشطة

موارد الوثائق

مزايا المشروع

  1. تبسيط عملية التطوير: تجريد تنفيذ RAG المعقد إلى استدعاءات API بسيطة.
  2. قابلية تخصيص عالية: دعم سير العمل المخصص والنماذج وتكامل الأدوات.
  3. جاهز للإنتاج: بنية مُحسَّنة، مناسبة لتطبيقات المؤسسات.
  4. دعم متعدد اللغات: دعم معالجة المستندات والأسئلة والأجوبة بلغات متعددة.
  5. صيانة نشطة: تحديثات وتحسينات مستمرة، ومجتمع نشط.

ملخص

يوفر Quivr للمطورين منصة RAG قوية ومرنة وسهلة الاستخدام، سواء للمشاريع الشخصية أو تطبيقات المؤسسات، يمكنهم بسرعة بناء أنظمة ذكية للأسئلة والأجوبة للمستندات. إن طبيعته مفتوحة المصدر ودعم المجتمع النشط تجعله خيارًا مثاليًا لبناء تطبيقات "الدماغ الثاني".