Spaces:
Runtime error
Runtime error
| from dotenv import load_dotenv | |
| import os | |
| from langchain.memory import VectorStoreRetrieverMemory | |
| from langchain_community.vectorstores.redis import Redis | |
| from langchain.embeddings import OpenAIEmbeddings | |
| from langchain.embeddings import HuggingFaceEmbeddings | |
| from langchain_core.runnables import ConfigurableField | |
| load_dotenv() | |
| redis_url = os.getenv("REDIS_URL") | |
| openai_key = os.getenv("OPENAI_API_KEY") | |
| hf_token = os.getenv("HUGGINGFACEHUB_API_TOKEN") | |
| embedding_fn = OpenAIEmbeddings(openai_api_key=openai_key) | |
| #! Alternatively, can use Hugging Face embeddings if you don't have one | |
| # modelPath = "HuggingFaceH4/zephyr-7b-beta" | |
| # model_kwargs = {'device':'cpu'} | |
| # encode_kwargs = {'normalize_embeddings':False} | |
| # embedding_fn = HuggingFaceEmbeddings( | |
| # model_name = modelPath, | |
| # model_kwargs = model_kwargs, | |
| # encode_kwargs=encode_kwargs | |
| # ) | |
| schema = {'text': [{'name': 'content', | |
| 'weight': 1, | |
| 'no_stem': False, | |
| 'withsuffixtrie': False, | |
| 'no_index': False, | |
| 'sortable': False}], | |
| 'vector': [{'name': 'content_vector', | |
| 'dims': 1536, | |
| 'algorithm': 'FLAT', | |
| 'datatype': 'FLOAT32', | |
| 'distance_metric': 'COSINE'}]} | |
| def vectorstore_as_memory(username): | |
| try: | |
| new_rds = Redis.from_existing_index( | |
| embedding=embedding_fn, | |
| index_name=username, | |
| redis_url=redis_url, | |
| # schema=rds.schema, | |
| schema=schema, | |
| ) | |
| retriever = new_rds.as_retriever(search_type="similarity", search_kwargs={"k": 3}) | |
| memory = VectorStoreRetrieverMemory(retriever=retriever) | |
| return memory | |
| except ValueError: | |
| rds = Redis.from_texts( | |
| texts=["Hi there"], | |
| embedding=embedding_fn, | |
| redis_url=redis_url, | |
| index_name=username | |
| ) | |
| retriever = rds.as_retriever(search_type="similarity", search_kwargs={"k": 3}) | |
| memory = VectorStoreRetrieverMemory(retriever=retriever) | |
| return memory | |