Spaces:
Running
Running
th commited on
Commit ·
5cdab55
1
Parent(s): e43f000
🔧 v3.10.0 紧急修复 - 添加缺失的辅助函数
Browse files问题:
- star_combination_rules.py缺少6个辅助函数
- 导致ImportError: cannot import name 'get_rule_by_id'
- HuggingFace部署失败
修复:
- ✅ 添加 get_rule_by_id() - 根据ID获取规则
- ✅ 添加 get_rules_by_category() - 根据分类获取规则
- ✅ 添加 get_rules_by_stars() - 根据星曜搜索规则
- ✅ 添加 get_all_rule_ids() - 获取所有规则ID
- ✅ 添加 get_rules_count() - 获取规则总数
- ✅ 添加 get_rules_by_palace() - 根据宫位获取规则
- ✅ 添加测试代码
测试:
- ✅ 本地导入测试通过
- ✅ 所有220条规则正常访问
- ✅ 函数调用测试成功
🦊 Generated with Sisi
- star_combination_rules.py +80 -0
star_combination_rules.py
CHANGED
|
@@ -5568,3 +5568,83 @@ STAR_COMBINATION_RULES = [
|
|
| 5568 |
# - 性格特质: 22条 (10.0%)
|
| 5569 |
# - 人际交往: 19条 (8.6%)
|
| 5570 |
# - 健康状况: 15条 (6.8%)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5568 |
# - 性格特质: 22条 (10.0%)
|
| 5569 |
# - 人际交往: 19条 (8.6%)
|
| 5570 |
# - 健康状况: 15条 (6.8%)
|
| 5571 |
+
|
| 5572 |
+
|
| 5573 |
+
# ============================================================================
|
| 5574 |
+
# 辅助函数
|
| 5575 |
+
# ============================================================================
|
| 5576 |
+
|
| 5577 |
+
def get_rule_by_id(rule_id: str) -> Optional[Dict[str, Any]]:
|
| 5578 |
+
"""根据ID获取规则"""
|
| 5579 |
+
for rule in STAR_COMBINATION_RULES:
|
| 5580 |
+
if rule['id'] == rule_id:
|
| 5581 |
+
return rule
|
| 5582 |
+
return None
|
| 5583 |
+
|
| 5584 |
+
|
| 5585 |
+
def get_rules_by_category(category: RuleCategory) -> List[Dict[str, Any]]:
|
| 5586 |
+
"""根据分类获取规则"""
|
| 5587 |
+
return [rule for rule in STAR_COMBINATION_RULES if rule['category'] == category]
|
| 5588 |
+
|
| 5589 |
+
|
| 5590 |
+
def get_rules_by_stars(stars: List[str]) -> List[Dict[str, Any]]:
|
| 5591 |
+
"""根据星曜名称搜索规则"""
|
| 5592 |
+
matched_rules = []
|
| 5593 |
+
for rule in STAR_COMBINATION_RULES:
|
| 5594 |
+
required_stars = set(rule['stars_required'])
|
| 5595 |
+
input_stars = set(stars)
|
| 5596 |
+
if required_stars.issubset(input_stars):
|
| 5597 |
+
matched_rules.append(rule)
|
| 5598 |
+
return matched_rules
|
| 5599 |
+
|
| 5600 |
+
|
| 5601 |
+
def get_all_rule_ids() -> List[str]:
|
| 5602 |
+
"""获取所有规则ID"""
|
| 5603 |
+
return [rule['id'] for rule in STAR_COMBINATION_RULES]
|
| 5604 |
+
|
| 5605 |
+
|
| 5606 |
+
def get_rules_count() -> int:
|
| 5607 |
+
"""获取规则总数"""
|
| 5608 |
+
return len(STAR_COMBINATION_RULES)
|
| 5609 |
+
|
| 5610 |
+
|
| 5611 |
+
def get_rules_by_palace(palace_type: str) -> List[Dict[str, Any]]:
|
| 5612 |
+
"""根据宫位类型获取规则"""
|
| 5613 |
+
return [rule for rule in STAR_COMBINATION_RULES if palace_type in rule['palace_types']]
|
| 5614 |
+
|
| 5615 |
+
|
| 5616 |
+
# ============================================================================
|
| 5617 |
+
# 测试代码
|
| 5618 |
+
# ============================================================================
|
| 5619 |
+
|
| 5620 |
+
if __name__ == '__main__':
|
| 5621 |
+
print("=" * 70)
|
| 5622 |
+
print("星曜组合断语库测试")
|
| 5623 |
+
print("=" * 70)
|
| 5624 |
+
|
| 5625 |
+
print(f"\n总规则数: {get_rules_count()}")
|
| 5626 |
+
|
| 5627 |
+
print("\n【按分类统计】:")
|
| 5628 |
+
for category in RuleCategory:
|
| 5629 |
+
rules = get_rules_by_category(category)
|
| 5630 |
+
print(f" {category.value}: {len(rules)}条")
|
| 5631 |
+
|
| 5632 |
+
print("\n【测试规则查询】:")
|
| 5633 |
+
print("\n1. 查询紫微天府组合:")
|
| 5634 |
+
rules = get_rules_by_stars(["紫微", "天府"])
|
| 5635 |
+
for rule in rules:
|
| 5636 |
+
print(f" - {rule['name']} ({rule['id']})")
|
| 5637 |
+
print(f" {rule['interpretations']['core_meaning']}")
|
| 5638 |
+
|
| 5639 |
+
print("\n2. 查询命宫相关规则:")
|
| 5640 |
+
rules = get_rules_by_palace("命宫")
|
| 5641 |
+
print(f" 命宫相关规则: {len(rules)}条")
|
| 5642 |
+
|
| 5643 |
+
print("\n3. 查询火贪格:")
|
| 5644 |
+
rule = get_rule_by_id("SC081")
|
| 5645 |
+
if rule:
|
| 5646 |
+
print(f" 名称: {rule['name']}")
|
| 5647 |
+
print(f" 评分: {rule['compatibility_score']}")
|
| 5648 |
+
print(f" 核心: {rule['interpretations']['core_meaning']}")
|
| 5649 |
+
|
| 5650 |
+
print("\n星曜组合断语库测试完成!🔮✨")
|