Spaces:
Sleeping
Sleeping
File size: 1,202 Bytes
0e197ca 372720a 0e197ca 372720a 0e197ca |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# retrievers/custom_retriever.py
import os
from langchain_huggingface import HuggingFaceEmbeddings
from langchain_community.vectorstores import SupabaseVectorStore
from supabase.client import create_client
from config import settings
def get_vector_store():
# Read env variables only when needed
supabase_url = settings.supabase_url
supabase_key = settings.supabase_key
if not supabase_url or not supabase_key:
raise ValueError("SUPABASE_URL and SUPABASE_SERVICE_KEY must be set in your environment or .env file.")
embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-mpnet-base-v2")
supabase = create_client(supabase_url, supabase_key)
return SupabaseVectorStore(
client=supabase,
embedding=embeddings,
table_name="documents",
query_name="match_documents_langchain",
)
def retrieve(query: str) -> str:
try:
vector_store = get_vector_store()
results = vector_store.similarity_search(query)
if results:
return results[0].page_content
except Exception as e:
return f"Retriever is not available (reason: {e})"
return "No similar questions found."
|