mcp-hf / a2a_agents /sms_agent.py
elanuk
t
d2a1db5
import json
def to_hindi(text):
"""
Mock function to "translate" text to Hindi.
In a real implementation, this would use a translation service.
"""
translations = {
"Heavy rainfall": "भारी वर्षा",
"expected in next 2 days.": "अगले 2 दिनों में अपेक्षित।",
"Delay fertilizer application.": "उर्वरक आवेदन में देरी करें।",
"Ensure proper drainage.": "उचित जल निकासी सुनिश्चित करें।",
"rice": "चावल",
"flowering": "फूल",
"weather_warning": "मौसम की चेतावनी",
"high": "उच्च",
"Kumhrar": "कुम्हरार",
"Patna": "पटना",
"Bihar": "बिहार",
"Alert": "चेतावनी",
"Crop": "फसल",
"Stage": "चरण",
"Urgency": "तात्कालिकता",
"Action": "कार्य"
}
for en, hi in translations.items():
text = text.replace(en, hi)
return text
def create_sms_message(alert_json: dict) -> str:
"""
Creates a 160-character SMS message from a structured alert JSON.
"""
message = (
f"{to_hindi('Alert')}: {to_hindi(alert_json['alert']['type'])}, "
f"{to_hindi('Crop')}: {to_hindi(alert_json['crop']['name'])}, "
f"{to_hindi('Stage')}: {to_hindi(alert_json['crop']['stage'])}, "
f"{to_hindi('Urgency')}: {to_hindi(alert_json['alert']['urgency'])}. "
f"{to_hindi(alert_json['alert']['message'])}"
)
# Truncate to 160 characters
return message[:160]
if __name__ == '__main__':
sample_alert = {
"alert_id": "BH_PAT_001_20250723",
"timestamp": "2025-07-23T06:00:00Z",
"location": {
"village": "Kumhrar",
"district": "Patna",
"state": "Bihar",
"coordinates": [25.5941, 85.1376]
},
"crop": {
"name": "rice",
"stage": "flowering"
},
"alert": {
"type": "weather_warning",
"urgency": "high",
"message": "Heavy rainfall expected in next 2 days. Delay fertilizer application. Ensure proper drainage."
}
}
sms = create_sms_message(sample_alert)
print(sms)
print(f"Length: {len(sms)}")