Rulga commited on
Commit
a3b7b74
·
1 Parent(s): 286582c

fix: enhance knowledge base creation and loading error handling

Browse files
Files changed (1) hide show
  1. app.py +18 -7
app.py CHANGED
@@ -184,19 +184,30 @@ def main():
184
  llm, embeddings = init_models()
185
 
186
  # Check if knowledge base exists
187
- if not os.path.exists(VECTOR_STORE_PATH):
188
- st.warning("Knowledge base not found.")
189
  if st.button("Create Knowledge Base"):
190
- vector_store = build_knowledge_base(embeddings)
191
- st.session_state.vector_store = vector_store
192
- st.rerun()
193
- else:
194
- if 'vector_store' not in st.session_state:
 
 
 
 
 
 
 
 
195
  st.session_state.vector_store = FAISS.load_local(
196
  VECTOR_STORE_PATH,
197
  embeddings,
198
  allow_dangerous_deserialization=True
199
  )
 
 
 
200
 
201
  # Chat mode
202
  if 'vector_store' in st.session_state:
 
184
  llm, embeddings = init_models()
185
 
186
  # Check if knowledge base exists
187
+ if not os.path.exists(os.path.join(VECTOR_STORE_PATH, "index.faiss")):
188
+ st.warning("Knowledge base not found. Please create it first.")
189
  if st.button("Create Knowledge Base"):
190
+ with st.spinner("Creating knowledge base... This may take a few minutes."):
191
+ try:
192
+ vector_store = build_knowledge_base(embeddings)
193
+ st.session_state.vector_store = vector_store
194
+ st.success("Knowledge base created successfully!")
195
+ st.rerun()
196
+ except Exception as e:
197
+ st.error(f"Error creating knowledge base: {e}")
198
+ return # Exit if no knowledge base exists
199
+
200
+ # Load existing knowledge base
201
+ if 'vector_store' not in st.session_state:
202
+ try:
203
  st.session_state.vector_store = FAISS.load_local(
204
  VECTOR_STORE_PATH,
205
  embeddings,
206
  allow_dangerous_deserialization=True
207
  )
208
+ except Exception as e:
209
+ st.error(f"Error loading knowledge base: {e}")
210
+ return
211
 
212
  # Chat mode
213
  if 'vector_store' in st.session_state: