diff --git a/duas_query.py b/duas_query.py new file mode 100644 index 0000000..20cdfce --- /dev/null +++ b/duas_query.py @@ -0,0 +1,44 @@ +from langchain_openai import OpenAIEmbeddings +from dotenv import load_dotenv +from langchain_postgres import PGVector + +load_dotenv() + +CONNECTION_STRING = 'postgresql+psycopg2://postgres:test@localhost:5433/vector_db' +COLLECTION_NAME = 'duas_tags_vectors' + +# Initialize embeddings (needed for query encoding only) +embeddings = OpenAIEmbeddings(model="text-embedding-3-small") + +# Load existing vector store +db = PGVector( + collection_name=COLLECTION_NAME, + connection=CONNECTION_STRING, + embeddings=embeddings +) + +def search_duas(query, k=5): + results = db.similarity_search_with_score(query, k=k) + + duas_results = [] + for doc, score in results: + result = { + 'id': doc.metadata.get('id'), + 'arabic': doc.metadata.get('arabic'), + 'transliteration': doc.metadata.get('transliteration'), + 'translation': doc.metadata.get('translation'), + 'urdu': doc.metadata.get('urdu'), + 'romanUrdu': doc.metadata.get('romanUrdu'), + 'category': doc.metadata.get('category'), + 'occasion': doc.metadata.get('occasion'), + 'source': doc.metadata.get('source'), + 'tags': doc.metadata.get('tags'), + 'similarity_score': 1 - score + } + duas_results.append(result) + + return duas_results + +# Now you can search! +results = search_duas("protection", k=2) +print(results) \ No newline at end of file