From 4296a4df8845a6ea7da4d8d158d71e6671a7a0ab Mon Sep 17 00:00:00 2001 From: Jake Pullen Date: Tue, 27 Jan 2026 21:24:18 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20=E2=9C=A8=20Working=20PoC=20of=20the=20?= =?UTF-8?q?Dungeon=20Masters=20Vault?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- delete_me.py | 66 ++++++++ local_faiss_db/index.pkl | Bin 343683 -> 501540 bytes pyproject.toml | 4 +- src/config/app_config.py | 231 -------------------------- src/config/user_config.py | 31 ---- src/config/user_config_template.py | 97 ----------- src/core/model_factory.py | 1 - src/embedding.py | 45 ++++++ src/experts/ingestion_agent.py | 7 +- src/experts/orchestrator.py | 7 +- src/ingest.py | 250 ++++++++--------------------- src/main.py | 31 ++-- src/retrieve.py | 109 +++++++++++++ src/temp.py | 31 ++++ temp.py | 0 15 files changed, 347 insertions(+), 563 deletions(-) create mode 100644 delete_me.py delete mode 100644 src/config/app_config.py delete mode 100644 src/config/user_config.py delete mode 100644 src/config/user_config_template.py create mode 100644 src/embedding.py create mode 100644 src/retrieve.py create mode 100644 src/temp.py delete mode 100644 temp.py diff --git a/delete_me.py b/delete_me.py new file mode 100644 index 0000000..14e0051 --- /dev/null +++ b/delete_me.py @@ -0,0 +1,66 @@ +# class PrecomputedEmbeddings(Embeddings): +# def __init__(self, embeddings: List[List[float]]): +# self.embeddings = embeddings # Store all precomputed vectors + +# def embed_documents(self, texts: List[str]) -> List[List[float]]: +# return self.embeddings # Return the precomputed ones (order must match!) + +# def embed_query(self, text): +# return self.embeddings[0] + +# def embedder(texts: List[str]) -> List[List[float]]: +# embeddings = [] +# base_url = "http://192.168.0.49:1234" # ✅ Add 'http://' +# embed_url = f"{base_url}/v1/embeddings" +# headers = {"Content-Type": "application/json"} + +# for text in texts: +# payload = { +# "model": "text-embedding-qwen3-embedding-8b", +# "input": text +# } + +# try: +# response = requests.post(embed_url, json=payload, headers=headers) # ✅ POST not GET +# if response.status_code == 200: +# data = response.json() # ✅ Parse JSON! +# embedding = data["data"][0]["embedding"] # ✅ Extract the actual vector +# embeddings.append(embedding) +# else: +# print(f"❌ Embedding failed for '{text[:30]}...': {response.status_code} - {response.text}") +# # Optionally: insert placeholder zeros if you need to continue +# # embeddings.append([0.0] * 768) # ← adjust dimension as needed! +# except Exception as e: +# print(f"⚠️ Exception embedding '{text[:30]}...': {e}") +# # embeddings.append([0.0] * 768) # fallback + +# return embeddings + +# def store_chunks_with_embeddings_locally(chunks, db_path="./local_faiss_db"): +# """ +# Stores pre-computed chunks and their embeddings into a local FAISS database. + +# Args: +# chunks: list of LangChain Document objects (with page_content and metadata) +# embeddings: list of embedding vectors (list of lists of floats) — must match length of chunks +# db_path: where to save the FAISS index files locally +# """ + +# texts = [chunk.page_content for chunk in chunks] +# embeddings = embedder(texts) +# if len(chunks) != len(embeddings): +# raise ValueError(f"Mismatch! Got {len(chunks)} chunks but {len(embeddings)} embeddings.") + +# # Create LangChain Document list (we already have this) +# documents = chunks # assuming they're already Document objects + +# # Build FAISS vectorstore using precomputed embeddings +# # FAISS.from_embeddings() lets us pass our own embeddings + texts +# vectorstore = FAISS.from_embeddings( +# text_embeddings=list(zip([doc.page_content for doc in documents], embeddings)), +# embedding=PrecomputedEmbeddings(embeddings[0]) # We’ll define this next +# ) + +# # Save to disk +# vectorstore.save_local(db_path) +# print(f"✅ Successfully stored {len(chunks)} chunks + embeddings into local FAISS DB at '{db_path}'") \ No newline at end of file diff --git a/local_faiss_db/index.pkl b/local_faiss_db/index.pkl index 2bc47dde965268f076fc13c03dc1f219d8f3d0cc..885722453d3b4a588eed87b466628b6e1bf98a4f 100644 GIT binary patch delta 206553 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 z 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%0DjoAcJN2NGhM={K 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�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 list[list[float]]: + """Handles the actual HTTP POST to the local server.""" + payload = {"model": self.model, "input": input_texts} + try: + response = requests.post( + self.url, json=payload, timeout=120 + ) # Longer timeout for batches + response.raise_for_status() + data = response.json() + return [item["embedding"] for item in data["data"]] + except Exception as e: + print(f"❌ Batch request failed: {e}") + # Returning empty lists to maintain index integrity if needed, + # or you could raise the error to stop the pipeline. + return [[] for _ in input_texts] + + def embed_documents(self, texts: list[str]) -> list[list[float]]: + """Splits 500+ chunks into batches of 32 and processes them.""" + all_embeddings = [] + + for i in range(0, len(texts), self.batch_size): + batch = texts[i : i + self.batch_size] + print(f"🚀 Processing batch {(i // self.batch_size) + 1} (Size: {len(batch)})...") + + batch_vectors = self._post_request(batch) + all_embeddings.extend(batch_vectors) + + return all_embeddings + + def embed_query(self, text: str) -> list[float]: + """Embeds the single search query.""" + result = self._post_request([text]) + return result[0] if result else [] diff --git a/src/experts/ingestion_agent.py b/src/experts/ingestion_agent.py index ac71cfb..150d13c 100644 --- a/src/experts/ingestion_agent.py +++ b/src/experts/ingestion_agent.py @@ -1,8 +1,9 @@ import dspy + class ingestionSignature(dspy.Signature): """You are going to be given dungeon masters notes, on session plans, recaps, npcs, players. - You must summarize these document in one sentence + You must summarize these document in one sentence and extract as many relevant tags aspossible as a JSON list: {{'synopsis': '...', 'tags': [...]}}\n\nDocument:\n{content}" /no_think @@ -18,6 +19,4 @@ class IngestionAgent(dspy.Module): def __init__(self): """Initialize the Oracle with available expert tools.""" # self.tools = [] - self.ingest = dspy.Predict( - signature=ingestionSignature - ) \ No newline at end of file + self.ingest = dspy.Predict(signature=ingestionSignature) diff --git a/src/experts/orchestrator.py b/src/experts/orchestrator.py index a818490..f773366 100644 --- a/src/experts/orchestrator.py +++ b/src/experts/orchestrator.py @@ -6,8 +6,7 @@ from .file import FileAgent class OrchestratorSignature(dspy.Signature): - """ - """ + """ """ question: str = dspy.InputField() history: dspy.History = dspy.InputField() @@ -22,9 +21,7 @@ class TheOracle(dspy.Module): self.tools = [ self.consult_file_expert, ] - self.oracle = dspy.ReAct( - signature=OrchestratorSignature, tools=self.tools, max_iters=10 - ) + self.oracle = dspy.ReAct(signature=OrchestratorSignature, tools=self.tools, max_iters=10) def consult_file_expert(self, command: str) -> str: """Use this expert when you want to save or retrieve information from files. diff --git a/src/ingest.py b/src/ingest.py index b78b1c9..ba5fca2 100644 --- a/src/ingest.py +++ b/src/ingest.py @@ -1,228 +1,118 @@ -# ingest.py - -import os -import json -import dspy -import turso -import requests - import json from concurrent.futures import ThreadPoolExecutor, as_completed -from typing import List -from tqdm import tqdm -from langchain_core.embeddings import Embeddings -from langchain_community.vectorstores import FAISS -from langchain_core.documents import Document -from typing import List from pathlib import Path -from langchain_community.document_loaders import TextLoader -from langchain_text_splitters import RecursiveCharacterTextSplitter +import dspy +from langchain_community.document_loaders import TextLoader +from langchain_community.vectorstores import FAISS +from langchain_text_splitters import RecursiveCharacterTextSplitter +from tqdm import tqdm + +from embedding import LocalLMEmbeddings from experts.ingestion_agent import IngestionAgent -# exit() - -CHROMA_PATH = "vector_vault" DATA_DIR = "/home/cosmic/DnD" def load_documents(): - """ - Recursively walk through DATA_DIR and load all .md files as plain text. - Each document gets metadata including source filename and full path. - Ideal for RAG embedding pipelines. - """ docs = [] - - # Define loader mapping - loaders = { - ".md": TextLoader, - } - - data_path = Path(DATA_DIR) # Ensure DATA_DIR is defined elsewhere as a string or Path + data_path = Path(DATA_DIR) if not data_path.exists() or not data_path.is_dir(): - print(f"⚠️ Data directory '{DATA_DIR}' does not exist or is not a directory.") + print(f"⚠️ Data directory '{DATA_DIR}' does not exist.") return docs - # Walk recursively through all files - for file_path in data_path.rglob("*"): - if file_path.is_file() and file_path.suffix.lower() == ".md": - try: - loader = loaders[file_path.suffix](file_path) - loaded_docs = loader.load() + for file_path in data_path.rglob("*.md"): + try: + loader = TextLoader(str(file_path)) + loaded_docs = loader.load() - # Add metadata to each document - for doc in loaded_docs: - doc.metadata["source"] = file_path.name # e.g., "document.md" - doc.metadata["full_path"] = str(file_path) # e.g., "/data/docs/document.md" + for doc in loaded_docs: + # Ensure these keys are set before splitting + doc.metadata["source"] = file_path.name + doc.metadata["full_path"] = str(file_path.absolute()) - docs.extend(loaded_docs) - print(f"✅ Loaded: {file_path}") # Remove this line if you want it silent + docs.extend(loaded_docs) + print(f"✅ Loaded: {file_path.name}") + except Exception as e: + print(f"❌ Failed to load {file_path}: {e}") - except Exception as e: - print(f"❌ Failed to load {file_path}: {e}") - - print(f"📊 Total documents loaded: {len(docs)}") return docs - def chunk_documents(docs): + # LangChain preserves metadata during splitting automatically text_splitter = RecursiveCharacterTextSplitter( - chunk_size=800, - chunk_overlap=100, + chunk_size=800, + chunk_overlap=100, separators=["\n\n", "\n", ". ", " ", ""] ) return text_splitter.split_documents(docs) - - - - - -def enrich_chunks(chunks: List) -> List: - enriched = [] - # Define your base model name — the same for all 10 slots +def enrich_chunks(chunks: list) -> list: MODEL_BASE = "lm_studio/qwen/qwen3-8b" API_BASE = "http://192.168.0.49:1234/v1/" - dspy.configure(lm=dspy.LM("lm_studio/qwen/qwen3-8b", api_base="http://192.168.0.49:1234/v1/")) - - def process_single_chunk(args): - i, chunk = args - lm_index = i % 8 - print(f"Processing chunk {i+1}/{len(chunks)} | using model {lm_index}") - + + def process_single_chunk(indexed_chunk): + idx, chunk = indexed_chunk + lm_index = idx % 8 + try: - with dspy.context(lm=dspy.LM(f"{MODEL_BASE}:{lm_index}", api_base = API_BASE)): - response = IngestionAgent().ingest(note=chunk) # ← Uses thread's selected LM! - - answer = response.answer - start = answer.find('{') - end = answer.rfind('}') + 1 - json_str = answer[start:end] - metadata = json.loads(json_str) + # Configure context for this specific thread + with dspy.context(lm=dspy.LM(f"{MODEL_BASE}:{lm_index}", api_base=API_BASE)): + # Pass the text, but we will update the original chunk object + response = IngestionAgent().ingest(note=chunk.page_content) + + answer = response.answer + start = answer.find("{") + end = answer.rfind("}") + 1 + metadata_extracted = json.loads(answer[start:end]) + + # UPDATE: Put AI data in a sub-key to avoid overwriting 'source' + chunk.metadata["enrichment"] = metadata_extracted + # Also flatten tags for easier searching if needed + if "tags" in metadata_extracted: + chunk.metadata["tags"] = metadata_extracted["tags"] except Exception as e: - print(f"⚠️ Failed to parse JSON for chunk {i}: {e}") - metadata = {"synopsis": "Summary failed", "tags": ["error"]} + # If enrichment fails, we KEEP the chunk but flag the error + # This ensures 'source' and 'full_path' are NEVER lost + chunk.metadata["enrichment_error"] = str(e) + chunk.metadata["tags"] = ["error"] - # Update the chunk's metadata - chunk.metadata.update(metadata) - return chunk + return idx, chunk - # Run 10 parallel workers — each will pick a different model slot + enriched_results = [] with ThreadPoolExecutor(max_workers=8) as executor: - futures = [executor.submit(process_single_chunk, (i, chunk)) for i, chunk in enumerate(chunks)] + # Wrap chunks in enumerate to keep track of order + futures = [executor.submit(process_single_chunk, (i, c)) for i, c in enumerate(chunks)] for future in tqdm(as_completed(futures), total=len(chunks), desc="Enriching chunks"): - enriched.append(future.result()) + enriched_results.append(future.result()) - # Restore original order - enriched.sort(key=lambda x: chunks.index(x)) + # Sort by the index (first element of tuple) and return only the chunk + enriched_results.sort(key=lambda x: x[0]) + return [item[1] for item in enriched_results] - return enriched - -class PrecomputedEmbeddings(Embeddings): - def __init__(self, embeddings: List[List[float]]): - self.embeddings = embeddings # Store all precomputed vectors - - def embed_documents(self, texts: List[str]) -> List[List[float]]: - return self.embeddings # Return the precomputed ones (order must match!) - - def embed_query(self, text): - return self.embeddings[0] - -def embedder(texts: List[str]) -> List[List[float]]: - embeddings = [] - base_url = "http://192.168.0.49:1234" # ✅ Add 'http://' - embed_url = f"{base_url}/v1/embeddings" - headers = {"Content-Type": "application/json"} - - for text in texts: - payload = { - "model": "text-embedding-qwen3-embedding-8b", - "input": text - } - - try: - response = requests.post(embed_url, json=payload, headers=headers) # ✅ POST not GET - if response.status_code == 200: - data = response.json() # ✅ Parse JSON! - embedding = data["data"][0]["embedding"] # ✅ Extract the actual vector - embeddings.append(embedding) - else: - print(f"❌ Embedding failed for '{text[:30]}...': {response.status_code} - {response.text}") - # Optionally: insert placeholder zeros if you need to continue - # embeddings.append([0.0] * 768) # ← adjust dimension as needed! - except Exception as e: - print(f"⚠️ Exception embedding '{text[:30]}...': {e}") - # embeddings.append([0.0] * 768) # fallback - - return embeddings - -def store_chunks_with_embeddings_locally(chunks, db_path="./local_faiss_db"): - """ - Stores pre-computed chunks and their embeddings into a local FAISS database. - - Args: - chunks: list of LangChain Document objects (with page_content and metadata) - embeddings: list of embedding vectors (list of lists of floats) — must match length of chunks - db_path: where to save the FAISS index files locally - """ - - texts = [chunk.page_content for chunk in chunks] - embeddings = embedder(texts) - if len(chunks) != len(embeddings): - raise ValueError(f"Mismatch! Got {len(chunks)} chunks but {len(embeddings)} embeddings.") - - # Create LangChain Document list (we already have this) - documents = chunks # assuming they're already Document objects - - # Build FAISS vectorstore using precomputed embeddings - # FAISS.from_embeddings() lets us pass our own embeddings + texts - vectorstore = FAISS.from_embeddings( - text_embeddings=list(zip([doc.page_content for doc in documents], embeddings)), - embedding=PrecomputedEmbeddings(embeddings[0]) # We’ll define this next +def store_chunks_locally(chunks, db_path="./local_faiss_db"): + embeddings_model = LocalLMEmbeddings( + model="text-embedding-qwen3-embedding-8b", + base_url="http://192.168.0.49:1234", + batch_size=32, ) - # Save to disk + print(f"Index creation started for {len(chunks)} chunks...") + # FAISS.from_documents extracts metadata directly from the Document objects + vectorstore = FAISS.from_documents(documents=chunks, embedding=embeddings_model) vectorstore.save_local(db_path) - print(f"✅ Successfully stored {len(chunks)} chunks + embeddings into local FAISS DB at '{db_path}'") - -# # Store in Turso -# def store_in_turso(chunks): -# ## needs refactor, not using chroma -# client = turso.PersistentClient(path=CHROMA_PATH) -# collection = client.get_or_create_collection("documents") - -# ids = [f"doc_{i}" for i in range(len(chunks))] -# metadatas = [chunk.metadata for chunk in chunks] -# embeddings = embedder(texts) - -# collection.add( -# ids=ids, -# documents=texts, -# embeddings=embeddings, -# metadatas=metadatas -# ) -# print(f"✅ Successfully stored {len(chunks)} chunks in Chroma DB.") + print(f"✅ Successfully stored in FAISS at '{db_path}'") + return vectorstore def main(): - print("🔍 Loading documents...") docs = load_documents() - if not docs: - print("⚠️ No files found in 'documents/'. Add some PDFs, TXT, or DOCX.") - return - - print(f"📄 Loaded {len(docs)} documents. Splitting into chunks...") + if not docs: return + chunks = chunk_documents(docs) - print(f"🧩 Created {len(chunks)} chunks.") - - print("🧠 Generating summaries and tags using local LLM... (this may take a few minutes)") enriched_chunks = enrich_chunks(chunks) - - print("💾 Storing in vector database...") - store_chunks_with_embeddings_locally(enriched_chunks) - + store_chunks_locally(enriched_chunks) print("🎉 Ingestion complete!") if __name__ == "__main__": diff --git a/src/main.py b/src/main.py index b2327a5..58751af 100644 --- a/src/main.py +++ b/src/main.py @@ -1,14 +1,16 @@ +import chromadb import streamlit as st from langchain.embeddings import HuggingFaceEmbeddings from langchain_community.llms import Ollama from langchain_core.prompts import PromptTemplate -import chromadb # CONFIG BASE_IP = "192.168.0.49" LM_STUDIO_PORT = "1234" CHROMA_PATH = "vector_db" -MODEL_NAME = "lmstudio-community/qwen/qwen3-next-80b-a3b-instruct-q8_0.gguf" # Use "llama3", "phi3", etc. +MODEL_NAME = ( + "lmstudio-community/qwen/qwen3-next-80b-a3b-instruct-q8_0.gguf" # Use "llama3", "phi3", etc. +) EMBEDDING_MODEL = "all-MiniLM-L6-v2" # Load embedding model @@ -42,8 +44,9 @@ prompt = PromptTemplate.from_template(prompt_template) st.title("📄 Local RAG Knowledge Assistant") st.write("Upload files to `documents/` and run `ingest.py` first.") -query = st.text_input("Ask a question about your documents:", - placeholder="What are the key financial metrics?") +query = st.text_input( + "Ask a question about your documents:", placeholder="What are the key financial metrics?" +) if query: with st.spinner("Searching for relevant info..."): @@ -52,9 +55,7 @@ if query: # Retrieve top 5 most similar chunks results = collection.query( - query_embeddings=[query_embedding], - n_results=5, - include=["documents", "metadatas"] + query_embeddings=[query_embedding], n_results=5, include=["documents", "metadatas"] ) documents = results["documents"][0] @@ -65,8 +66,11 @@ if query: for i, doc in enumerate(documents): meta = metadatas[i] synopsis = meta.get("synopsis", "No summary") - tags = ", ".join(meta.get("tags", [])) if isinstance( - meta.get("tags"), list) else str(meta.get("tags")) + tags = ( + ", ".join(meta.get("tags", [])) + if isinstance(meta.get("tags"), list) + else str(meta.get("tags")) + ) source = meta.get("source", "Unknown") context += f""" @@ -92,7 +96,10 @@ Source: {source} for i, doc in enumerate(documents): meta = metadatas[i] source = meta.get("source", "Unknown") - tags = ", ".join(meta.get("tags", [])) if isinstance( - meta.get("tags"), list) else str(meta.get("tags")) + tags = ( + ", ".join(meta.get("tags", [])) + if isinstance(meta.get("tags"), list) + else str(meta.get("tags")) + ) st.markdown(f"**Source**: `{source}` | **Tags**: {tags}") - st.text_area(f"Snippet {i+1}", doc, height=120, disabled=True) + st.text_area(f"Snippet {i + 1}", doc, height=120, disabled=True) diff --git a/src/retrieve.py b/src/retrieve.py new file mode 100644 index 0000000..f3f3c9f --- /dev/null +++ b/src/retrieve.py @@ -0,0 +1,109 @@ +import sys +import dspy +from langchain_community.vectorstores import FAISS +from embedding import LocalLMEmbeddings +from pathlib import Path + +# --- DSPy Signature --- +class DnDContextQA(dspy.Signature): + """Answer DnD campaign questions using provided snippets and full file context.""" + context = dspy.InputField(desc="Relevant chunks and full file contents from the campaign notes.") + question = dspy.InputField() + answer = dspy.OutputField(desc="A detailed answer based on the notes, citing the source file.") + +# --- DSPy Module --- +class DnDRAG(dspy.Module): + def __init__(self, db_path="./local_faiss_db", k=3): + super().__init__() + # 1. Setup Embeddings & Load FAISS + self.embeddings = LocalLMEmbeddings( + model="text-embedding-qwen3-embedding-8b", + base_url="http://192.168.0.49:1234" + ) + self.vectorstore = FAISS.load_local( + db_path, self.embeddings, allow_dangerous_deserialization=True + ) + self.k = k + + # 2. Setup the Predictor (Chain of Thought for better reasoning) + self.generate_answer = dspy.ChainOfThought(DnDContextQA) + + def get_full_file_content(self, file_path): + """Helper to read the full source file if it exists.""" + try: + return Path(file_path).read_text(encoding='utf-8') + except Exception: + return "" + + def forward(self, question): + # 1. Search for top-k chunks + results = self.vectorstore.similarity_search(question, k=self.k) + + # 2. Extract unique file paths to load "Full Context" + # This prevents the LLM from being 'blind' to the rest of a relevant session note + unique_paths = list(set([doc.metadata.get("full_path") for doc in results])) + + context_parts = [] + for i, doc in enumerate(results): + source = doc.metadata.get("source", "Unknown") + context_parts.append(f"--- Chunk {i+1} from {source} ---\n{doc.page_content}") + + # 3. Add the Full Content of the top match (optional, but requested!) + # We'll just take the top 1 file to avoid context window explosion + if unique_paths: + top_file_content = self.get_full_file_content(unique_paths[0]) + context_parts.append(f"\n=== FULL SOURCE FILE: {Path(unique_paths[0]).name} ===\n{top_file_content[:10000]}") + + # 4. Join everything into one context string + context_str = "\n\n".join(context_parts) + + # 5. Generate Response + prediction = self.generate_answer(context=context_str, question=question) + return dspy.Prediction(answer=prediction.answer, context=context_str) + + + +def main(): + # 1. Setup the LLM + print("🚀 Initializing Qwen-8B via LM Studio...") + lm = dspy.LM("lm_studio/qwen/qwen3-8b", api_base="http://192.168.0.49:1234/v1/") + dspy.configure(lm=lm) + + # 2. Load the RAG System (only happens once!) + print("📚 Loading FAISS index and campaign notes...") + try: + rag_system = DnDRAG() + print("✅ Ready! Ask me anything about the campaign. (Type 'exit' or 'q' to quit)") + except Exception as e: + print(f"❌ Failed to initialize: {e}") + return + + # 3. Interactive Loop + while True: + try: + print("\n" + "─" * 30) + query = input("📝 Query: ").strip() + + # Exit conditions + if query.lower() in ["exit", "quit", "q"]: + print("Farewell, traveler. Good luck on your quest!") + break + + if not query: + continue + + print("🔍 Searching and thinking...") + response = rag_system(question=query) + + # Print Response + print("\n📜 AI RESPONSE:") + print(response.answer) + + except KeyboardInterrupt: + print("\n\nExiting... See you next session!") + sys.exit(0) + except Exception as e: + print(f"\n⚠️ An error occurred: {e}") + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/src/temp.py b/src/temp.py new file mode 100644 index 0000000..da1f7d5 --- /dev/null +++ b/src/temp.py @@ -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}") diff --git a/temp.py b/temp.py deleted file mode 100644 index e69de29..0000000