from langchain_community.vectorstores import FAISS from embedding import LocalLMEmbeddings def retrieve_enriched_context(query, db_path="./local_faiss_db"): # 1. Re-initialize the same embedding model embeddings_model = LocalLMEmbeddings( model="text-embedding-qwen3-embedding-8b", base_url="http://192.168.0.49:1234" ) # 2. Load the index from disk # allow_dangerous_deserialization is required because FAISS uses pickle vectorstore = FAISS.load_local(db_path, embeddings_model, allow_dangerous_deserialization=True) # 3. Perform the search # k=4 means "bring back the top 4 most relevant chunks" results_with_scores = vectorstore.similarity_search_with_score(query, k=4) return results_with_scores # --- Example Usage --- query = "the party get free bread but i cant remember why?" hits = retrieve_enriched_context(query) for doc, score in hits: print(f"\nšŸŽÆ [Score: {score:.4f}]") print(f"šŸ“„ Content: {doc.page_content[:200]}...") print(f"šŸ› ļø Metadata (Enrichment): {doc.metadata}") # print(f"doc: {doc}")