|
@@ -13,6 +13,11 @@ from app.providers.storage import storage
|
|
from app.services.file.impl.oss_file import OSSFileService
|
|
from app.services.file.impl.oss_file import OSSFileService
|
|
import asyncio
|
|
import asyncio
|
|
|
|
|
|
|
|
+import nest_asyncio
|
|
|
|
+
|
|
|
|
+# 使得异步代码可以在已运行的事件循环中嵌套
|
|
|
|
+nest_asyncio.apply()
|
|
|
|
+
|
|
|
|
|
|
class R2RFileService(OSSFileService):
|
|
class R2RFileService(OSSFileService):
|
|
@staticmethod
|
|
@staticmethod
|
|
@@ -60,10 +65,12 @@ class R2RFileService(OSSFileService):
|
|
@staticmethod
|
|
@staticmethod
|
|
def search_in_files(query: str, file_keys: List[str]) -> dict:
|
|
def search_in_files(query: str, file_keys: List[str]) -> dict:
|
|
files = {}
|
|
files = {}
|
|
- asyncio.create_task(r2r.init())
|
|
|
|
- search_results = asyncio.create_task(
|
|
|
|
|
|
+ loop = asyncio.get_event_loop() # 获取当前事件循环
|
|
|
|
+ loop.run_until_complete(r2r.init()) # 确保 r2r 已初始化
|
|
|
|
+ search_results = loop.run_until_complete(
|
|
r2r.search(query, filters={"file_key": {"$in": file_keys}})
|
|
r2r.search(query, filters={"file_key": {"$in": file_keys}})
|
|
)
|
|
)
|
|
|
|
+
|
|
if not search_results:
|
|
if not search_results:
|
|
return files
|
|
return files
|
|
|
|
|