jack 1 ay önce
ebeveyn
işleme
07ff28654f
2 değiştirilmiş dosya ile 9 ekleme ve 5 silme
  1. 5 5
      app/core/tools/file_search_tool.py
  2. 4 0
      app/providers/r2r.py

+ 5 - 5
app/core/tools/file_search_tool.py

@@ -42,7 +42,7 @@ class FileSearchTool(BaseTool):
         """
         置当前 Retrieval 涉及文件信息
         """
-        self.loop = asyncio.get_event_loop()  # 获取当前事件循环
+        loop = asyncio.get_event_loop()  # 获取当前事件循环
         document_id = []
         file_key = []
         filesinfo = []
@@ -66,7 +66,7 @@ class FileSearchTool(BaseTool):
             print(files)
         # r2r接口不提供多条件,否则上面没必要存在
         if len(document_id) > 0:
-            filesinfo += self.loop.run_until_complete(
+            filesinfo += loop.run_until_complete(
                 FileService.list_in_files(ids=document_id, offset=0, limit=100)
             )
             for file in filesinfo:
@@ -90,7 +90,7 @@ class FileSearchTool(BaseTool):
             folder_fileinfo = []
             if asst_folder_ids:
                 for fid in asst_folder_ids:
-                    folder_fileinfo += self.loop.run_until_complete(
+                    folder_fileinfo += loop.run_until_complete(
                         FileService.list_documents(id=fid, offset=0, limit=100)
                     )
                 print(folder_fileinfo)
@@ -117,8 +117,8 @@ class FileSearchTool(BaseTool):
 
         print(file_key)
 
-        self.loop = asyncio.get_event_loop()
-        files = self.loop.run_until_complete(
+        loop = asyncio.get_event_loop()
+        files = loop.run_until_complete(
             FileService.search_in_files(query=query, file_keys=file_keys)
         )
         return files

+ 4 - 0
app/providers/r2r.py

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