Files
2026-07-10 17:59:59 +08:00

4.7 KiB
Executable File

V12.1 Fixed 修复总结报告

日期: 2026-04-10 11:19 GMT+8
状态: 部分成功,需要修复


执行结果

✅ 成功的部分

项目 结果 状态
章节提取 19个章节 ✅
基因实体提取 25个基因 ✅
章节文本保存 大部分成功 ✅
API Key读取 成功 ✅

❌ 失败的部分

项目 问题 状态
LLM关系抽取 API 401错误 ❌
Results章节 只有11字符 ❌
规则关系 0个关系 ❌

问题分析

问题1: API 401错误

错误信息:

Error code: 401 - {'error': {'code': 'invalid_api_key', 'message': 'invalid access token or token expired'}}

可能原因:

  1. API Key格式问题(包含换行符或空格)
  2. 路径读取问题
  3. Token确实过期

验证:

# 测试脚本显示API调用成功
python3 test_api.py
# 输出: ✅ API调用成功

结论: API Key本身有效,问题在提取器代码中的读取逻辑

问题2: Results章节只有11字符

现象:

- Results (11 chars) ❌

原因分析: 章节边界识别算法有问题,Results章节的结束位置被错误设置

解决方案: 改进章节边界识别,使用更精确的模式匹配

问题3: 规则关系为0

原因:

  1. 正则表达式可能不够全面
  2. 表达关系描述方式多样
  3. 需要更多模式匹配

修复方案

修复1: API Key读取

# 改进的API Key读取
def load_api_key():
    # 1. 环境变量
    key = os.getenv('DASHSCOPE_API_KEY')
    if key:
        return key.strip()
    
    # 2. .env文件
    env_path = Path('/home/xia-lab/gene-family-mas-v2/.env')
    if env_path.exists():
        with open(env_path) as f:
            for line in f:
                if line.startswith('DASHSCOPE_API_KEY='):
                    return line.split('=', 1)[1].strip().strip('"\'')
    
    return None

修复2: 章节边界识别

# 改进的章节识别
section_patterns = [
    (r'^(\d+)\.\s+([A-Z][^\n]{2,100})$', 1),  # 限制标题长度
    (r'^(\d+\.\d+)\.\s+([A-Z][^\n]{2,100})$', 2),
]

# 更好的边界设置
for i, (title, level, start) in enumerate(matches):
    end = matches[i+1][2] if i < len(matches)-1 else len(full_text)
    # 确保最小长度
    if end - start < 100:
        print(f"警告: {title} 章节过短 ({end-start} chars)")

修复3: 关系抽取模式

# 更多表达关系模式
expression_patterns = [
    (r'(SlSUT\d+)\s+was\s+highly\s+expressed\s+in\s+([\w\s,]+)', 'highly_expressed_in'),
    (r'(SlSUT\d+)\s+showed\s+(?:high|low)\s+expression\s+in\s+([\w\s,]+)', 'expressed_in'),
    (r'(SlSUT\d+)\s+is\s+expressed\s+in\s+([\w\s,]+)', 'expressed_in'),
    (r'expression\s+of\s+(SlSUT\d+)\s+was\s+detected\s+in\s+([\w\s,]+)', 'expressed_in'),
    (r'(SlSUT\d+)\s+was\s+expressed\s+in\s+([\w\s,]+)', 'expressed_in'),
]

测试结果对比

指标 V12.1 Fixed V12.1 Fixed V2 (预期)
章节数 19 19
基因数 25 25
Results章节 11 chars ❌ >1000 chars ✅
规则关系 0 >5
LLM关系 0 (401错误) >10

下一步行动

立即执行

  1. 修复API Key读取逻辑

    • 添加.strip()去除空白字符
    • 添加调试输出确认Key正确读取
  2. 修复章节边界识别

    • 改进正则表达式
    • 添加章节长度验证
  3. 增加关系抽取模式

    • 添加更多正则表达式
    • 针对Expression章节专门处理

测试验证

# 1. 测试API Key
cd /home/xia-lab/gene-family-mas-v2
python3 test_api.py

# 2. 运行修复版提取器
python3 test_v12_1_fixed_v2.py

# 3. 验证结果
cat /tmp/v12_1_v2_result.json | jq '.metadata'

关键发现

章节文本保存 ✅

成功验证:

{
  "title": "Introduction",
  "char_count": 3515,
  "text_full": "1. Introduction\nSugar, which determines..."
}

百炼API配置 ✅

Base URL: https://coding.dashscope.aliyuncs.com/v1
Model: qwen3.6-plus
API Key: 已配置 (测试通过)

结论

修复状态

功能 状态 备注
章节文本保存 ✅ 成功 核心修复完成
章节提取 ⚠️ 部分成功 Results章节有问题
基因提取 ✅ 成功 25个基因
LLM关系抽取 ❌ 失败 需要修复API Key读取
规则关系 ❌ 失败 需要增加模式

建议

  1. 短期: 修复API Key读取和章节边界识别
  2. 中期: 增加更多关系抽取模式
  3. 长期: 批量处理多论文构建知识图谱

报告时间: 2026-04-10 11:25 GMT+8
签名: 🧬🤖