def format_response(data): route = data["validated_route"]["route"] validity = data["validated_route"]["validity"] vrps = validity.get("VRPs", {}) generated_time = data["generatedTime"] # 根据状态选择不同 emoji 和描述 state_emoji = "✅" if validity["state"] == "valid" else "❌" state_str = validity["state"].capitalize() formatted_text = ( f"🌐 Route Information\n" f" 🏢 Origin ASN: {route['origin_asn']}\n" f" 📍 Prefix: {route['prefix']}\n\n" f"{state_emoji} Validation Result\n" f" 💬 State: {state_str}\n" f" 📝 Description: {validity['description']}\n" ) # 添加 Reason 字段(如果存在) if "reason" in validity: formatted_text += f" 🚫 Reason: {validity['reason'].upper()}\n\n" formatted_text += " 🔍 VRP Analysis:\n" # 处理 Matched VRPs if vrps.get("matched"): formatted_text += " ✅ Matched VRPs:\n" for vrp in vrps["matched"]: formatted_text += ( f" 🌐 ASN: {vrp['asn']}\n" f" 📍 Prefix: {vrp['prefix']}\n" f" 🔑 Max Length: {vrp['max_length']}\n" ) else: formatted_text += " ❌ **No Matched VRPs Found**\n" # 处理 Unmatched AS VRPs if vrps.get("unmatched_as"): formatted_text += " ❌ **Unmatched AS VRPs**:\n" for vrp in vrps["unmatched_as"]: formatted_text += ( f" 🌐 **ASN**: {vrp['asn']}\n" f" 📍 **Prefix**: {vrp['prefix']}\n" f" 🔑 **Max Length**: {vrp['max_length']}\n" ) else: formatted_text += " ✅ **No Unmatched AS Found**\n" # 处理 Unmatched Length VRPs if vrps.get("unmatched_length"): formatted_text += " ❌ **Unmatched Length VRPs**:\n" for vrp in vrps["unmatched_length"]: formatted_text += ( f" 🌐 **ASN**: {vrp['asn']}\n" f" 📍 **Prefix**: {vrp['prefix']}\n" f" 🔑 **Max Length**: {vrp['max_length']}\n" ) else: formatted_text += " ✅ No Unmatched Length Found\n" formatted_text += f"\n⏳ Generated Time: {generated_time}" return formatted_text