diff --git a/note.md b/note.md index 97f9eac..28543a3 100644 --- a/note.md +++ b/note.md @@ -1,5 +1,3 @@ -Markdown - # **توضیح جامع سیستم RAG مدولار** ## **معرفی** @@ -30,9 +28,10 @@ Markdown ```python result = get_context("شاه عباس که بود؟") +``` این تابع یک دیکشنری (Dictionary) با ساختار زیر برمی‌گرداند: -Python +```python { "has_context": True, # آیا اطلاعاتی یافت شده است یا خیر @@ -41,10 +40,11 @@ Python "sources": ["url1", "url2", ...], # فهرست منابع (فقط در صورت استفاده از نتایج وب) "language": "fa" # زبان پاسخ (همیشه فارسی) } +``` پارامترهای قابل تنظیم می‌توانید پارامترهای مربوط به خزش وب را هنگام فراخوانی تابع get_context به صورت زیر تنظیم کنید: -Python +```python result = get_context("شاه عباس که بود؟", crawl_params={ 'max_depth': 3, # حداکثر عمق خزش (تعداد لینک‌های دنبال شده) @@ -52,14 +52,16 @@ result = get_context("شاه عباس که بود؟", crawl_params={ 'max_paragraphs': 8, # حداکثر تعداد پاراگراف‌های استخراج شده از هر صفحه 'num_search_results': 15 # تعداد نتایج اولیه جستجو از DuckDuckGo }) +``` ساختار فایل‌ها سیستم از ساختار پوشه زیر برای ذخیره‌سازی داده‌ها استفاده می‌کند: - +```python ./rag_data/ ├── documents/ # پوشه اسناد PDF بارگذاری شده │ └── docs.pkl # فایل ذخیره‌سازی اسناد پردازش شده └── web_results/ # پوشه نتایج خزش وب └── web.json # فایل ذخیره‌سازی نتایج وب +``` توضیح توابع اصلی load_pdf: بارگذاری، پردازش و تقسیم‌بندی محتوای فایل‌های PDF. search_duckduckgo: انجام جستجو در موتور جستجوی DuckDuckGo. @@ -72,10 +74,11 @@ extract_context_from_web: استخراج متن مرتبط با پرسش از ن get_context: تابع اصلی و رابط کاربری سیستم که فرآیند جستجو در اسناد و یا خزش وب را مدیریت کرده و نتیجه نهایی را برمی‌گرداند. نکات مهم برای افزودن اسناد PDF جدید به سیستم، از تابع load_pdf استفاده کنید: -Python +```python rag = ModularRAG() rag.load_pdf("path/to/your/document.pdf") +``` سیستم به صورت خودکار اسناد پردازش‌شده و نتایج وب را ذخیره و در اجراهای بعدی مجدداً بارگذاری می‌کند تا از پردازش تکراری جلوگیری شود. این سیستم تنها وظیفه بازیابی متن مرتبط را بر عهده دارد و برای تولید پاسخ نهایی نیازی به فراخوانی مستقیم یک مدل زبانی بزرگ (LLM) توسط کاربر ندارد (هرچند خروجی آن می‌تواند به عنوان ورودی به LLM داده شود). برای استفاده از این سیستم در پروژه‌های دیگر، کافی است فایل پایتون مربوطه را وارد (import) کرده و تابع get_context را فراخوانی نمایید. \ No newline at end of file