feat: ✨ Working PoC of the Dungeon Masters Vault
This commit is contained in:
+31
@@ -0,0 +1,31 @@
|
||||
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}")
|
||||
Reference in New Issue
Block a user