[Question]使用 Ollama 本地模型时请求超时,问题提取任务运行完毕但生成问题数为0
Author: Waint0311Created Apr 11, 2026Updated May 1, 2026
Labelsquestion
问题描述
使用 Ollama 本地部署模型(qwen2.5:27b Q4_K_M)进行问题提取时,任务可以 正常运行完毕(不报错、不崩溃),但所有文本块均未能提取出任何问题,生成 问题数为 0。
即使已对以下已知问题进行了修复,该问题依然存在:
- 已将 server.js 中 headersTimeout/keepAliveTimeout/requestTimeout 设为 600 秒(解决 Node.js v24 undici 60 秒超时问题)
- 已修复 lib/llm/common/util.js 中 extractJsonFromLLMOutput 在解析失败时 返回 undefined 导致的崩溃(改为返回 [])
- 已在 lib/services/questions/index.js 中 randomRemoveQuestionMark 函数 添加空值保护
修复上述问题后重新运行,任务不再崩溃,但依然提取不出问题(返回0条)。 最终用户不得不绕过 EasyDataset,自行编写脚本直接调用 Ollama API 才成功 提取到问题,说明模型本身是可以正常工作的。
桌面设备
- 操作系统:Ubuntu 24.04
- 浏览器:Chrome
- Easy Dataset 版本:1.7.3
使用模型
- 模型提供商:Ollama(本地部署)
- 模型名称:qwen2.5:27b(Q4_K_M,17GB)
复现步骤
- Ubuntu 24.04,Node.js v24.11.1,Ollama 已部署 qwen2.5:27b(Q4_K_M)。
- 已按已知方案修复超时和空值崩溃问题。
- 上传文本文件,完成分块(共81个文本块)。
- 进入"生成问题"页面,使用自定义提示词,启动全量提取任务。
- 任务正常运行完毕,无报错、无崩溃。
- 任务结束后,查看问题数量:0条。
- 使用同一模型、同一提示词,通过脚本直接调用 Ollama API: 成功提取出188个问题,说明模型和提示词本身均无问题。
预期结果
任务正常完成后,应在"问题"页面中看到提取出的问题列表,而非空列表。
其他相关信息
- Node.js 版本:v24.11.1
- 绕过 EasyDataset 直接调 Ollama API 可正常出结果,说明问题出在 EasyDataset 的请求发送、响应解析或结果写入流程中。
- 怀疑方向:流式响应(streaming)的读取/拼接逻辑在 Node.js v24 下存在 兼容性问题,导致响应内容被截断或丢弃,最终 JSON 解析失败返回空数组。
- 相关文件:lib/llm/common/ollama.js、lib/llm/common/util.js
Source: ConardLi/easy-dataset