DOMMETI commited on
Commit
c4deb04
·
verified ·
1 Parent(s): dcf0483

Update src/streamlit_app.py

Browse files
Files changed (1) hide show
  1. src/streamlit_app.py +20 -10
src/streamlit_app.py CHANGED
@@ -1,25 +1,36 @@
1
  import streamlit as st
 
 
2
  from langchain_community.vectorstores import Chroma
3
  from langchain_community.embeddings import HuggingFaceEmbeddings
4
 
5
  st.set_page_config(page_title="RAG Search", page_icon="🔍")
6
 
7
- DB_PATH = "path_to_your_existing_db"
8
- query = st.text_input("Enter your query:", "what is verilog")
 
9
 
10
- # FIX 🔧: Force model to run on CPU
 
 
 
 
 
 
11
  embeddings = HuggingFaceEmbeddings(
12
  model_name="mixedbread-ai/mxbai-embed-large-v1",
13
- model_kwargs={"device": "cpu"}
14
  )
15
 
16
- vectordb = Chroma(persist_directory=DB_PATH)
 
 
 
 
17
 
18
  if st.button("Search"):
19
  st.write("🔎 Searching your local vector database...")
20
- query_vector = embeddings.embed_query(query)
21
- results = vectordb.similarity_search_by_vector(query_vector, k=3)
22
-
23
  if results:
24
  for i, doc in enumerate(results):
25
  st.subheader(f"Result {i+1}")
@@ -27,5 +38,4 @@ if st.button("Search"):
27
  st.caption(doc.metadata)
28
  st.markdown("---")
29
  else:
30
- st.warning("No matching results found.")
31
-
 
1
  import streamlit as st
2
+ import zipfile
3
+ import os
4
  from langchain_community.vectorstores import Chroma
5
  from langchain_community.embeddings import HuggingFaceEmbeddings
6
 
7
  st.set_page_config(page_title="RAG Search", page_icon="🔍")
8
 
9
+ # --- 1️⃣ Unzip chroma_db.zip if not already extracted ---
10
+ ZIP_PATH = os.path.join(os.path.dirname(__file__), "..", "chroma_db.zip")
11
+ DB_PATH = os.path.join(os.path.dirname(__file__), "..", "chroma_db")
12
 
13
+ if not os.path.exists(DB_PATH):
14
+ st.info("📦 Extracting Chroma DB for first-time setup...")
15
+ with zipfile.ZipFile(ZIP_PATH, "r") as zip_ref:
16
+ zip_ref.extractall(DB_PATH)
17
+ st.success("✅ Database extracted successfully!")
18
+
19
+ # --- 2️⃣ Initialize embedding model ---
20
  embeddings = HuggingFaceEmbeddings(
21
  model_name="mixedbread-ai/mxbai-embed-large-v1",
22
+ model_kwargs={"device": "cpu"} # Force CPU for Hugging Face Spaces
23
  )
24
 
25
+ # --- 3️⃣ Load Chroma database ---
26
+ vectordb = Chroma(persist_directory=DB_PATH, embedding_function=embeddings)
27
+
28
+ # --- 4️⃣ Query input & results ---
29
+ query = st.text_input("Enter your query:", "What is SystemVerilog interface?")
30
 
31
  if st.button("Search"):
32
  st.write("🔎 Searching your local vector database...")
33
+ results = vectordb.similarity_search(query, k=3)
 
 
34
  if results:
35
  for i, doc in enumerate(results):
36
  st.subheader(f"Result {i+1}")
 
38
  st.caption(doc.metadata)
39
  st.markdown("---")
40
  else:
41
+ st.warning("⚠️ No results found.")