ConversationalRetrievalChain.from_llm怎么修改从向量数据库中搜索到的文本的记录数

在从向量数据库中查询时,有时候会查询到多条重复的文本记录,这个该怎么调整相似度,或者搜索时匹配到的文件数的配置呢?

代码:

qa = ConversationalRetrievalChain.from_llm(llm, rds.as_retriever(),
                                           return_source_documents=True, verbose=True,
                                           combine_docs_chain_kwargs = {"prompt": PromptTemplate(input_variables=["context", "question"], template=QA_PROMP_ALL_KNOWLEDGE)})



chat_history = []
query = "请讲解一下出师表"
result = qa({"question": query, "chat_history": chat_history})
chat_history.append((query, result["answer"]))
print('答案:', result["answer"])
print('视频:', row_map[result["source_documents"][0].metadata["row"]])

搜索到的文本列表:

要修改从向量数据库中搜索到的文本记录数,您可以使用ConversationalRetrievalChainvector_db_kwargs参数来设置search_distance参数。 search_distance参数决定了检索到的文本记录的数量。

下面是一个示例:

vector_db_kwargs = {"search_distance": 0.5}

qa = ConversationalRetrievalChain.from_llm(OpenAI(temperature=0), vectorstore.as_retriever(), vector_db_kwargs=vector_db_kwargs)

在上面的示例中,search_distance被设置为0.5,这意味着只检索到与查询相关性达到0.5的文本记录。您可以根据需要调整search_distance的值来控制搜索到的文本记录的数量.