پرش به محتویات

persian-rag

ابزاری پایتونی برای بازیابی اطلاعات و تولید پاسخ با تمرکز بر زبان فارسی.

persian-rag پوشه ای از اسناد فارسی را به یک نمایه جست و جو پذیر و یک سامانه پرسش و پاسخ تبدیل می کند. هر مرحله کوچک، دارای نوع و قابل جایگزینی است:

  1. بارگذاری فایل های متنی، مارک داون، HTML، PDF و Word و صفحه های وب، همراه با جدا کردن متن اصلی و اصلاح متن وارونه PDF.
  2. یکدست سازی حروف عربی و فارسی، فاصله ها، رقم ها و نشانه گذاری.
  3. تکه کردن متن بر اساس اندازه، جمله یا جداکننده های پی در پی.
  4. بردار سازی با sentence-transformers، هر API سازگار با OpenAI یا کلاس دلخواه شما، همراه با حافظه نهان اختیاری.
  5. ذخیره بردارها در حافظه، FAISS، Qdrant، PostgreSQL با pgvector، Elasticsearch یا OpenSearch و به روزرسانی تدریجی آنها.
  6. بازیابی با BM25، جست و جوی برداری یا ترکیب هر دو با روش RRF، همراه با گسترش اختیاری پرسش با املاهای دیگر فارسی.
  7. رتبه بندی دوباره با مدل cross-encoder یا یک مدل زبانی.
  8. تولید پاسخ با هر تابع همگام یا ناهمگام یا اتصال های آماده OpenAI و Ollama، همراه با ارجاع به منبع و حافظه گفت و گو.
  9. ارزیابی کیفیت بازیابی (hit rate، MRR، recall و nDCG) و وفاداری پاسخ به متن.
  10. ارائه سامانه از طریق HTTP با FastAPI.

بسته اصلی هیچ وابستگی ندارد. بخش های سنگین به صورت افزونه اختیاری نصب می شوند تا فقط چیزی را نصب کنید که لازم دارید.

امتحان کنید

  • نسخه نمایشی زنده: persian-rag در Hugging Face Spaces یکدست سازی متن و بازیابی با BM25، بردارها و روش ترکیبی را بدون نصب و در مرورگر اجرا می کند.
  • مجموعه داده محک: sadrmanesh/persian-rag-bench در Hugging Face Hub که با datasets.load_dataset بارگذاری می شود.

از کجا شروع کنیم

همه صفحه ها به زبان انگلیسی هم در دسترس هستند.