Refactor startup event in app.py to streamline knowledge base loading; improve error handling and logging
Browse files
app.py
CHANGED
@@ -299,29 +299,19 @@ vector_store = None
|
|
299 |
async def startup_event():
|
300 |
global vector_store
|
301 |
try:
|
302 |
-
#
|
303 |
-
1/0
|
304 |
-
except:
|
305 |
-
pass
|
306 |
-
|
307 |
-
try:
|
308 |
-
# Сразу запускаем полную пересборку базы знаний
|
309 |
-
vector_store = await build_knowledge_base_async(embeddings, force_rebuild=True)
|
310 |
-
logger.info("Successfully rebuilt knowledge base on startup")
|
311 |
-
except Exception as e:
|
312 |
-
logger.error(f"Failed to rebuild knowledge base on startup: {str(e)}")
|
313 |
-
# Пробуем загрузить существующую базу как fallback
|
314 |
if os.path.exists(os.path.join(VECTOR_STORE_PATH, "index.faiss")):
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
|
|
325 |
|
326 |
# API endpoints
|
327 |
@app.post("/chat", response_model=ChatResponse)
|
|
|
299 |
async def startup_event():
|
300 |
global vector_store
|
301 |
try:
|
302 |
+
# Проверяем существование базы знаний
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
303 |
if os.path.exists(os.path.join(VECTOR_STORE_PATH, "index.faiss")):
|
304 |
+
vector_store = FAISS.load_local(
|
305 |
+
VECTOR_STORE_PATH,
|
306 |
+
embeddings,
|
307 |
+
allow_dangerous_deserialization=True
|
308 |
+
)
|
309 |
+
logger.info("Existing knowledge base loaded successfully")
|
310 |
+
else:
|
311 |
+
logger.info("No existing knowledge base found. Use /rebuild-kb endpoint to create one")
|
312 |
+
except Exception as e:
|
313 |
+
logger.error(f"Error during startup: {str(e)}")
|
314 |
+
vector_store = None
|
315 |
|
316 |
# API endpoints
|
317 |
@app.post("/chat", response_model=ChatResponse)
|