如何让LangChain的ConversationalRetrievalChain从FAISS获取更多数据?
如何让FAISS返回更多相关检索结果
你当前的Langchain ConversationalRetrievalChain默认仅从FAISS中检索4条相关文档,导致生成的职责列表不完整。只需调整检索器的返回数量参数即可解决问题:
修改步骤
- 调整FAISS检索器的返回条数
在创建检索器时,通过search_kwargs参数指定要返回的文档数量k(可根据实际数据量调整):
将代码中创建链的这一段:
chain = ConversationalRetrievalChain.from_llm( llm = ChatOpenAI(temperature=0.0, model='gpt-3.5-turbo-16k', max_tokens=10000), retriever=vectorstore.as_retriever(),verbose=True)
修改为:
chain = ConversationalRetrievalChain.from_llm( llm = ChatOpenAI(temperature=0.0, model='gpt-3.5-turbo-16k', max_tokens=10000), retriever=vectorstore.as_retriever(search_kwargs={"k": 10}),verbose=True)
这里的k值建议设置为大于目标人员的职责条目数,比如你的CSV中James有8条职责,设为10就能确保覆盖所有相关结果。
- 可选:过滤低相关度结果
如果CSV中存在低相关度条目,可同时设置相似度阈值,只返回符合要求的结果:
chain = ConversationalRetrievalChain.from_llm( llm = ChatOpenAI(temperature=0.0, model='gpt-3.5-turbo-16k', max_tokens=10000), retriever=vectorstore.as_retriever( search_type="similarity_score_threshold", search_kwargs={"k": 10, "score_threshold": 0.8} ),verbose=True)
score_threshold取值范围0-1,值越高要求相似度越高,可根据实际情况调整。
修改后,机器人会基于更多的相关文档生成完整的职责列表。
内容的提问来源于stack exchange,提问作者ImiHuman
相关产品推荐
相关产品推荐

