4.2 KiB
تغییرات 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-UPDATEbf24404-UPDATEcef1b53-UPDATE24cb87d-UPDATE2cd96ce-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ها از فایل حذف شدهاند:
ChatTaskCreateViewChatTaskStatusView
این یعنی دیگر routeای در urls.py برای این دو view تعریف نشده است.
چیزهایی که تغییری نکردهاند
این endpointها در بازه مقایسه بدون تغییر باقی ماندهاند:
context/->ContextViewchats/->ChatListCreateViewchats/<uuid:conversation_id>/->ChatDetailViewchats/<uuid:conversation_id>/messages/->ChatMessagesView
نتیجه فنی تغییر
این تغییر نشان میدهد طراحی API چت از این الگو:
- ساخت task
- دریافت
task_id - polling برای status
به این الگو تغییر کرده است:
- ارسال مستقیم درخواست به
chat/ - دریافت مستقیم پاسخ از
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 تغییر کرده است