jack 4 bulan lalu
induk
melakukan
f788c566e8
2 mengubah file dengan 9 tambahan dan 7 penghapusan
  1. 0 5
      app/providers/r2r.py
  2. 9 2
      app/services/file/impl/r2r_file.py

+ 0 - 5
app/providers/r2r.py

@@ -4,11 +4,6 @@ from r2r import R2RAsyncClient
 from app.libs.util import verify_jwt_expiration
 from config.llm import tool_settings
 
-import nest_asyncio
-
-# 使得异步代码可以在已运行的事件循环中嵌套
-nest_asyncio.apply()
-
 
 class R2R:
     client: R2RAsyncClient

+ 9 - 2
app/services/file/impl/r2r_file.py

@@ -13,6 +13,11 @@ from app.providers.storage import storage
 from app.services.file.impl.oss_file import OSSFileService
 import asyncio
 
+import nest_asyncio
+
+# 使得异步代码可以在已运行的事件循环中嵌套
+nest_asyncio.apply()
+
 
 class R2RFileService(OSSFileService):
     @staticmethod
@@ -60,10 +65,12 @@ class R2RFileService(OSSFileService):
     @staticmethod
     def search_in_files(query: str, file_keys: List[str]) -> dict:
         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}})
         )
+
         if not search_results:
             return files