使用LlamaIndex与Pinecone进行向量存储和查询

在现代AI的应用中,向量存储和高效查询变得尤为重要。本文将介绍如何使用LlamaIndex与Pinecone进行向量存储和查询。我们将通过示例演示如何创建Pinecone索引,加载文档并构建向量存储,然后进行查询。

创建Pinecone索引

首先,我们需要配置Pinecone并创建一个索引。

# 引入必要库
from pinecone import Pinecone, ServerlessSpec
import os

# 设置API密钥
os.environ["PINECONE_API_KEY"] = "<Your Pinecone API key, from app.pinecone.io>"

# 初始化Pinecone
api_key = os.environ["PINECONE_API_KEY"]
pc = Pinecone(api_key=api_key)

# 创建索引
pc.create_index(
    name="quickstart",
    dimension=1536,
    metric="euclidean",
    spec=ServerlessSpec(cloud="aws", region="us-west-2"),
)

pinecone_index = pc.Index("quickstart")

<Your Pinecone API key, from app.pinecone.io>替换为你的Pinecone API密钥。

加载文档,构建PineconeVectorStore和VectorStoreIndex

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

# 创建数据目录并下载示例数据
!mkdir -p 'data/paul_graham/'
!wget 'https://raw.githubusercontent.com/run-llama/llama_index/main/docs/docs/examples/data/paul_graham/paul_graham_essay.txt' -O 'data/paul_graham/paul_graham_essay.txt'

# 加载文档
documents = SimpleDirectoryReader("./data/paul_graham").load_data()

# 初始化向量存储
vector_store = PineconeVectorStore(pinecone_index=pinecone_index)
storage_context = StorageContext.from_defaults(vector_store=vector_store)

# 从文档构建索引
index = VectorStoreIndex.from_documents(documents, storage_context=storage_context)

这里我们从简单的目录中读取文本文件并加载数据,然后使用这些数据构建向量存储和索引。

查询索引

接下来,我们将展示如何查询构建好的索引。

# 设置日志级别为DEBUG以获得更详细的输出
query_engine = index.as_query_engine()
response = query_engine.query("What did the author do growing up?")

# 显示查询结果
from IPython.display import Markdown, display
display(Markdown(f"<b>{response}</b>"))

查询结果将会显示作者在成长过程中所做的事情。

可能遇到的错误

  1. API 密钥未设置: 如果API密钥未设置,将会抛出EnvironmentError
  2. 索引创建失败: 可能由于API密钥无效或Pinecone服务问题导致索引创建失败。
  3. 文档加载失败: 如果指定路径的文档不存在或权限问题,将导致文档加载失败。

通过以上步骤,我们可以高效地创建向量存储并进行查询。如果你觉得这篇文章对你有帮助,请点赞,关注我的博客,谢谢!

参考资料:

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值