This commit is contained in:
2026-04-27 23:31:16 +03:30
parent f1643b0a51
commit 5f0d94b8fd
5 changed files with 648 additions and 73 deletions
@@ -0,0 +1,105 @@
# تغییرات API چت در `farm_ai_assistant/urls.py`
این فایل تغییرات مربوط به API چت را در `farm_ai_assistant/urls.py` نسبت به **۶ کامیت قبل** (`HEAD~6`) توضیح می‌دهد.
## بازه مقایسه
- مبدا مقایسه: `HEAD~6`
- مقصد مقایسه: `HEAD`
کامیت مبنا:
- `2a77f90` - `Update Docker Compose ports to 8081 and add new apps and URL routes for crop zoning, plant simulator, pest detection, irrigation recommendation, fertilization recommendation, and farm AI assistant.`
کامیت‌های داخل این بازه:
- `2846db1` - `UPDATE`
- `bf24404` - `UPDATE`
- `cef1b53` - `UPDATE`
- `24cb87d` - `UPDATE`
- `2cd96ce` - `UPDATE`
## خلاصه تغییر اصلی
در این بازه، ساختار API چت از حالت **task-based / async polling** به حالت **direct chat endpoint** تغییر کرده است.
به زبان ساده:
- قبلاً endpoint اصلی `chat/` غیرفعال بود.
- قبلاً برای ارسال درخواست چت، یک task ساخته می‌شد.
- سپس وضعیت آن task با یک endpoint جداگانه بررسی می‌شد.
- الان این مدل حذف شده و به‌جای آن endpoint مستقیم `chat/` فعال شده است.
## تغییرات دقیق در مسیرها
### 1) فعال شدن endpoint مستقیم چت
مسیر زیر فعال شده است:
- `POST/GET farm_ai_assistant/chat/`
- view متناظر: `ChatView`
- name: `farm-ai-assistant-chat`
وضعیت قبلی:
- این خط در فایل وجود داشت اما کامنت شده بود:
- `# path("chat/", ChatView.as_view(), name="farm-ai-assistant-chat"),`
وضعیت جدید:
- این endpoint از حالت comment خارج شده و فعال شده است:
- `path("chat/", ChatView.as_view(), name="farm-ai-assistant-chat"),`
### 2) حذف endpoint ساخت task برای چت
این مسیر حذف شده است:
- `chat/task/`
- view: `ChatTaskCreateView`
- name: `farm-ai-assistant-chat-task-create`
هدف قبلی این endpoint:
- ایجاد یک task برای پردازش درخواست چت
### 3) حذف endpoint بررسی وضعیت task
این مسیر هم حذف شده است:
- `chat/task/<str:task_id>/status/`
- view: `ChatTaskStatusView`
- name: `farm-ai-assistant-chat-task-status`
هدف قبلی این endpoint:
- بررسی وضعیت پردازش task چت با استفاده از `task_id`
### 4) حذف import های مربوط به task-based flow
این importها از فایل حذف شده‌اند:
- `ChatTaskCreateView`
- `ChatTaskStatusView`
این یعنی دیگر routeای در `urls.py` برای این دو view تعریف نشده است.
## چیزهایی که تغییری نکرده‌اند
این endpointها در بازه مقایسه بدون تغییر باقی مانده‌اند:
- `context/` -> `ContextView`
- `chats/` -> `ChatListCreateView`
- `chats/<uuid:conversation_id>/` -> `ChatDetailView`
- `chats/<uuid:conversation_id>/messages/` -> `ChatMessagesView`
## نتیجه فنی تغییر
این تغییر نشان می‌دهد طراحی API چت از این الگو:
1. ساخت task
2. دریافت `task_id`
3. polling برای status
به این الگو تغییر کرده است:
1. ارسال مستقیم درخواست به `chat/`
2. دریافت مستقیم پاسخ از `ChatView`
## اثر احتمالی روی فرانت یا کلاینت‌ها
اگر فرانت یا کلاینت قبلاً با flow تسک‌محور کار می‌کرده، باید این تغییرات را اعمال کند:
- دیگر نباید به `chat/task/` درخواست بزند.
- دیگر نباید `task_id` دریافت و status را polling کند.
- باید مستقیماً از `chat/` برای عملیات چت استفاده کند.
## جمع‌بندی
مهم‌ترین تغییر در ۶ کامیت اخیر برای `farm_ai_assistant/urls.py` این است که:
- endpoint مستقیم `chat/` فعال شده
- endpointهای task-based حذف شده‌اند
- معماری API چت از حالت asynchronous polling به حالت direct request/response تغییر کرده است