astrology-ziwei-api / test_api_1981.py
th
🎉🎉🎉🎉 v3.12.0 规则库扩展4.0 - 612条规则COMPLETE!
1f45f10
Raw History Blame Contribute Delete
4.86 kB
#!/usr/bin/env python3
"""
测试1981年10月4日戌时女命盘
Test 1981-10-04 19:00-21:00 female chart
"""
import requests
import json
# API请求
url = "https://sisithefox-astrology-ziwei-api.hf.space/analyze-ziwei-knowledge-enhanced"
payload = {
"birth_date": "1981-10-04",
"birth_time": "20:00", # 戌时中间时间
"gender": "女",
"is_leap_month": False,
"fix_leap": True
}
print("=" * 80)
print("🔮 紫微斗数命盘解读 - 1981-10-04 戌时 女")
print("=" * 80)
try:
response = requests.post(url, json=payload, timeout=30)
if response.status_code != 200:
print(f"❌ API调用失败: {response.status_code}")
print(response.text)
exit(1)
data = response.json()
if data.get('status') != 'success':
print(f"❌ 错误: {data.get('error')}")
exit(1)
result = data['data']
knowledge = result.get('knowledge_interpretation', {})
# 命宫信息
print("\n【命宫信息】")
ming_gong = None
for palace in result.get('palaces', []):
if palace['name'] == '命宫':
ming_gong = palace
break
if ming_gong:
print(f"位置: {ming_gong['position']}")
print(f"强度评分: {ming_gong.get('strength_score', 'N/A')}/100")
print("\n主星:")
for star in ming_gong.get('major_stars', []):
brightness = star.get('brightness', 'N/A')
print(f" • {star['name']} ({brightness})")
print("\n副星:")
minor_stars = ming_gong.get('minor_stars', [])
if minor_stars:
for star in minor_stars:
print(f" • {star['name']}")
else:
print(" 无")
# 星曜组合匹配结果
star_combos = knowledge.get('star_combinations', {})
total_matched = star_combos.get('total_matched', 0)
total_checked = star_combos.get('total_rules_checked', 0)
print("\n" + "=" * 80)
print("【星曜组合匹配结果】")
print("=" * 80)
print(f"匹配规则数: {total_matched}")
print(f"检查规则总数: {total_checked}")
print(f"匹配率: {total_matched / total_checked * 100:.1f}%")
matched_rules = star_combos.get('matched_rules', [])
if matched_rules:
print(f"\n【匹配的组合详情】({len(matched_rules)}个):\n")
for i, rule in enumerate(matched_rules, 1):
print(f"{i}. {rule['rule_name']} (ID: {rule['rule_id']})")
print(f" 宫位: {rule['palace']}")
print(f" 分类: {rule['category']}")
print(f" 评分: {rule['score']}/100")
print(f" 置信度: {rule['confidence']:.1%}")
print(f" 效果等级: {rule['effect_level']}")
interp = rule.get('interpretations', {})
print(f" 核心含义: {interp.get('core_meaning', 'N/A')}")
# 显示匹配的星曜
matched_stars = rule.get('matched_stars', [])
if matched_stars:
print(f" 匹配星曜: {', '.join(matched_stars)}")
print()
# 组合总结
summary = star_combos.get('summary', {})
if summary:
print("=" * 80)
print("【组合总结】")
print("=" * 80)
print(f"最高分: {summary.get('highest_score', 0)}/100")
print(f"平均分: {summary.get('average_score', 0):.1f}/100")
print(f"整体质量: {summary.get('overall_quality', 'N/A')}")
categories = summary.get('categories', {})
if categories:
print(f"\n分类统计:")
for cat, count in sorted(categories.items(), key=lambda x: x[1], reverse=True):
print(f" • {cat}: {count}条")
# Top 3规则
top_3 = summary.get('top_3_rules', [])
if top_3:
print(f"\nTop 3规则:")
for i, rule in enumerate(top_3, 1):
print(f" {i}. {rule['name']} ({rule['score']}分, {rule['category']})")
else:
print("\n⚠️ 未匹配到任何星曜组合")
print(" 这可能表示此命盘的星曜配置不在当前100条规则中")
print("\n" + "=" * 80)
print("✅ 测试完成!")
print("=" * 80)
# 保存详细结果
output_file = "/Volumes/sparksverse/huggingface-spaces/astrology-ziwei-api/test_api_1981_result.json"
with open(output_file, 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=2)
print(f"\n📝 详细结果已保存到: test_api_1981_result.json")
except requests.exceptions.Timeout:
print("❌ API调用超时")
except requests.exceptions.RequestException as e:
print(f"❌ 网络错误: {e}")
except Exception as e:
print(f"❌ 错误: {e}")
import traceback
traceback.print_exc()