在Langchain CSV加载器中仅获取有限的文档

我正在尝试使用Langchain和OpenAI API对我的CSV文件进行一些查询。我能够运行这段代码,但我不确定为什么结果仅限于CSV中500行中的4条记录。

我在从csv_loader加载后尝试打印,显示了所有记录,所以我在嵌入/向量处理上可能做错了什么。谁能建议我可以尝试什么?

    csv_loader = CSVLoader(csv_file_path)    data = csv_loader.load()    splitter = CharacterTextSplitter(separator = "\n",                                chunk_size=500,                                 chunk_overlap=0,                                length_function=len)    documents = splitter.split_documents(data)    embeddings = OpenAIEmbeddings()    vectorstore = FAISS.from_documents(documents, embeddings)    vectorstore.save_local("faiss_index_constitution")    persisted_vectorstore = FAISS.load_local("faiss_index_constitution", embeddings, allow_dangerous_deserialization=True)    query = "自2024年3月1日以来交易金额的总和是多少?"    retriever = persisted_vectorstore.as_retriever()    chain = RetrievalQA.from_llm(llm=model, retriever=retriever, verbose=True)    chain_input = {"query": query, "context": None}    result = chain(chain_input)    return result

回答:

检索器默认返回的文档数量是4源代码)。您可以通过在search_kwargs中指定k的值来设定要检索的文档数量。

retriever = persisted_vectorstore.as_retriever(    search_kwargs={"k": 50})

参考资料

  1. 指定前k个(LangChain)

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注