File size: 2,030 Bytes
d2a1db5 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
def create_ivr_script(alert_json: dict) -> list[dict]:
"""
Creates a voice script with timing from a structured alert JSON.
"""
script = [
{"text": f"Namaste. Mausam ki chetavani {alert_json['location']['district']} ke liye.", "delay_after": 1},
{"text": f"Fasal: {alert_json['crop']['name']}.", "delay_after": 1},
{"text": f"Chetavani: {alert_json['alert']['message']}", "delay_after": 2},
{"text": "Salah ke liye, ek dabaye.", "delay_after": 0}
]
return script
def get_ivr_submenu_script(alert_json: dict) -> list[dict]:
"""
Returns a submenu script for the IVR.
"""
actions = ". ".join([action.replace('_', ' ') for action in alert_json['alert']['action_items']])
script = [
{"text": f"Salah: {actions}", "delay_after": 2},
{"text": "Dhanyavad.", "delay_after": 0}
]
return script
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",
"planted_estimate": "2025-06-15"
},
"alert": {
"type": "weather_warning",
"urgency": "high",
"message": "Heavy rainfall (40-60mm) expected in next 2 days. Delay fertilizer application. Ensure proper drainage.",
"action_items": ["delay_fertilizer", "check_drainage"],
"valid_until": "2025-07-25T18:00:00Z"
},
"weather": {
"forecast_days": 3,
"rain_probability": 85,
"expected_rainfall": "45mm"
}
}
main_script = create_ivr_script(sample_alert)
print("--- Main Script ---")
for line in main_script:
print(line)
submenu_script = get_ivr_submenu_script(sample_alert)
print("\n--- Submenu Script ---")
for line in submenu_script:
print(line)
|