Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -437,40 +437,58 @@ def Gemma3_AI_Translate(query_txt):
|
|
| 437 |
return query_txt
|
| 438 |
|
| 439 |
# --- 검색 ---
|
| 440 |
-
|
| 441 |
-
|
| 442 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 443 |
|
| 444 |
combined_results = []
|
|
|
|
| 445 |
for region in selected_regions:
|
| 446 |
rag = region_rag_objects.get(region)
|
| 447 |
if not rag:
|
| 448 |
continue
|
| 449 |
|
| 450 |
-
|
| 451 |
vectorstore = rag["vectorstore"]
|
| 452 |
sqlite_conn = rag["sqlite_conn"]
|
| 453 |
|
| 454 |
-
if
|
| 455 |
-
|
| 456 |
-
|
| 457 |
-
|
| 458 |
-
|
| 459 |
-
|
| 460 |
-
|
| 461 |
-
|
| 462 |
-
|
| 463 |
-
|
| 464 |
-
|
| 465 |
-
|
| 466 |
-
|
| 467 |
-
|
| 468 |
-
|
| 469 |
-
|
| 470 |
-
|
| 471 |
-
|
| 472 |
-
|
| 473 |
-
|
|
|
|
|
|
|
| 474 |
|
| 475 |
return combined_results
|
| 476 |
|
|
|
|
| 437 |
return query_txt
|
| 438 |
|
| 439 |
# --- 검색 ---
|
| 440 |
+
# 검색 함수 수정
|
| 441 |
+
def search_DB_from_multiple_regions(query, selected_regions, region_rag_objects, custom_filters=None):
|
| 442 |
+
global Filtered_search
|
| 443 |
+
global filters
|
| 444 |
+
|
| 445 |
+
if not selected_regions:
|
| 446 |
+
selected_regions = list(region_rag_objects.keys())
|
| 447 |
+
|
| 448 |
+
print(f"Translated Query : {query}")
|
| 449 |
+
|
| 450 |
+
# 커스텀 필터가 제공된 경우 사용
|
| 451 |
+
search_filters = custom_filters if custom_filters is not None else filters
|
| 452 |
+
|
| 453 |
+
# 필터가 설정되어 있는지 확인
|
| 454 |
+
has_filters = any(search_filters.get(key, []) for key in search_filters.keys())
|
| 455 |
+
|
| 456 |
+
print(f"사용된 검색 필터: {search_filters}")
|
| 457 |
+
print(f"필터 사용 여부: {has_filters}")
|
| 458 |
|
| 459 |
combined_results = []
|
| 460 |
+
|
| 461 |
for region in selected_regions:
|
| 462 |
rag = region_rag_objects.get(region)
|
| 463 |
if not rag:
|
| 464 |
continue
|
| 465 |
|
| 466 |
+
ensemble_retriever = rag["ensemble_retriever"]
|
| 467 |
vectorstore = rag["vectorstore"]
|
| 468 |
sqlite_conn = rag["sqlite_conn"]
|
| 469 |
|
| 470 |
+
if ensemble_retriever:
|
| 471 |
+
if has_filters:
|
| 472 |
+
results = reg_embedding_system.search_with_metadata_filter(
|
| 473 |
+
ensemble_retriever=ensemble_retriever,
|
| 474 |
+
vectorstore=vectorstore,
|
| 475 |
+
query=query,
|
| 476 |
+
k=search_document_number,
|
| 477 |
+
metadata_filter=search_filters,
|
| 478 |
+
sqlite_conn=sqlite_conn
|
| 479 |
+
)
|
| 480 |
+
else:
|
| 481 |
+
results = reg_embedding_system.smart_search_vectorstore(
|
| 482 |
+
retriever=ensemble_retriever,
|
| 483 |
+
query=query,
|
| 484 |
+
k=search_document_number,
|
| 485 |
+
vectorstore=vectorstore,
|
| 486 |
+
sqlite_conn=sqlite_conn,
|
| 487 |
+
enable_detailed_search=True
|
| 488 |
+
)
|
| 489 |
+
|
| 490 |
+
print(f"[{region}] 검색 완료: {len(results)}건")
|
| 491 |
+
combined_results.extend(results)
|
| 492 |
|
| 493 |
return combined_results
|
| 494 |
|