3.8 KiB
Executable File
3.8 KiB
Executable File
LLM关系抽取测试报告
日期: 2026-04-10 11:53 GMT+8
状态: API验证成功,Python客户端待调试
API连接测试
curl测试 ✅
curl -X POST https://coding.dashscope.aliyuncs.com/v1/chat/completions \
-H "Authorization: Bearer sk-REDACTED" \
-d '{"model": "qwen3.6-plus", "messages": [{"role": "user", "content": "Hello"}]}'
结果: ✅ 成功
{
"model": "qwen3.6-plus",
"choices": [{
"message": {
"content": "Hello! How can I assist you today?",
"reasoning_content": "Here's a thinking process..."
}
}]
}
Python客户端测试 ❌
from openai import OpenAI
client = OpenAI(api_key=api_key, base_url="https://coding.dashscope.aliyuncs.com/v1")
response = client.chat.completions.create(...)
结果: ⏳ 超时/无响应
问题分析
可能原因
- 网络超时: Python客户端默认超时时间可能过长
- 代理设置: 可能需要配置代理
- SSL证书: 可能有证书验证问题
- DNS解析: 域名解析可能较慢
解决方案
方案1: 使用curl替代
import subprocess
import json
def call_llm_with_curl(prompt):
cmd = [
'curl', '-s', '-X', 'POST',
'https://coding.dashscope.aliyuncs.com/v1/chat/completions',
'-H', 'Content-Type: application/json',
'-H', f'Authorization: Bearer {api_key}',
'-d', json.dumps({
'model': 'qwen3.6-plus',
'messages': [{'role': 'user', 'content': prompt}],
'max_tokens': 500
})
]
result = subprocess.run(cmd, capture_output=True, text=True, timeout=60)
return json.loads(result.stdout)
方案2: 配置超时参数
from openai import OpenAI
import httpx
client = OpenAI(
api_key=api_key,
base_url="https://coding.dashscope.aliyuncs.com/v1",
http_client=httpx.Client(timeout=60.0)
)
修复后的提取器
使用curl的实现
import subprocess
import json
def extract_relations_llm_curl(sections, entities, api_key):
"""使用curl调用百炼API"""
relations = []
for sec in sections:
text = sec['text'][:2000]
prompt = f"""从以下文本中提取基因关系...
文本: {text}
格式: gene_id | relation | target | evidence
"""
cmd = [
'curl', '-s', '-X', 'POST',
'https://coding.dashscope.aliyuncs.com/v1/chat/completions',
'-H', 'Content-Type: application/json',
'-H', f'Authorization: Bearer {api_key}',
'-d', json.dumps({
'model': 'qwen3.6-plus',
'messages': [
{'role': 'system', 'content': '你是基因关系提取助手'},
{'role': 'user', 'content': prompt}
],
'temperature': 0.1,
'max_tokens': 500
})
]
try:
result = subprocess.run(cmd, capture_output=True, text=True, timeout=60)
response = json.loads(result.stdout)
content = response['choices'][0]['message']['content']
# 解析关系...
except Exception as e:
print(f"错误: {e}")
return relations
结论
当前状态
| 项目 | 状态 | 说明 |
|---|---|---|
| API Key读取 | ✅ | 修复成功 |
| curl调用 | ✅ | 工作正常 |
| Python客户端 | ❌ | 需要调试 |
| 章节文本保存 | ✅ | 工作正常 |
建议
- 立即: 使用curl替代Python客户端进行LLM调用
- 短期: 调试Python客户端连接问题
- 长期: 封装统一的LLM调用接口
下一步
创建使用curl的修复版提取器,测试完整流程。
报告时间: 2026-04-10 11:58 GMT+8
签名: 🧬🤖