Pinecone 是一款面向生产级 AI 应用的托管向量数据库,以 SaaS 方式提供,具备自动扩缩容能力,官方称可扩展至数十亿向量。其定位为无需自行管理基础设施的向量存储与检索服务,适用于生产环境的 RAG(检索增强生成)应用、对低延迟敏感(官方标注 p95 延迟 <100ms)以及需要混合检索的场景。
主要能力
- 托管与自动扩缩容:全托管的 SaaS 服务,支持无服务器(serverless)与基于 Pod 两种索引模式。
- 混合检索:同时支持稠密向量与稀疏向量,可通过 alpha 参数在稀疏与稠密之间加权(0 为稀疏,1 为稠密,0.5 为混合)。
- 元数据过滤:支持精确匹配、比较运算($gt、$gte、$lt、$lte、$ne)、逻辑运算($and、$or)以及 $in 等操作。
- 命名空间:可按用户或租户对数据进行分区隔离,并可查询指定命名空间。
- 索引管理:支持创建、描述、查看统计、列出与删除索引,以及按 ID、按过滤条件或整个命名空间删除向量。
- 框架集成:提供与 LangChain、LlamaIndex 的集成方式。
使用方式(快速开始) 安装: pip install pinecone-client
基本流程(官方示例):
- 初始化:pc = Pinecone(api_key="your-api-key")
- 创建索引:pc.create_index(name="my-index", dimension=1536, metric="cosine", spec=ServerlessSpec(cloud="aws", region="us-east-1"));维度必须与嵌入模型一致,metric 可选 cosine、euclidean、dotproduct。也可使用 PodSpec 创建基于 Pod 的索引。
- 连接索引:index = pc.Index("my-index")
- 写入向量:index.upsert(vectors=[{"id": "vec1", "values": [...], "metadata": {"category": "A"}}, ...]),官方建议批量写入(每批 100-200 条)。
- 查询:index.query(vector=[...], top_k=5, include_metadata=True),可加 filter 过滤、namespace 指定命名空间。
- 混合查询:在 query 中传入 sparse_vector 并设置 alpha。
- 删除:index.delete(ids=[...])、index.delete(filter={...})、index.delete(delete_all=True, namespace="test") 等。
适用场景
- 需要托管、无服务器向量数据库的生产 RAG 应用。
- 需要自动扩缩容、不希望自行管理基础设施。
- 对低延迟有要求(官方标注 <100ms)。
- 需要稠密 + 稀疏混合检索。
限制与替代
- 若需自托管开源方案,官方列出 Chroma;若仅做离线纯相似度检索,列出 FAISS;若需自托管且功能更多,列出 Weaviate。
性能(官方给出)
- Upsert:约 50-100ms/批
- Query p50:约 50ms(取决于索引规模)
- Query p95:约 100ms(SLA 目标)
- 元数据过滤:额外约 10-20ms 开销
定价(官方标注,截至 2025 年)
- 无服务器:每百万读单位 $0.096;每百万写单位 $0.06;每 GB 存储每月 $0.06。
- 免费额度:1 个无服务器索引、10 万条 1536 维向量,适合原型验证。
最佳实践(官方建议)
- 使用无服务器模式,自动扩缩容且更具成本效益。
- 批量写入(每批 100-200 条)提升效率。
- 添加元数据以支持过滤;使用命名空间按用户/租户隔离数据。
- 监控用量(查看 Pinecone 控制台)、优化过滤字段、使用混合检索提升质量。
- 设置与嵌入模型匹配的维度、定期备份重要数据。
资源
- 官网:https://www.pinecone.io
- 文档:https://docs.pinecone.io
- 控制台:https://app.pinecone.io
- 定价:https://www.pinecone.io/pricing