mcp-hf / a2a_agents /ivr_agent.py
elanuk
t
d2a1db5
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)