# تغییرات 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//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//` -> `ChatDetailView` - `chats//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 تغییر کرده است