从包含多个 pdf 文件的 Pinecone 获取基于主题的数据

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

我正在尝试构建一个聊天机器人,我需要机器人根据存储在矢量数据库(如松果)中的数据响应用户查询。在这里我想存储不同主题的pdf,例如特定品牌的不同车型。如果用户询问有关模型的特定问题,如何从松果获得正确的结果?

使用SimpleDirectoryLoader加载多个pdf并存储在pinecone中,并使用查询引擎获取相似的矢量数据作为响应。

from llama_index.core import VectorStoreIndex,SimpleDirectoryReader, StorageContext
from llama_index.vector_stores.pinecone import PineconeVectorStore

documents=SimpleDirectoryReader("direcory_name").load_data()

vector_store = PineconeVectorStore(pinecone_index=pinecone_index)
storage_context = StorageContext.from_defaults(vector_store=vector_store)
index = VectorStoreIndex.from_documents(documents=documents, storage_context=storage_context)

from llama_index.core.retrievers import VectorIndexRetriever
from llama_index.core.query_engine import RetrieverQueryEngine
from llama_index.core.indices.postprocessor import SimilarityPostprocessor

retriever=VectorIndexRetriever(index=index,similarity_top_k=4)
postprocessor=SimilarityPostprocessor(similarity_cutoff=0.80)

query_engine=RetrieverQueryEngine(retriever=retriever,
                              node_postprocessors=[postprocessor])
python langchain large-language-model llama-index pinecone
1个回答
0
投票

这不是一个完整的证明解决方案,这些完全基于我在 llamaindex 上的知识。

  1. 您可以尝试以块的形式添加数据,我的意思是有意义的分块,您可以探索分块策略。

  2. 您可以尝试将元数据与要更新插入松果矢量数据库的数据一起添加。这可用于在提取块时添加元数据过滤器,并将其提供给查询检索器。

  3. 实验块大小的变化,尝试不同的相似性技术、模型参数、节点之间的关系、检索器类型等

这些只是开发聊天机器人按照您的期望工作的基础。您可以从 llama_index 的文档和示例笔记本中探索更多信息。他们在 github 上有相当多的笔记本。

© www.soinside.com 2019 - 2024. All rights reserved.