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 | |