You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检查Pinecone命名空间的向量是否完成上传(替代time.sleep)

解决Pinecone向量上传完成的检查问题

可以通过查询Pinecone索引的实时统计数据替代time.sleep(),直接验证目标namespace的向量数量是否与待上传文档总数一致,确保上传完成后再返回PineconeVectorStore。

实现步骤

  1. 提前获取待上传文档总数(len(docs))作为预期向量数;
  2. 循环调用Pinecone索引的describe_index_stats()方法,获取目标namespace的实际向量数;
  3. 当实际数量等于预期数量时结束等待,超时未达标则抛出异常或做其他处理。

修改后的代码

from typing import List
import time
from langchain_core.documents import Document
from langchain_openai import OpenAIEmbeddings
from langchain_pinecone import PineconeVectorStore
import pinecone

# 初始化Pinecone客户端(替换为你的API密钥和环境)
pinecone.init(api_key="YOUR_PINECONE_API_KEY", environment="YOUR_PINECONE_ENV")

embed_model = OpenAIEmbeddings(
    model='text-embedding-3-small'
)

def upload_data(docs: List[Document], embed_model, index_name: str, namespace: str) -> PineconeVectorStore:
    expected_vector_count = len(docs)
    vector_store = PineconeVectorStore.from_documents(
        documents=docs,
        embedding=embed_model,
        index_name=index_name,
        namespace=namespace
    )
    
    pc_index = pinecone.Index(index_name)
    check_interval = 1  # 每秒检查一次
    max_wait_time = 30  # 最长等待30秒,可按需调整
    elapsed_time = 0

    while elapsed_time < max_wait_time:
        index_stats = pc_index.describe_index_stats()
        # 获取目标namespace的当前向量数,不存在则默认0
        current_vector_count = index_stats['namespaces'].get(namespace, {}).get('vector_count', 0)
        
        if current_vector_count == expected_vector_count:
            break
        
        time.sleep(check_interval)
        elapsed_time += check_interval
    else:
        # 超时处理,可根据业务需求调整
        raise TimeoutError(
            f"向量上传超时:预期{expected_vector_count}个,当前仅上传{current_vector_count}个"
        )
    
    return vector_store

注意事项

  • 如果文档存在重复ID,上传后实际向量数会小于len(docs),需提前处理ID去重逻辑,或调整预期数量的计算方式;
  • 可根据索引规模和网络情况,调整check_interval(检查间隔)和max_wait_time(最长等待时间);
  • 该方法依赖Pinecone实时统计数据,比固定时长的time.sleep()更可靠,能确保所有向量完成上传后再执行后续逻辑。

内容的提问来源于stack exchange,提问作者H.Sdq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 20:10:11