|
@@ -41,8 +41,29 @@ class FileSearchTool(BaseTool):
|
|
|
置当前 Retrieval 涉及文件信息
|
|
|
"""
|
|
|
self.loop = asyncio.get_event_loop() # 获取当前事件循环
|
|
|
- ## 获取文件信息
|
|
|
- files = FileService.get_file_list_by_ids(session=session, file_ids=run.file_ids)
|
|
|
+ document_id = []
|
|
|
+ file_key = []
|
|
|
+ filesinfo = []
|
|
|
+ # 后语要从知识库里选择文件,所以在openassistant的数据库里可能不存在
|
|
|
+ for key in run.file_ids:
|
|
|
+ if len(key) == 36:
|
|
|
+ document_id.append(key)
|
|
|
+ else:
|
|
|
+ file_key.append(key)
|
|
|
+
|
|
|
+ # 这种情况是uuid.ex 这种格式的在最早的时候存在的,后续要去掉
|
|
|
+ if len(file_key) > 0:
|
|
|
+ ## 获取文件信息
|
|
|
+ files = FileService.get_file_list_by_ids(session=session, file_ids=file_key)
|
|
|
+ # r2r接口不提供多条件,否则上面没必要存在
|
|
|
+ if len(document_id) > 0:
|
|
|
+ filesinfo += self.loop.run_until_complete(
|
|
|
+ FileService.list_in_files(ids=document_id, offset=0, limit=100)
|
|
|
+ )
|
|
|
+ for file in filesinfo:
|
|
|
+ self.__filenames.append(file.get("title"))
|
|
|
+ self.__keys.append(file.get("id"))
|
|
|
+
|
|
|
# files = FileService.list_in_files(ids=run.file_ids, offset=0, limit=100)
|
|
|
db_asst = AssistantService.get_assistant_sync(
|
|
|
session=session, assistant_id=run.assistant_id
|