Spaces:
No application file
No application file
fix
Browse files- app/app_routes.py +62 -12
app/app_routes.py
CHANGED
@@ -216,26 +216,53 @@ def register_routes(app, login_required, llm_interface, retriever, stt_client, D
|
|
216 |
# retriever ์ํ ๊ฒ์ฆ
|
217 |
if retriever is None:
|
218 |
logger.warning("Retriever๊ฐ ์ด๊ธฐํ๋์ง ์์์ต๋๋ค.")
|
|
|
|
|
|
|
|
|
|
|
219 |
search_warning = "๊ฒ์ ๊ธฐ๋ฅ์ด ์์ง ์ค๋น๋์ง ์์์ต๋๋ค."
|
220 |
elif hasattr(retriever, 'is_mock') and retriever.is_mock:
|
221 |
logger.info("Mock Retriever ์ฌ์ฉ ์ค - ๊ฒ์ ๊ฒฐ๊ณผ ์์.")
|
|
|
|
|
|
|
|
|
222 |
search_warning = "๊ฒ์ ์ธ๋ฑ์ค๊ฐ ์์ง ๊ตฌ์ถ ์ค์
๋๋ค. ๊ธฐ๋ณธ ์๋ต๋ง ์ ๊ณต๋ฉ๋๋ค."
|
223 |
elif not hasattr(retriever, 'search'):
|
224 |
logger.warning("Retriever์ search ๋ฉ์๋๊ฐ ์์ต๋๋ค.")
|
|
|
|
|
|
|
225 |
search_warning = "๊ฒ์ ๊ธฐ๋ฅ์ด ํ์ฌ ์ ํ๋์ด ์์ต๋๋ค."
|
226 |
else:
|
227 |
try:
|
228 |
logger.info(f"๊ฒ์ ์ํ: {query[:50]}...")
|
229 |
# ์ค๋ฅ ์ ๋น ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ์ถ๊ฐ try-except ๋ธ๋ก
|
230 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
231 |
if not search_results:
|
232 |
logger.info("๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค.")
|
233 |
else:
|
234 |
logger.info(f"๊ฒ์ ๊ฒฐ๊ณผ: {len(search_results)}๊ฐ ํญ๋ชฉ")
|
235 |
-
except Exception as
|
236 |
-
logger.error(f"
|
237 |
search_results = []
|
238 |
-
search_warning = f"๊ฒ์ ์ค ์ค๋ฅ ๋ฐ์: {str(
|
239 |
except Exception as e:
|
240 |
logger.error(f"๊ฒ์ ์ค ์ค๋ฅ ๋ฐ์: {str(e)}", exc_info=True)
|
241 |
search_results = []
|
@@ -393,29 +420,52 @@ def register_routes(app, login_required, llm_interface, retriever, stt_client, D
|
|
393 |
# retriever ์ํ ๊ฒ์ฆ
|
394 |
if retriever is None:
|
395 |
logger.warning("Retriever๊ฐ ์ด๊ธฐํ๋์ง ์์์ต๋๋ค.")
|
|
|
|
|
|
|
|
|
|
|
396 |
search_warning = "๊ฒ์ ๊ธฐ๋ฅ์ด ์์ง ์ค๋น๋์ง ์์์ต๋๋ค."
|
397 |
elif hasattr(retriever, 'is_mock') and retriever.is_mock:
|
398 |
logger.info("Mock Retriever ์ฌ์ฉ ์ค - ๏ฟฝ๏ฟฝ๏ฟฝ์ ๊ฒฐ๊ณผ ์์.")
|
|
|
|
|
|
|
|
|
399 |
search_warning = "๊ฒ์ ์ธ๋ฑ์ค๊ฐ ์์ง ๊ตฌ์ถ ์ค์
๋๋ค. ๊ธฐ๋ณธ ์๋ต๋ง ์ ๊ณต๋ฉ๋๋ค."
|
400 |
elif not hasattr(retriever, 'search'):
|
401 |
logger.warning("Retriever์ search ๋ฉ์๋๊ฐ ์์ต๋๋ค.")
|
|
|
|
|
|
|
402 |
search_warning = "๊ฒ์ ๊ธฐ๋ฅ์ด ํ์ฌ ์ ํ๋์ด ์์ต๋๋ค."
|
403 |
else:
|
404 |
try:
|
405 |
logger.info(f"๊ฒ์ ์ํ: {transcription[:50]}...")
|
406 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
407 |
if not search_results:
|
408 |
logger.info("๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค.")
|
409 |
else:
|
410 |
logger.info(f"๊ฒ์ ๊ฒฐ๊ณผ: {len(search_results)}๊ฐ ํญ๋ชฉ")
|
411 |
-
except Exception as
|
412 |
-
logger.error(f"
|
413 |
search_results = []
|
414 |
-
search_warning = f"๊ฒ์ ์ค ์ค๋ฅ ๋ฐ์: {str(
|
415 |
-
except Exception as e:
|
416 |
-
logger.error(f"๊ฒ์ ์ค ์ค๋ฅ ๋ฐ์: {str(e)}", exc_info=True)
|
417 |
-
search_results = []
|
418 |
-
search_warning = f"๊ฒ์ ์ค ์ค๋ฅ ๋ฐ์: {str(e)}"
|
419 |
except Exception as e:
|
420 |
logger.error(f"๊ฒ์ ์์ง ์ ๊ทผ ์ค ์ค๋ฅ ๋ฐ์: {str(e)}", exc_info=True)
|
421 |
search_results = []
|
|
|
216 |
# retriever ์ํ ๊ฒ์ฆ
|
217 |
if retriever is None:
|
218 |
logger.warning("Retriever๊ฐ ์ด๊ธฐํ๋์ง ์์์ต๋๋ค.")
|
219 |
+
# Retriever๊ฐ None์ธ ๊ฒฝ์ฐ ๋น ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ search ๋ฉ์๋ ์ถ๊ฐ
|
220 |
+
from types import SimpleNamespace
|
221 |
+
retriever = SimpleNamespace()
|
222 |
+
retriever.search = lambda q, **kwargs: []
|
223 |
+
logger.info("์์ retriever ๊ฐ์ฒด ์์ฑ ๋ฐ ๋น search ๋ฉ์๋ ์ถ๊ฐ")
|
224 |
search_warning = "๊ฒ์ ๊ธฐ๋ฅ์ด ์์ง ์ค๋น๋์ง ์์์ต๋๋ค."
|
225 |
elif hasattr(retriever, 'is_mock') and retriever.is_mock:
|
226 |
logger.info("Mock Retriever ์ฌ์ฉ ์ค - ๊ฒ์ ๊ฒฐ๊ณผ ์์.")
|
227 |
+
# search ๋ฉ์๋๊ฐ ์๋์ง ํ์ธ, ์์ผ๋ฉด ์ถ๊ฐ
|
228 |
+
if not hasattr(retriever, 'search'):
|
229 |
+
retriever.search = lambda q, **kwargs: []
|
230 |
+
logger.info("Mock retriever์ search ๋ฉ์๋ ์ถ๊ฐ")
|
231 |
search_warning = "๊ฒ์ ์ธ๋ฑ์ค๊ฐ ์์ง ๊ตฌ์ถ ์ค์
๋๋ค. ๊ธฐ๋ณธ ์๋ต๋ง ์ ๊ณต๋ฉ๋๋ค."
|
232 |
elif not hasattr(retriever, 'search'):
|
233 |
logger.warning("Retriever์ search ๋ฉ์๋๊ฐ ์์ต๋๋ค.")
|
234 |
+
# search ๋ฉ์๋ ๋์ ์ถ๊ฐ
|
235 |
+
retriever.search = lambda q, **kwargs: []
|
236 |
+
logger.info("retriever์ ๋น search ๋ฉ์๋ ๋์ ์ถ๊ฐ")
|
237 |
search_warning = "๊ฒ์ ๊ธฐ๋ฅ์ด ํ์ฌ ์ ํ๋์ด ์์ต๋๋ค."
|
238 |
else:
|
239 |
try:
|
240 |
logger.info(f"๊ฒ์ ์ํ: {query[:50]}...")
|
241 |
# ์ค๋ฅ ์ ๋น ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ์ถ๊ฐ try-except ๋ธ๋ก
|
242 |
+
try:
|
243 |
+
search_results = retriever.search(query, top_k=5, first_stage_k=6)
|
244 |
+
except AttributeError as attr_err:
|
245 |
+
logger.error(f"retriever์ search ๋ฉ์๋๊ฐ ์์ต๋๋ค: {attr_err}", exc_info=True)
|
246 |
+
# retriever๊ฐ MockComponent๊ฐ ์๋๊ฑฐ๋ search ๋ฉ์๋๊ฐ ์๋ ๊ฒฝ์ฐ
|
247 |
+
# ๋์ ์ผ๋ก ๋ฉ์๋ ์ถ๊ฐ
|
248 |
+
if not hasattr(retriever, 'search'):
|
249 |
+
logger.warning("retriever์ search ๋ฉ์๋๋ฅผ ๋์ ์ผ๋ก ์ถ๊ฐํฉ๋๋ค.")
|
250 |
+
retriever.search = lambda q, **kwargs: []
|
251 |
+
search_results = []
|
252 |
+
search_warning = "๊ฒ์ ๊ธฐ๋ฅ์ด ํ์ฌ ์ ํ๋์ด ์์ต๋๋ค."
|
253 |
+
except Exception as search_err:
|
254 |
+
logger.error(f"retriever.search() ํธ์ถ ์ค ์ค๋ฅ ๋ฐ์: {search_err}", exc_info=True)
|
255 |
+
search_results = []
|
256 |
+
search_warning = f"๊ฒ์ ์ค ์ค๋ฅ ๋ฐ์: {str(search_err)}"
|
257 |
+
|
258 |
if not search_results:
|
259 |
logger.info("๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค.")
|
260 |
else:
|
261 |
logger.info(f"๊ฒ์ ๊ฒฐ๊ณผ: {len(search_results)}๊ฐ ํญ๋ชฉ")
|
262 |
+
except Exception as e:
|
263 |
+
logger.error(f"๊ฒ์ ์ฒ๋ฆฌ ์ค ์์์น ๋ชปํ ์ค๋ฅ: {e}", exc_info=True)
|
264 |
search_results = []
|
265 |
+
search_warning = f"๊ฒ์ ์ฒ๋ฆฌ ์ค ์ค๋ฅ ๋ฐ์: {str(e)}"
|
266 |
except Exception as e:
|
267 |
logger.error(f"๊ฒ์ ์ค ์ค๋ฅ ๋ฐ์: {str(e)}", exc_info=True)
|
268 |
search_results = []
|
|
|
420 |
# retriever ์ํ ๊ฒ์ฆ
|
421 |
if retriever is None:
|
422 |
logger.warning("Retriever๊ฐ ์ด๊ธฐํ๋์ง ์์์ต๋๋ค.")
|
423 |
+
# Retriever๊ฐ None์ธ ๊ฒฝ์ฐ ๋น ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ search ๋ฉ์๋ ์ถ๊ฐ
|
424 |
+
from types import SimpleNamespace
|
425 |
+
retriever = SimpleNamespace()
|
426 |
+
retriever.search = lambda q, **kwargs: []
|
427 |
+
logger.info("์์ retriever ๊ฐ์ฒด ์์ฑ ๋ฐ ๋น search ๋ฉ์๋ ์ถ๊ฐ")
|
428 |
search_warning = "๊ฒ์ ๊ธฐ๋ฅ์ด ์์ง ์ค๋น๋์ง ์์์ต๋๋ค."
|
429 |
elif hasattr(retriever, 'is_mock') and retriever.is_mock:
|
430 |
logger.info("Mock Retriever ์ฌ์ฉ ์ค - ๏ฟฝ๏ฟฝ๏ฟฝ์ ๊ฒฐ๊ณผ ์์.")
|
431 |
+
# search ๋ฉ์๋๊ฐ ์๋์ง ํ์ธ, ์์ผ๋ฉด ์ถ๊ฐ
|
432 |
+
if not hasattr(retriever, 'search'):
|
433 |
+
retriever.search = lambda q, **kwargs: []
|
434 |
+
logger.info("Mock retriever์ search ๋ฉ์๋ ์ถ๊ฐ")
|
435 |
search_warning = "๊ฒ์ ์ธ๋ฑ์ค๊ฐ ์์ง ๊ตฌ์ถ ์ค์
๋๋ค. ๊ธฐ๋ณธ ์๋ต๋ง ์ ๊ณต๋ฉ๋๋ค."
|
436 |
elif not hasattr(retriever, 'search'):
|
437 |
logger.warning("Retriever์ search ๋ฉ์๋๊ฐ ์์ต๋๋ค.")
|
438 |
+
# search ๋ฉ์๋ ๋์ ์ถ๊ฐ
|
439 |
+
retriever.search = lambda q, **kwargs: []
|
440 |
+
logger.info("retriever์ ๋น search ๋ฉ์๋ ๋์ ์ถ๊ฐ")
|
441 |
search_warning = "๊ฒ์ ๊ธฐ๋ฅ์ด ํ์ฌ ์ ํ๋์ด ์์ต๋๋ค."
|
442 |
else:
|
443 |
try:
|
444 |
logger.info(f"๊ฒ์ ์ํ: {transcription[:50]}...")
|
445 |
+
try:
|
446 |
+
search_results = retriever.search(transcription, top_k=5, first_stage_k=6)
|
447 |
+
except AttributeError as attr_err:
|
448 |
+
logger.error(f"retriever์ search ๋ฉ์๋๊ฐ ์์ต๋๋ค: {attr_err}", exc_info=True)
|
449 |
+
# retriever๊ฐ MockComponent๊ฐ ์๋๊ฑฐ๋ search ๋ฉ์๋๊ฐ ์๋ ๊ฒฝ์ฐ
|
450 |
+
# ๋์ ์ผ๋ก ๋ฉ์๋ ์ถ๊ฐ
|
451 |
+
if not hasattr(retriever, 'search'):
|
452 |
+
logger.warning("retriever์ search ๋ฉ์๋๋ฅผ ๋์ ์ผ๋ก ์ถ๊ฐํฉ๋๋ค.")
|
453 |
+
retriever.search = lambda q, **kwargs: []
|
454 |
+
search_results = []
|
455 |
+
search_warning = "๊ฒ์ ๊ธฐ๋ฅ์ด ํ์ฌ ์ ํ๋์ด ์์ต๋๋ค."
|
456 |
+
except Exception as search_err:
|
457 |
+
logger.error(f"retriever.search() ํธ์ถ ์ค ์ค๋ฅ ๋ฐ์: {search_err}", exc_info=True)
|
458 |
+
search_results = []
|
459 |
+
search_warning = f"๊ฒ์ ์ค ์ค๋ฅ ๋ฐ์: {str(search_err)}"
|
460 |
+
|
461 |
if not search_results:
|
462 |
logger.info("๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค.")
|
463 |
else:
|
464 |
logger.info(f"๊ฒ์ ๊ฒฐ๊ณผ: {len(search_results)}๊ฐ ํญ๋ชฉ")
|
465 |
+
except Exception as e:
|
466 |
+
logger.error(f"๊ฒ์ ์ฒ๋ฆฌ ์ค ์์์น ๋ชปํ ์ค๋ฅ: {e}", exc_info=True)
|
467 |
search_results = []
|
468 |
+
search_warning = f"๊ฒ์ ์ฒ๋ฆฌ ์ค ์ค๋ฅ ๋ฐ์: {str(e)}"
|
|
|
|
|
|
|
|
|
469 |
except Exception as e:
|
470 |
logger.error(f"๊ฒ์ ์์ง ์ ๊ทผ ์ค ์ค๋ฅ ๋ฐ์: {str(e)}", exc_info=True)
|
471 |
search_results = []
|