رابط HTTP¶
pip install "persian-rag[server]"
persian-rag serve --index .persian-rag --host 127.0.0.1 --port 8000
یا با داکر و ایمیجی که در هر انتشار منتشر می شود (صفحه داکر را ببینید):
docker run -d -p 8000:8000 -v persian-rag-data:/data ghcr.io/sadrmanesh/persian-rag:0.3.1
یا از درون کد:
import uvicorn
from persian_rag.server import create_app
app = create_app(pipeline, title="My Persian search", max_k=50)
uvicorn.run(app, host="127.0.0.1", port=8000)
خروجی create_app یک برنامه معمولی FastAPI است، پس می توانید میان افزار یا مسیرهای دیگری به آن اضافه کنید. پاسخ گویی ناهمگام است و فراخوانی کند مدل، درخواست های دیگر را معطل نمی کند.
مسیرها¶
| روش | مسیر | بدنه | خروجی |
|---|---|---|---|
GET |
/health |
وضعیت، نسخه، تعداد تکه ها و وجود مدل و رتبه بند | |
POST |
/retrieve |
{"query": "...", "k": 5, "mode": "hybrid"} |
پرسش و فهرست نتیجه ها |
POST |
/query |
{"question": "...", "k": 5} |
پرسش، پاسخ، متن ها، ارجاع ها و در صورت درخواست پرامپت |
POST |
/chat |
{"message": "...", "session_id": null} |
فیلدهای /query به همراه session_id، standalone_question و turn |
DELETE |
/chat/{session_id} |
{"deleted": true} یا false برای گفت و گوی ناشناخته |
مسیر /chat برای هر session_id یک گفت و گو نگه می دارد. صفحه ارجاع به منبع و گفت و گو را ببینید. پارامترهای max_sessions=1000 و max_turns=6 در create_app مصرف حافظه را محدود می کنند.
درخواست با پرسش خالی، حالت نامعتبر یا k بیشتر از max_k خطای 422 می گیرد. مستندات تعاملی در مسیر /docs در دسترس است.
curl -s localhost:8000/retrieve -H 'content-type: application/json' \
-d '{"query": "حافظ اهل کجا بود؟", "k": 3}'
این سرور احراز هویت ندارد. پیش از انتشار عمومی، آن را پشت دروازه امن خودتان قرار دهید.