Spaces:
Runtime error
Runtime error
# Pinecone | |
# More info at https://docs.pinecone.io/docs/langchain | |
# And https://python.langchain.com/docs/integrations/vectorstores/pinecone | |
import os | |
import pinecone | |
from langchain.vectorstores import Chroma, Pinecone | |
PERSIST_DIRECTORY = "./chroma_db" | |
try: | |
from dotenv import load_dotenv | |
load_dotenv() | |
except: | |
pass | |
def get_vectorstore(embeddings_function): | |
if has_pinecone_config(): | |
return get_pinecone_vectorstore(embeddings_function) | |
return get_chroma_vectore_store(embeddings_function) | |
def get_chroma_vectore_store(embedding_function): | |
return Chroma( | |
persist_directory=PERSIST_DIRECTORY, embedding_function=embedding_function | |
) | |
def has_pinecone_config(): | |
return all( | |
key in os.environ | |
for key in [ | |
"PINECONE_API_KEY", | |
"PINECONE_API_ENVIRONMENT", | |
"PINECONE_API_INDEX", | |
] | |
) | |
def get_pinecone_vectorstore(embeddings_function, text_key="content"): | |
# initialize pinecone | |
pinecone.init( | |
api_key=os.getenv("PINECONE_API_KEY"), # find at app.pinecone.io | |
environment=os.getenv("PINECONE_API_ENVIRONMENT"), # next to api key in console | |
) | |
index_name = os.getenv("PINECONE_API_INDEX") | |
vectorstore = Pinecone.from_existing_index( | |
index_name, embeddings_function, text_key=text_key | |
) | |
return vectorstore | |