Files
Backend/farm_ai_assistant/chat_api_changes_last_6_commits.md
2026-04-27 23:31:16 +03:30

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 - 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 تغییر کرده است