یک سیستم RAG (Retrieval Augmented Generation) کامل با رابط کاربری راستچین فارسی، مشابه ChatGPT.
- 🇮🇷 رابط کاربری کاملاً فارسی و راستچین
- 📄 پشتیبانی از فرمتهای PDF، TXT، DOCX و MD
- 🤖 استفاده از مدلهای Ollama (deepseek-r1:8b)
- 🔤 امبدینگ با qwen3-embedding:0.6b
- 💬 چت با حافظه جلسه
- 🌙 تم تاریک و روشن
- 📱 طراحی واکنشگرا
- 🏗️ معماری شیگرا و ماژولار
rag-system/
├── backend/
│ ├── app/
│ │ ├── __init__.py
│ │ ├── main.py # نقطه ورود FastAPI
│ │ ├── config.py # تنظیمات
│ │ ├── models/
│ │ │ ├── __init__.py
│ │ │ └── schemas.py # مدلهای Pydantic
│ │ ├── services/
│ │ │ ├── __init__.py
│ │ │ ├── document_loader.py # بارگذاری اسناد
│ │ │ ├── embedding_service.py # سرویس امبدینگ
│ │ │ ├── vector_store.py # پایگاه داده برداری
│ │ │ └── rag_service.py # سرویس اصلی RAG
│ │ └── routers/
│ │ ├── __init__.py
│ │ └── api.py # مسیرهای API
│ ├── uploads/ # فایلهای آپلود شده
│ ├── vector_db/ # پایگاه داده برداری
│ ├── requirements.txt
│ └── .env.example
├── frontend/
│ ├── index.html
│ ├── css/
│ │ └── style.css
│ └── js/
│ └── app.js
└── README.md
- Python 3.10+
- Ollama - نصب Ollama
- مدلهای Ollama:
ollama pull deepseek-r1:8b ollama pull qwen3-embedding:0.6b
unzip rag-system.zip
cd rag-systemcd backend
python -m venv venv
# Linux/macOS
source venv/bin/activate
# Windows
venv\Scripts\activatepip install -r requirements.txtcp .env.example .env
# فایل .env را با تنظیمات خود ویرایش کنیدcd backend
python -m app.mainسرور روی http://localhost:8000 قابل دسترسی خواهد بود.
| متد | مسیر | توضیحات |
|---|---|---|
| GET | /api/health |
بررسی سلامت سیستم |
| POST | /api/chat |
ارسال پیام و دریافت پاسخ |
| POST | /api/upload |
آپلود سند جدید |
| GET | /api/documents |
لیست اسناد |
| DELETE | /api/documents/{filename} |
حذف سند |
| DELETE | /api/documents |
حذف تمام اسناد |
curl -X POST http://localhost:8000/api/chat \
-H "Content-Type: application/json" \
-d '{"message": "درباره اسناد آپلود شده توضیح بده"}'curl -X POST http://localhost:8000/api/upload \
-F "file=@document.pdf"فایل .env برای تنظیمات:
# تنظیمات Ollama
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL=deepseek-r1:8b
OLLAMA_EMBEDDING_MODEL=qwen3-embedding:0.6b
# تنظیمات RAG
CHUNK_SIZE=1000
CHUNK_OVERLAP=200
RETRIEVAL_K=4
# تنظیمات Chat
MAX_TOKENS=2048
TEMPERATURE=0.7DocumentLoaderService: بارگذاری و تقسیم اسنادEmbeddingService: تولید بردارهای امبدینگVectorStoreService: مدیریت پایگاه داده برداریRAGService: هماهنگی کلی سیستم RAG
- Abstract Factory: برای بارگذارهای مختلف اسناد
- Singleton: برای تنظیمات و سرویسها
- Strategy: برای استراتژیهای مختلف تقسیم متن
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000- Swagger UI:
http://localhost:8000/docs - ReDoc:
http://localhost:8000/redoc
- Python 3.10+
- FastAPI
- LangChain
- ChromaDB
- Ollama
- HTML5
- CSS3 (متغیرهای CSS، Grid، Flexbox)
- JavaScript ES6+ (Vanilla)
- فونت وزیرمتن
# بررسی سرویس Ollama
ollama list
# اجرای سرویس
ollama serve# دانلود مدلها
ollama pull deepseek-r1:8b
ollama pull qwen3-embedding:0.6b# کاهش CHUNK_SIZE در .env
CHUNK_SIZE=500MIT License
پول ریکوئستها خوش آمدید! برای تغییرات بزرگ، لطفاً ابتدا یک issue باز کنید.