Spaces:
No application file
No application file
fix
Browse files- app/app_routes.py +52 -24
app/app_routes.py
CHANGED
@@ -200,7 +200,7 @@ def register_routes(app, login_required, llm_interface, retriever, stt_client, D
|
|
200 |
"error": "μ± μ΄κΈ°ν μ€...",
|
201 |
"answer": "μ£μ‘ν©λλ€. μμ€ν
μ΄ μμ§ μ€λΉ μ€μ
λλ€.",
|
202 |
"sources": []
|
203 |
-
}), 503
|
204 |
|
205 |
data = request.get_json()
|
206 |
if not data or 'query' not in data:
|
@@ -224,12 +224,18 @@ def register_routes(app, login_required, llm_interface, retriever, stt_client, D
|
|
224 |
logger.warning("Retrieverμ search λ©μλκ° μμ΅λλ€.")
|
225 |
search_warning = "κ²μ κΈ°λ₯μ΄ νμ¬ μ νλμ΄ μμ΅λλ€."
|
226 |
else:
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
233 |
except Exception as e:
|
234 |
logger.error(f"κ²μ μ€ μ€λ₯ λ°μ: {str(e)}", exc_info=True)
|
235 |
search_results = []
|
@@ -261,15 +267,23 @@ def register_routes(app, login_required, llm_interface, retriever, stt_client, D
|
|
261 |
logger.error("LLM μΈν°νμ΄μ€κ° μ€λΉλμ§ μμκ±°λ rag_generate λ©μλκ° μμ΅λλ€.")
|
262 |
answer = "μ£μ‘ν©λλ€. νμ¬ LLM μλΉμ€λ₯Ό μ¬μ©ν μ μμ΅λλ€."
|
263 |
else:
|
264 |
-
# LLM νΈμΆ
|
265 |
if search_warning:
|
266 |
-
|
267 |
-
logger.info(f"κ²½κ³
|
|
|
|
|
268 |
else:
|
269 |
modified_query = query
|
270 |
|
271 |
-
|
272 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
273 |
|
274 |
# μμ€ μ 보 μΆμΆ
|
275 |
sources = []
|
@@ -328,7 +342,7 @@ def register_routes(app, login_required, llm_interface, retriever, stt_client, D
|
|
328 |
is_ready = app_ready_event.is_set() if isinstance(app_ready_event, threading.Event) else False
|
329 |
if not is_ready:
|
330 |
logger.warning("μ±μ΄ μμ§ μ΄κΈ°ν μ€μ
λλ€.")
|
331 |
-
return jsonify({"error": "μ± μ΄κΈ°ν μ€...", "answer": "μ£μ‘ν©λλ€. μμ€ν
μ΄ μμ§ μ€λΉ μ€μ
λλ€."}), 503
|
332 |
|
333 |
# STT ν΄λΌμ΄μΈνΈ νμΈ
|
334 |
if stt_client is None or not hasattr(stt_client, 'transcribe_audio'):
|
@@ -387,16 +401,25 @@ def register_routes(app, login_required, llm_interface, retriever, stt_client, D
|
|
387 |
logger.warning("Retrieverμ search λ©μλκ° μμ΅λλ€.")
|
388 |
search_warning = "κ²μ κΈ°λ₯μ΄ νμ¬ μ νλμ΄ μμ΅λλ€."
|
389 |
else:
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
|
|
|
|
|
|
|
|
|
|
396 |
except Exception as e:
|
397 |
logger.error(f"κ²μ μ€ μ€λ₯ λ°μ: {str(e)}", exc_info=True)
|
398 |
search_results = []
|
399 |
search_warning = f"κ²μ μ€ μ€λ₯ λ°μ: {str(e)}"
|
|
|
|
|
|
|
|
|
400 |
|
401 |
# LLM μλ΅ μμ±
|
402 |
context = ""
|
@@ -422,15 +445,20 @@ def register_routes(app, login_required, llm_interface, retriever, stt_client, D
|
|
422 |
logger.error("LLM μΈν°νμ΄μ€κ° μ€λΉλμ§ μμκ±°λ rag_generate λ©μλκ° μμ΅λλ€.")
|
423 |
answer = "μ£μ‘ν©λλ€. νμ¬ LLM μλΉμ€λ₯Ό μ¬μ©ν μ μμ΅λλ€."
|
424 |
else:
|
425 |
-
# LLM νΈμΆ
|
426 |
if search_warning:
|
427 |
-
|
428 |
-
|
|
|
429 |
else:
|
430 |
modified_query = transcription
|
431 |
|
432 |
-
|
433 |
-
|
|
|
|
|
|
|
|
|
434 |
|
435 |
# μμ€ μ 보 μΆμΆ
|
436 |
sources = []
|
|
|
200 |
"error": "μ± μ΄κΈ°ν μ€...",
|
201 |
"answer": "μ£μ‘ν©λλ€. μμ€ν
μ΄ μμ§ μ€λΉ μ€μ
λλ€.",
|
202 |
"sources": []
|
203 |
+
}), 200 # 503 λμ 200μΌλ‘ λ³κ²½νμ¬ μ±μ΄ μ μ μλ΅νλλ‘ ν¨
|
204 |
|
205 |
data = request.get_json()
|
206 |
if not data or 'query' not in data:
|
|
|
224 |
logger.warning("Retrieverμ search λ©μλκ° μμ΅λλ€.")
|
225 |
search_warning = "κ²μ κΈ°λ₯μ΄ νμ¬ μ νλμ΄ μμ΅λλ€."
|
226 |
else:
|
227 |
+
try:
|
228 |
+
logger.info(f"κ²μ μν: {query[:50]}...")
|
229 |
+
# μ€λ₯ μ λΉ κ²°κ³Όλ₯Ό λ°ννλ μΆκ° try-except λΈλ‘
|
230 |
+
search_results = retriever.search(query, top_k=5, first_stage_k=6)
|
231 |
+
if not search_results:
|
232 |
+
logger.info("κ²μ κ²°κ³Όκ° μμ΅λλ€.")
|
233 |
+
else:
|
234 |
+
logger.info(f"κ²μ κ²°κ³Ό: {len(search_results)}κ° νλͺ©")
|
235 |
+
except Exception as search_err:
|
236 |
+
logger.error(f"retriever.search() νΈμΆ μ€ μ€λ₯ λ°μ: {search_err}", exc_info=True)
|
237 |
+
search_results = []
|
238 |
+
search_warning = f"κ²μ μ€ μ€λ₯ λ°μ: {str(search_err)}"
|
239 |
except Exception as e:
|
240 |
logger.error(f"κ²μ μ€ μ€λ₯ λ°μ: {str(e)}", exc_info=True)
|
241 |
search_results = []
|
|
|
267 |
logger.error("LLM μΈν°νμ΄μ€κ° μ€λΉλμ§ μμκ±°λ rag_generate λ©μλκ° μμ΅λλ€.")
|
268 |
answer = "μ£μ‘ν©λλ€. νμ¬ LLM μλΉμ€λ₯Ό μ¬μ©ν μ μμ΅λλ€."
|
269 |
else:
|
270 |
+
# LLM νΈμΆ μ κ²μ κ²½κ³ μ²λ¦¬ μΆκ°
|
271 |
if search_warning:
|
272 |
+
# κ²½κ³ λ©μμ§λ₯Ό 쿼리μ μΆκ°νλ λμ λ΄λΆμ μΌλ‘ μ²λ¦¬ (μ½ν
μΈ λ§ μ λ¬)
|
273 |
+
logger.info(f"κ²μ κ²½κ³ μμ: {search_warning}")
|
274 |
+
# μλ μΏΌλ¦¬λ§ μ¬μ©
|
275 |
+
modified_query = query
|
276 |
else:
|
277 |
modified_query = query
|
278 |
|
279 |
+
try:
|
280 |
+
answer = llm_interface.rag_generate(modified_query, context, llm_id=llm_id)
|
281 |
+
logger.info(f"LLM μλ΅ μμ± μλ£ (κΈΈμ΄: {len(answer)})")
|
282 |
+
|
283 |
+
# κ²μ κ²½κ³ κ° μμ κ²½μ°, μλ΅ μμ κ²½κ³ λ©μμ§ μΆκ° μμ΄ κ·Έλλ‘ λ°ν
|
284 |
+
except Exception as llm_err:
|
285 |
+
logger.error(f"LLM νΈμΆ μ€ μ€λ₯: {llm_err}", exc_info=True)
|
286 |
+
answer = f"μ£μ‘ν©λλ€. μλ΅ μμ± μ€ μ€λ₯κ° λ°μνμ΅λλ€: {str(llm_err)}"
|
287 |
|
288 |
# μμ€ μ 보 μΆμΆ
|
289 |
sources = []
|
|
|
342 |
is_ready = app_ready_event.is_set() if isinstance(app_ready_event, threading.Event) else False
|
343 |
if not is_ready:
|
344 |
logger.warning("μ±μ΄ μμ§ μ΄κΈ°ν μ€μ
λλ€.")
|
345 |
+
return jsonify({"error": "μ± μ΄κΈ°ν μ€...", "answer": "μ£μ‘ν©λλ€. μμ€ν
μ΄ μμ§ μ€λΉ μ€μ
λλ€."}), 200 # 503 λμ 200μΌλ‘ λ³κ²½
|
346 |
|
347 |
# STT ν΄λΌμ΄μΈνΈ νμΈ
|
348 |
if stt_client is None or not hasattr(stt_client, 'transcribe_audio'):
|
|
|
401 |
logger.warning("Retrieverμ search λ©μλκ° μμ΅λλ€.")
|
402 |
search_warning = "κ²μ κΈ°λ₯μ΄ νμ¬ μ νλμ΄ μμ΅λλ€."
|
403 |
else:
|
404 |
+
try:
|
405 |
+
logger.info(f"κ²μ μν: {transcription[:50]}...")
|
406 |
+
search_results = retriever.search(transcription, top_k=5, first_stage_k=6)
|
407 |
+
if not search_results:
|
408 |
+
logger.info("κ²μ κ²°κ³Όκ° μμ΅λλ€.")
|
409 |
+
else:
|
410 |
+
logger.info(f"κ²μ κ²°κ³Ό: {len(search_results)}κ° νλͺ©")
|
411 |
+
except Exception as search_err:
|
412 |
+
logger.error(f"retriever.search() νΈμΆ μ€ μ€λ₯ λ°μ: {search_err}", exc_info=True)
|
413 |
+
search_results = []
|
414 |
+
search_warning = f"κ²μ μ€ μ€λ₯ λ°μ: {str(search_err)}"
|
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 = []
|
422 |
+
search_warning = f"κ²μ μμ§ μ κ·Ό μ€ μ€λ₯ λ°μ: {str(e)}"
|
423 |
|
424 |
# LLM μλ΅ μμ±
|
425 |
context = ""
|
|
|
445 |
logger.error("LLM μΈν°νμ΄μ€κ° μ€λΉλμ§ μμκ±°λ rag_generate λ©μλκ° μμ΅λλ€.")
|
446 |
answer = "μ£μ‘ν©λλ€. νμ¬ LLM μλΉμ€λ₯Ό μ¬μ©ν μ μμ΅λλ€."
|
447 |
else:
|
448 |
+
# LLM νΈμΆ μ κ²μ κ²½κ³ μ²λ¦¬ μΆκ°
|
449 |
if search_warning:
|
450 |
+
logger.info(f"κ²μ κ²½κ³ μμ: {search_warning}")
|
451 |
+
# μλ μΏΌλ¦¬λ§ μ¬μ©
|
452 |
+
modified_query = transcription
|
453 |
else:
|
454 |
modified_query = transcription
|
455 |
|
456 |
+
try:
|
457 |
+
answer = llm_interface.rag_generate(modified_query, context, llm_id=llm_id)
|
458 |
+
logger.info(f"LLM μλ΅ μμ± μλ£ (κΈΈμ΄: {len(answer)})")
|
459 |
+
except Exception as llm_err:
|
460 |
+
logger.error(f"LLM νΈμΆ μ€ μ€λ₯: {llm_err}", exc_info=True)
|
461 |
+
answer = f"μ£μ‘ν©λλ€. μλ΅ μμ± μ€ μ€λ₯κ° λ°μνμ΅λλ€: {str(llm_err)}"
|
462 |
|
463 |
# μμ€ μ 보 μΆμΆ
|
464 |
sources = []
|