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

Python Langchain Pinecone库list_indexes()函数报错问题求助

LangChain Pinecone中list_indexes()函数无法正常工作的问题

我在使用Python的LangChain Pinecone库时,遇到list_indexes()函数无法正常工作的问题,以下是我的代码:

import pinecone
from pinecone import Pinecone, ServerlessSpec
from langchain.vectorstores import Pinecone as pc1
import os

# 初始化Pinecone
pc = Pinecone(api_key=os.getenv("PINECONE_API_KEY"))

# 创建新的Pinecone索引(已注释)
#cloud = os.getenv("PINECONE_ENV_KEY")
#region = "us-central1"
#spec = ServerlessSpec(cloud=cloud, region=region)
#pc.create_index(name="langchain", dimension=1536, metric="cosine", spec=spec)

# 指定索引名(假设索引已创建)
index_name = "langchain"

# OpenAI的text-embedding-ada-002模型使用1536维度,这里使用LangChain的Pinecone库
if index_name not in pc.list_indexes().names():
    print("No index")
else:
    db_Pinecone = pc1.from_documents(pdf_chunks, embeddings, index_name=index_name)

运行后出现如下错误:

AttributeError                            Traceback (most recent call last)
Cell In[53], line 22
     20     print("No index")
     21 else:
---> 22     db_Pinecone = pc1.from_documents(pdf_chunks, embeddings, index_name=index_name)

File ~/.local/lib/python3.8/site-packages/langchain/vectorstores/base.py:307, in VectorStore.from_documents(cls, documents, embedding, **kwargs)
    305 texts = [d.page_content for d in documents]
    306 metadatas = [d.metadata for d in documents]
--> 307 return cls.from_texts(texts, embedding, metadatas=metadatas, **kwargs)

File ~/.local/lib/python3.8/site-packages/langchain/vectorstores/pinecone.py:206, in Pinecone.from_texts(cls, texts, embedding, metadatas, ids, batch_size, text_key, index_name, namespace, **kwargs)
    200 except ImportError:
    201     raise ValueError(
    202         "Could not import pinecone python package. "
    203         "Please install it with `pip install pinecone-client`."
    204     )
--> 206 indexes = pinecone.list_indexes()  # checks if provided index exists
    208 if index_name in indexes:
    209     index = pinecone.Index(index_name)

File ~/.local/lib/python3.8/site-packages/pinecone/deprecation_warnings.py:51, in list_indexes(*args, **kwargs)
     40 def list_indexes(*args, **kwargs):
     41     example = """
     42     from pinecone import Pinecone
     43     
   (...)
     49         # do something
     50     """
---> 51     raise AttributeError(_build_class_migration_message('list_indexes', example))

AttributeError: list_indexes is no longer a top-level attribute of the pinecone package.

To use list_indexes, please create a client instance and call the method there instead.

Example:

    from pinecone import Pinecone
    
    pc = Pinecone(api_key='YOUR_API_KEY')

    index_name = "quickstart" # or your index name

    if index_name not in pc.list_indexes().names():
        # do something

错误提示第206行显示,LangChain Pinecone库中的list_indexes()函数不再是pinecone包的顶级属性(AttributeError)。我想知道这是否意味着pinecone包损坏?另外我在LangChain的GitHub Issues页面找到一个解决方案,修改后的代码如下:

import pinecone
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.vectorstores import Pinecone
from langchain.schema import Document

class PineconeConnected():
    def __init__(self, index_name: str, pinecone_api_key: str, pinecone_env: str, openai_key: str):
        embeddings = OpenAIEmbeddings(openai_api_key=openai_key)
        self.pinecone = pinecone.Pinecone(api_key=pinecone_api_key)
        self.vector_db = Pinecone.from_existing_index(index_name, embeddings) # 加载包含引用的VectorStore对象和Pinecone索引

    def query(query:str, book_title=None):
        pass

修改说明:将pinecone.init(api_key=pinecone_api_key)替换为self.pinecone = pinecone.Pinecone(api_key=pinecone_api_key),通过创建Pinecone类实例与Pinecone服务交互,同时需要调整其他依赖pinecone.init方法的代码。

现在想咨询两个问题:

  • 这个问题的根源是什么?
  • 这个解决方案是否有效?

内容的提问来源于stack exchange,提问作者Afrim124

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 03:43:23