Files
Ai/pest_disease/services.py
T
2026-04-25 17:22:41 +03:30

38 lines
1.1 KiB
Python

from __future__ import annotations
from typing import Any
from rag.services import get_pest_disease_risk
def _stats_label(level: str | None) -> str:
if level == "high":
return "بالا"
if level == "medium":
return "متوسط"
return "پایین"
def _normalize_risk_block(block: dict[str, Any] | None) -> dict[str, Any]:
payload = dict(block or {})
payload.setdefault("score", 0.0)
payload.setdefault("level", "low")
payload["statsLabel"] = _stats_label(payload.get("level"))
return payload
def build_pest_disease_risk_summary(*, farm_uuid: str) -> dict[str, Any]:
rag_result = get_pest_disease_risk(farm_uuid=farm_uuid)
return {
"farm_uuid": farm_uuid,
"diseaseRisk": _normalize_risk_block(rag_result.get("disease_risk")),
"pestRisk": _normalize_risk_block(rag_result.get("pest_risk")),
"drivers": {
"keyDrivers": rag_result.get("key_drivers") or [],
"summary": rag_result.get("summary"),
"forecastWindow": rag_result.get("forecast_window"),
"source": "rag",
},
}