Langchain CSVLoader

问题描述 投票:0回答:1

不是一个编码问题,而是一个文档遗漏,目前网上没有提到过。使用 Langchain CSVLoader 时,哪一列通过我正在使用的 OpenAI 嵌入进行矢量化?

我问这个问题是因为查看下面的代码,我对示例 CSV 进行了矢量化,进行了搜索(在 Pinecone 上)并始终收到了不相似的响应。如何知道 Langchain 实际识别哪一列进行矢量化?

loader = CSVLoader(file_path=file, metadata_columns=['col2', 'col3', 'col4','col5'])
langchain_docs = loader.load()
text_splitter = RecursiveCharacterTextSplitter(chunk_size=2000, chunk_overlap=100)
docs = text_splitter.split_documents(langchain_docs)
for doc in docs:
    doc.metadata.pop('source')
    doc.metadata.pop('row')
my_index = pc_store.from_documents(docs, embeddings, index_name=PINECONE_INDEX_NAME)

我假设 CSVLoader 然后识别 col1 进行矢量化。但是,松果的搜索很糟糕,让我认为其他列正在被矢量化。

python loader langchain pinecone
1个回答
0
投票

您可以检查

docs
变量,这是包含内容和元数据属性的列表的文档对象。

向量化使用Document的内容,更详细的内容可以参考langchain csv_loader.py源代码(第98行)。

content = "\n".join(
                f"{k.strip()}: {v.strip() if v is not None else v}"
                for k, v in row.items()
                if k not in self.metadata_columns
            )
metadata = {"source": source, "row": i}
© www.soinside.com 2019 - 2024. All rights reserved.