Files
PlantAI-rag-new/agent/legacy-rag/scripts/utils/expand_selective.py
T
jerryandClaude Fable 5 2f82c4a8dc P4/M5: agent/legacy-rag 源码迁移(449 模块 191K 行)+ 影子 7911/7912 冒烟
- 按生产 7900 容器黄金清单迁移(compile.manifest 449 条目,0 缺失)
- 入口双态:api.app(生产同源 3 路由)/ api.main(裁剪 11 路由族 91 路径)
- 修复:advanced/__init__ 空文件(包标记误覆盖,已从主项目恢复)
- 修复:api/rag_routes.py 跨环境 site-packages 注入改 LEGACY_GF_SITE_PACKAGES 门控
- 修复:scripts/utils 缺失(动态加载 reasoning_engine)
- 影子验证:kg/stats 数据连通(6.2s,与 7900 同源 normalized 后端)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 14:20:41 +08:00

74 lines
2.3 KiB
Python
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env python3
"""
选择性展开 - 只展开高置信度的表达关系
"""
import json
def main():
print("=" * 70)
print("Selective Expansion - High Confidence Only")
print("=" * 70)
# 加载当前结果
with open('evaluation/auto_results/pmid31286919_ultimate.json') as f:
current = json.load(f)
# 找到家族级表达关系
family_expression = []
for r in current['relations']:
rel_type = r.get('type', '')
source = r.get('source', '')
if rel_type == 'expressed_in' and source == 'FtSPL':
family_expression.append(r)
print(f"\nFound {len(family_expression)} family-level expression relations")
# 只展开 flower 表达(论文明确说"Most genes expressed in flowers")
# 选择 Group_VI 基因(11个基因,论文明确说在 flower 中高表达)
group_vi_genes = ['FtSPL2', 'FtSPL3', 'FtSPL5', 'FtSPL6', 'FtSPL7',
'FtSPL8', 'FtSPL9', 'FtSPL10', 'FtSPL15']
expanded_count = 0
existing_rels = {(r.get('source'), r.get('type'), r.get('target'))
for r in current['relations']}
# 只为 Group_VI 基因添加 flower 表达
for gene_symbol in group_vi_genes:
rel_key = (gene_symbol, 'expressed_in', 'flower')
if rel_key not in existing_rels:
new_rel = {
"source": gene_symbol,
"target": "flower",
"type": "expressed_in",
"confidence": "high",
"note": "Group_VI genes highly expressed in flowers"
}
current['relations'].append(new_rel)
existing_rels.add(rel_key)
expanded_count += 1
print(f"\nAdded {expanded_count} selective expression relations")
# 保存
output_path = 'evaluation/auto_results/pmid31286919_selective.json'
with open(output_path, 'w') as f:
json.dump(current, f, indent=2)
print(f"\nTotal relations: {len(current['relations'])}")
print(f"✓ Saved to: {output_path}")
# 评估
print("\n" + "=" * 70)
import subprocess
subprocess.run([
'python3', 'evaluation/compare_extraction.py',
'--gold', 'evaluation/gold_standard/pmid31286919_layer2_full.json',
'--pred', output_path
])
if __name__ == "__main__":
main()