shiningcreature commited on
Commit
253d1a2
Β·
verified Β·
1 Parent(s): aea9abb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -10
app.py CHANGED
@@ -5,6 +5,7 @@ from langchain_community.document_loaders import DirectoryLoader, TextLoader
5
  from langchain_community.vectorstores import FAISS
6
  from langchain_community.embeddings import HuggingFaceEmbeddings
7
  from langchain.text_splitter import RecursiveCharacterTextSplitter
 
8
 
9
  # Step 1: Extract ZIP
10
  def extract_zip(zip_path, extract_to):
@@ -18,11 +19,28 @@ def extract_zip(zip_path, extract_to):
18
  def load_knowledge_base(folder_path):
19
  loader = DirectoryLoader(folder_path, glob="*.md", loader_cls=TextLoader)
20
  docs = loader.load()
 
 
 
 
21
  splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
22
  split_docs = splitter.split_documents(docs)
23
- embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/paraphrase-MiniLM-L6-v2")
24
- db = FAISS.from_documents(split_docs, embeddings)
25
- return db
 
 
 
 
 
 
 
 
 
 
 
 
 
26
 
27
  # Streamlit UI
28
  st.title("πŸ“˜ Fitlytic Chatbot")
@@ -40,10 +58,13 @@ else:
40
  st.stop()
41
 
42
  # Step 5: User interaction
43
- query = st.text_input("Ask me anything about Fitlytic:")
44
- if query:
45
- results = db.similarity_search(query, k=1)
46
- if results:
47
- st.success(results[0].page_content)
48
- else:
49
- st.error("πŸ˜• Sorry, I couldn't find an answer. Try rephrasing it.")
 
 
 
 
5
  from langchain_community.vectorstores import FAISS
6
  from langchain_community.embeddings import HuggingFaceEmbeddings
7
  from langchain.text_splitter import RecursiveCharacterTextSplitter
8
+ from transformers import AutoTokenizer
9
 
10
  # Step 1: Extract ZIP
11
  def extract_zip(zip_path, extract_to):
 
19
  def load_knowledge_base(folder_path):
20
  loader = DirectoryLoader(folder_path, glob="*.md", loader_cls=TextLoader)
21
  docs = loader.load()
22
+ if not docs:
23
+ st.error("❌ No documents found in the knowledge base folder.")
24
+ return None
25
+
26
  splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
27
  split_docs = splitter.split_documents(docs)
28
+ if not split_docs:
29
+ st.error("❌ Failed to split documents.")
30
+ return None
31
+
32
+ # Use AutoTokenizer to load the appropriate tokenizer for the model
33
+ model_name = "sentence-transformers/paraphrase-MiniLM-L6-v2"
34
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
35
+
36
+ embeddings = HuggingFaceEmbeddings(model_name=model_name, tokenizer=tokenizer)
37
+
38
+ try:
39
+ db = FAISS.from_documents(split_docs, embeddings)
40
+ return db
41
+ except Exception as e:
42
+ st.error(f"❌ Error creating FAISS index: {e}")
43
+ return None
44
 
45
  # Streamlit UI
46
  st.title("πŸ“˜ Fitlytic Chatbot")
 
58
  st.stop()
59
 
60
  # Step 5: User interaction
61
+ if db:
62
+ query = st.text_input("Ask me anything about Fitlytic:")
63
+ if query:
64
+ results = db.similarity_search(query, k=1)
65
+ if results:
66
+ st.success(results[0].page_content)
67
+ else:
68
+ st.error("πŸ˜• Sorry, I couldn't find an answer. Try rephrasing it.")
69
+ else:
70
+ st.stop()