I’m getting the error: TypeError: Pinecone.init() got an unexpected keyword argument ‘api_key’ with the following code:
from langchain.document_loaders import DirectoryLoader
from langchain.text_splitter import CharacterTextSplitter
import os
from pinecone import Pinecone, ServerlessSpec
import pinecone
from langchain.vectorstores import Pinecone
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.chains import RetrievalQA
from langchain.chat_models import ChatOpenAI
import streamlit as st
from dotenv import load_dotenv
load_dotenv()
PINECONE_API_KEY = os.getenv(‘PINECONE_API_KEY’)
PINECONE_ENV = os.getenv(‘PINECONE_ENV’)
OPENAI_API_KEY = os.getenv(‘OPENAI_API_KEY’)
os.environ[‘OPENAI_API_KEY’] = OPENAI_API_KEY
def doc_preprocessing():
loader = DirectoryLoader(
‘/thgPDFs’,
glob=‘**/*.pdf’, # only the PDFs
show_progress=True
)
docs = loader.load()
text_splitter = CharacterTextSplitter(
chunk_size=1000,
chunk_overlap=0
)
docs_split = text_splitter.split_documents(docs)
return docs_split
@st.cache_resource
def embedding_db():
# we use the openAI embedding model
embeddings = OpenAIEmbeddings()
pc = Pinecone(
api_key=os.environ.get(“PINECONE_API_KEY”)
)
if 'ask-thg' not in pc.list_indexes().names():
pc.create_index(
name='ask-thg',
dimension=1536,
metric='euclidean',
spec=ServerlessSpec(
cloud='aws',
region='us-east-1'
)
)
docs_split = doc_preprocessing()
doc_db = Pinecone.from_documents(
docs_split,
embeddings,
index_name='ask-thg'
)
return doc_db
llm = ChatOpenAI()
doc_db = embedding_db()
def retrieval_answer(query):
qa = RetrievalQA.from_chain_type(
llm=llm,
chain_type=‘stuff’,
retriever=doc_db.as_retriever(),
)
query = query
result = qa.run(query)
return result
def main():
st.title(“Question and Answering App powered by LLM and Pinecone”)
text_input = st.text_input("Ask your query...")
if st.button("Ask Query"):
if len(text_input)>0:
st.info("Your Query: " + text_input)
answer = retrieval_answer(text_input)
st.success(answer)
if name == “main”:
main()
The complete log:
Traceback (most recent call last):
File “/Users/gharker/Desktop/dev-playground/devNinjaIndy/askDocs/venv/lib/python3.11/site-packages/streamlit/runtime/scriptrunner/script_runner.py”, line 600, in _run_script
exec(code, module.dict)
File “/Users/gharker/Desktop/dev-playground/devNinjaIndy/askDocs/src/app.py”, line 65, in
doc_db = embedding_db()
^^^^^^^^^^^^^^
File “/Users/gharker/Desktop/dev-playground/devNinjaIndy/askDocs/venv/lib/python3.11/site-packages/streamlit/runtime/caching/cache_utils.py”, line 165, in wrapper
return cached_func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/Users/gharker/Desktop/dev-playground/devNinjaIndy/askDocs/venv/lib/python3.11/site-packages/streamlit/runtime/caching/cache_utils.py”, line 194, in call
return self._get_or_create_cached_value(args, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/Users/gharker/Desktop/dev-playground/devNinjaIndy/askDocs/venv/lib/python3.11/site-packages/streamlit/runtime/caching/cache_utils.py”, line 221, in _get_or_create_cached_value
return self._handle_cache_miss(cache, value_key, func_args, func_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/Users/gharker/Desktop/dev-playground/devNinjaIndy/askDocs/venv/lib/python3.11/site-packages/streamlit/runtime/caching/cache_utils.py”, line 277, in _handle_cache_miss
computed_value = self._info.func(*func_args, **func_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/Users/gharker/Desktop/dev-playground/devNinjaIndy/askDocs/src/app.py”, line 41, in embedding_db
pc = Pinecone(
^^^^^^^^^
File “/Users/gharker/Desktop/dev-playground/devNinjaIndy/askDocs/venv/lib/python3.11/site-packages/langchain_core/_api/deprecation.py”, line 183, in warn_if_direct_instance
return wrapped(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: Pinecone.init() got an unexpected keyword argument ‘api_key’
Any thoughts?