Final_Assignment / retrievers /custom_retriever.py
Harshana
add .gitignore and aet env for HF
0e197ca
# 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."