快速结论:该报错出现在 RAGFlow 检索测试调用 Xinference rerank 模型的环节:Xinference 返回的响应中没有 results 字段,而 XInferenceRerank.similarity() 直接按 res["results"] 取值,于是抛出 KeyError: 'results'。优先排查 Xinference rerank 服务的响应内容,并先尝试重启相关服务。
适用环境:RAGFlow 镜像版本 v0.17.2;操作系统 CentOS 7;使用 Xinference 提供的 rerank 模型;知识库数据已解析完成。Issue 中日志显示检索请求会经本地 Ollama embeddings 接口和 Elasticsearch 完成,但这部分不是本次报错的直接原因。
最快修复方案:暂无确认的一步修复方案。Issue 中报告者在关闭并重新启动 RAGFlow 后恢复正常,可将此作为“可优先尝试”的处理方式;如果重启后仍复现,需要进一步检查 Xinference rerank 接口的实际返回内容。
注意事项:重启恢复属于报告者的个案结果,Issue 未给出根因结论,也未确认是否与版本、Xinference 配置或服务状态有关。Issue 已关闭,官方建议在较新版本上如仍复现,携带相关日志和 Xinference 响应细节重新提交。
问题场景
用户在 RAGFlow v0.17.2 中配置了 Xinference rerank 模型。流程为:添加知识库数据并等待解析成功后,在知识库的检索测试(retrieval test)里使用该 rerank 模型执行搜索,请求进入 /v1/chunk/retrieval_test 后触发异常。
报错原文
ERROR 611 'results'
Traceback (most recent call last):
File "/ragflow/api/apps/chunk_app.py", line 308, in retrieval_test
ranks = settings.retrievaler.retrieval(question, embd_mdl, tenant_ids, kb_ids, page, size,
File "<@beartype(rag.nlp.search.Dealer.retrieval) at 0x7f89fc33a200>", line 35, in retrieval
File "/ragflow/rag/nlp/search.py", line 366, in retrieval
sim, tsim, vsim = self.rerank_by_model(rerank_mdl,
File "<@beartype(rag.nlp.search.Dealer.rerank_by_model) at 0x7f89fc33a0e0>", line 35, in rerank_by_model
File "/ragflow/rag/nlp/search.py", line 327, in rerank_by_model
vtsim, _ = rerank_mdl.similarity(query, [rmSpace(" ".join(tks)) for tks in ins_tw])
File "<@beartype(api.db.services.llm_service.LLMBundle.similarity) at 0x7f89ece9dfc0>", line 50, in similarity
File "/ragflow/api/db/services/llm_service.py", line 256, in similarity
sim, used_tokens = self.mdl.similarity(query, texts)
File "<@beartype(rag.llm.rerank_model.XInferenceRerank.similarity) at 0x7f89eceb5480>", line 50, in similarity
File "/ragflow/rag/llm/rerank_model.py", line 237, in similarity
for d in res["results"]:
KeyError: 'results'
原因分析
可能原因:RAGFlow 调用 Xinference rerank 模型时,收到的响应不是代码所期望的包含 results 字段的结构。由于 rerank_model.py 中直接执行 for d in res["results"],一旦响应缺少该键就会抛出 KeyError: 'results'。
Issue 讨论中维护者曾请报告者修改代码并打印 Xinference 的响应,但报告者表示在 ragflow-server 日志和 Xinference 日志中都看不到 print(res) 的内容。报告者随后关闭 RAGFlow、添加日志并重新打开后恢复正常,因此实际触发条件尚不明确;重启有效可能说明问题与运行中服务状态或响应异常有关,但 Issue 中没有进一步证据。
环境排查
- 确认 RAGFlow 版本:Issue 中为 v0.17.2,若为其他版本需以对应版本代码为准。
- 确认 rerank 模型配置:是否为 Xinference 提供的 rerank 模型,模型服务是否正常响应。
- 确认 Xinference rerank 接口的返回结构:是否包含
results字段;Issue 中未给出正常响应示例。 - 确认操作系统环境:Issue 中为 CentOS 7。
- 确认检索测试时的完整服务日志:既有 ragflow-server 日志,也有 Xinference 侧日志;报告者未能在两处看到预期的调试输出。
解决步骤
- 先关闭 RAGFlow 相关服务,再重新启动,然后重新执行知识库检索测试。报告者通过这一操作后恢复正常,可优先尝试。
- 若重启后仍出现
KeyError: 'results',检查 Xinference rerank 模型服务是否在线、配置是否仍指向可用模型。 - 参照维护者建议,在
ragflow/rag/llm/rerank_model.py的XInferenceRerank.similarity()中,于res["results"]取值前打印 Xinference 的原始响应,确认返回中实际包含哪些字段。Issue 未提供修改后的代码,具体打印语句需自行编写。 - 若在 ragflow-server 日志中看不到打印内容,需确认代码修改是否已加载到实际运行容器/进程中,例如是否需要重启服务后才会生效。
- 若在较新版本上仍复现,按官方建议新建 Issue,并附上相关日志及 Xinference 的响应细节。
验证方法
重新发起知识库检索测试,确认不再出现 KeyError: 'results',且检索测试能正常返回结果。若仅重启后恢复,也应再执行一次检索测试以确认可稳定复现或稳定通过;若仍失败,则通过打印的 Xinference 原始响应确认是否缺少 results 字段。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。
![[Question]: Welcome to nginx when launching from source](https://www.chat-gpts.plus/wp-content/uploads/2026/11/7401-7e19626b-768x403.jpg)
![[Question]: The retrieval testing of the knowledge base encountered an issue when flipping through the retrieved results.](https://www.chat-gpts.plus/wp-content/uploads/2026/11/8555-c8061813-768x403.jpg)
