11 KiB
11 KiB
توضیح فیلدهای پاسخ API هشدارهای مزرعه
این سند فیلدهای JSON خروجی POST /api/farm-alerts/tracker/ را توضیح میدهد.
ساختار کلی پاسخ
پاسخ API به شکل envelope برمیگردد:
{
"code": 200,
"msg": "success",
"data": {}
}
فیلدهای سطح اول
code
- نوع:
number - معنی: کد وضعیت داخلی API
- مقدار رایج:
200: موفق400: ورودی نامعتبر500: خطای داخلی
msg
- نوع:
string - معنی: پیام خلاصه وضعیت پاسخ
- نمونه:
successداده نامعتبر.خطا در تولید tracker هشدارها: ...
data
- نوع:
object | null - معنی: بدنه اصلی پاسخ
- در موفقیت شامل جزئیات تحلیل مزرعه است
- در بعضی خطاها ممکن است
nullباشد
فیلدهای داخل data
farm_uuid
- نوع:
string - معنی: شناسه مزرعهای که تحلیل روی آن انجام شده
service_id
- نوع:
string - معنی: شناسه سرویس تولیدکننده پاسخ
- مقدار فعلی:
farm_alerts
tracker
- نوع:
object - معنی: خروجی ساختاریافتهی موتور tracker قبل از خلاصهسازی نهایی AI
- شامل لیست alertها، آمار، خوشهبندی و مهمترین مسئله است
headline
- نوع:
string - معنی: تیتر کوتاه و سریع برای وضعیت فعلی مزرعه
- برای نمایش در کارت، header یا لیست اعلان مناسب است
overview
- نوع:
string - معنی: جمعبندی کوتاه و اجرایی از مهمترین وضعیت فعلی
- معمولا نسخهی خلاصهشدهی مهمترین alert یا نتیجه کلی تحلیل است
status_level
- نوع:
string - مقادیر مجاز:
infowarningdanger
- معنی: سطح کلی وضعیت مزرعه از دید AI
notifications
- نوع:
array - معنی: notificationهای نهایی که پس از تحلیل AI ساخته و در دیتابیس ذخیره شدهاند
- اگر مورد مهمی وجود نداشته باشد، میتواند خالی باشد
raw_llm_response
- نوع:
string | null - معنی: پاسخ خام JSON که مدل زبانی تولید کرده است
- بیشتر برای debug، audit یا بررسی رفتار AI مفید است
structured_context
- نوع:
object - معنی: کانتکست ساختاریافتهای که به مدل داده شده است
- شامل اطلاعات مزرعه، tracker، forecastها و alertهای ورودی است
فیلدهای tracker
tracker.totalAlerts
- نوع:
number - معنی: تعداد کل alertهای شناساییشده توسط tracker
tracker.alerts
- نوع:
array - معنی: لیست خام alertهای تشخیصدادهشده
هر آیتم در tracker.alerts:
metric_type
- نوع:
string - معنی: نوع شاخصی که alert از آن آمده
- نمونه:
moisturetemperaturephecfungal_risk
title
- نوع:
string - معنی: عنوان انسانی alert
current_value
- نوع:
number - معنی: مقدار فعلی شاخص
threshold_value
- نوع:
number | string - معنی: آستانه مرجع برای تشخیص alert
severity
- نوع:
string - مقادیر رایج:
lowmediumhighcritical
- معنی: شدت alert در لایه tracker
duration_hours
- نوع:
number - معنی: مدت تداوم وضعیت هشدار به ساعت
duration
- نوع:
string - معنی: نسخه خوانای
duration_hours - نمونه:
3 ساعت
timestamp
- نوع:
string - معنی: زمان مرجع alert با فرمت ISO datetime
sensor_id
- نوع:
string - معنی: شناسه مزرعه/سنسوری که alert برای آن محاسبه شده
zone_id
- نوع:
string | null - معنی: شناسه ناحیه، اگر alert مربوط به ناحیه خاصی باشد
domain
- نوع:
string - معنی: دامنه عملیاتی alert
- نمونه:
water_balancetemperature_stressroot_chemistrydisease_pressure
direction
- نوع:
string - معنی: جهت عبور از آستانه
- نمونه:
below: مقدار از حد مجاز کمتر شدهabove: مقدار از حد مجاز بیشتر شده
unit
- نوع:
string - معنی: واحد شاخص
- نمونه:
%°CpHdS/m
icon
- نوع:
string - معنی: نام آیکن پیشنهادی برای UI
summary
- نوع:
string - معنی: خلاصه انسانی و کوتاه alert
recommended_action
- نوع:
string - معنی: اقدام عملیاتی پیشنهادی tracker
explanation
- نوع:
string - معنی: توضیح قابلفهم درباره چرایی ایجاد alert
metadata
- نوع:
object - معنی: داده تکمیلی برای توسعههای بعدی
فیلدهای tracker.alertStats
- نوع:
array - معنی: خلاصه آماری alertها برای نمایش سریع در UI
هر آیتم:
title
- عنوان دسته alert
count
- نوع:
string - تعداد alertها در آن دسته
avatarColor
- نوع:
string - رنگ پیشنهادی UI
avatarIcon
- نوع:
string - آیکن پیشنهادی UI
severity
- نوع:
string - بالاترین شدت در آن دسته
topSummary
- نوع:
string - مهمترین خلاصه در آن دسته
فیلدهای tracker.alertClusters
- نوع:
array - معنی: گروهبندی alertها بر اساس domain
هر آیتم:
domain
- نوع:
string - نام دامنه خوشه
title
- نوع:
string - عنوان انسانی خوشه
alert_count
- نوع:
number - تعداد alertهای این خوشه
highest_severity
- نوع:
string - بیشترین شدت بین alertهای این خوشه
primary_metric
- نوع:
string - مهمترین metric در آن خوشه
summary
- نوع:
string - خلاصه وضعیت خوشه
alert_ids
- نوع:
array - معنی: شناسههای alertهای عضو خوشه
فیلد tracker.mostCriticalIssue
- نوع:
object | null - معنی: مهمترین مسئلهای که tracker پیدا کرده
- ساختار آن مشابه هر آیتم در
tracker.alertsاست
فیلدهای خلاصهای tracker
tracker.prioritizedAlertSummaries
- نوع:
array - معنی: لیستی از summaryهای مهم به ترتیب اولویت
tracker.recommendedOperationalActions
- نوع:
array - معنی: لیستی از اقدامهای عملیاتی پیشنهادی
tracker.humanReadableExplanations
- نوع:
array - معنی: توضیحهای متنی قابلخواندن برای نمایش یا گزارش
فیلدهای notifications
- نوع:
array - معنی: اعلانهای نهایی ذخیرهشده در سیستم
هر آیتم در notifications:
id
- نوع:
number - معنی: شناسه داخلی notification
uuid
- نوع:
string - معنی: شناسه یکتای notification
farm_uuid
- نوع:
string - معنی: شناسه مزرعه مربوط به notification
since_id
- نوع:
number | null - معنی: شناسه مرجع برای زنجیره یا گروهبندی notificationها در سیستم
endpoint
- نوع:
string - معنی: endpoint تولیدکننده notification
- مقدار فعلی:
tracker
title
- نوع:
string - معنی: عنوان notification
message
- نوع:
string - معنی: متن اصلی notification
level
- نوع:
string - مقادیر مجاز:
infowarningdanger
- معنی: سطح notification
suggested_action
- نوع:
string - معنی: اقدام پیشنهادی نهایی برای کاربر
source_alert_id
- نوع:
string - معنی: شناسه alert مبنا که notification از آن ساخته شده
source_metric_type
- نوع:
string - معنی: نوع metric مبنا
payload
- نوع:
object - معنی: داده تکمیلی notification
is_read
- نوع:
boolean - معنی: آیا notification توسط کاربر خوانده شده یا نه
metadata
- نوع:
object - معنی: اطلاعات جانبی درباره منبع یا نحوه تولید notification
- نمونه:
source: farm_alerts_tracker_ai
created_at
- نوع:
string - معنی: زمان ایجاد notification
updated_at
- نوع:
string - معنی: زمان آخرین بهروزرسانی notification
فیلدهای structured_context
این بخش برای debug و audit مفید است و نشان میدهد چه دادهای به مدل داده شده است.
structured_context.farm_profile
- اطلاعات پایه مزرعه
فیلدهای مهم:
farm_uuid: شناسه مزرعهlocation.latitude: عرض جغرافیاییlocation.longitude: طول جغرافیاییplant_names: لیست گیاههای ثبتشدهirrigation_method: روش آبیاری یاnulllast_sensor_update: زمان آخرین داده سنسور
structured_context.tracker
- همان داده tracker که به AI داده شده است
structured_context.forecasts
- نوع:
array - معنی: پیشبینیهای هواشناسی کوتاهمدت
هر آیتم:
date: تاریخ پیشبینیtemperature_min: کمینه دماtemperature_max: بیشینه دماhumidity_mean: میانگین رطوبتprecipitation: بارشet0: تبخیر-تعرق مرجع
structured_context.incoming_alerts
- نوع:
array - معنی: alertهایی که از request به API ارسال شده و در تحلیل استفاده شدهاند
- اگر چیزی ارسال نشده باشد، آرایه خالی است
تفاوت severity و level
این دو فیلد شبیه هم هستند ولی یکسان نیستند:
severity: شدت داخلی alert در tracker با مقادیرlow/medium/high/criticallevel: سطح نهایی notification یا status کلی با مقادیرinfo/warning/danger
به طور معمول:
lowمعمولا بهinfoنزدیک استmediumمعمولا بهwarningنزدیک استhighوcriticalمعمولا بهdangerنزدیک هستند
نکته عملی
اگر میخواهید در frontend فقط پیام نهایی را نمایش دهید، معمولا این فیلدها کافی هستند:
data.headlinedata.overviewdata.status_leveldata.notifications
اگر میخواهید صفحه تحلیلی یا داشبورد کامل بسازید، از این بخشها هم استفاده کنید:
data.tracker.alertsdata.tracker.alertStatsdata.tracker.alertClustersdata.structured_context.forecasts