You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Langchain实现CSV问答时未返回全部符合条件结果的问题

问题分析与解决

问题现象

处理film.csv时,查询1999年的所有作者,结果只返回了Author A,遗漏了Author C。

核心原因

  • 检索结果数量受限:代码里设置了search_kwargs={"k": 1},这会让Chroma检索器仅返回最匹配的1条文档。1999年有两条对应记录,检索器只取了其中一条,导致LLM无法获取到Author C的信息。
  • CSV格式不标准:当前的film.csv每行都是key:value的键值对拼接结构,不符合标准CSV规范。标准CSV需要先定义表头(如year,author,film,Description),再逐行填写对应字段值,原格式会导致CSVLoader解析出错,可能把整行内容当成单一字段处理,影响检索匹配的准确性。

修复步骤

1. 调整检索返回数量

将search_kwargs={"k": 1}修改为search_kwargs={"k": 2}(或更大数值,确保能覆盖所有1999年的记录):

chain = ConversationalRetrievalChain.from_llm(ChatOpenAI(temperature=0.3), 
                                   retriever=search.as_retriever(search_kwargs={"k": 2}),
                                   return_source_documents=True)

2. 修正CSV文件格式

将film.csv改为标准CSV格式:

year,author,film,Description
1999,A,FilmA,"ac abs moon"
1998,B,FilmB,"yes"
1999,C,filmC,"No"
1996,D,FilmD,"MUST SEE"

内容的提问来源于stack exchange,提问作者Yannick Serra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 22:05:09