|
@@ -30,7 +30,9 @@ class FileSearchToolInput(BaseModel):
|
|
|
|
|
|
class FileSearchTool(BaseTool):
|
|
|
name: str = "file_search"
|
|
|
- description: str = "根据用户输入的问题从文件中检索相关的内容,且仅允许调用一次。"
|
|
|
+ description: str = (
|
|
|
+ "## 工具说明:这里是用户上传的文件汇总成知识库,可以根据用户输入的问题从文件知识库中检索相关的内容。## 注意:仅允许每次调用一次。"
|
|
|
+ )
|
|
|
|
|
|
args_schema: Type[BaseModel] = FileSearchToolInput
|
|
|
|
|
@@ -40,6 +42,7 @@ class FileSearchTool(BaseTool):
|
|
|
self.__keys = []
|
|
|
self.__dirkeys = []
|
|
|
self.loop = None
|
|
|
+ self.index = 0
|
|
|
|
|
|
def configure(self, session: Session, run: Run, **kwargs):
|
|
|
# 获取当前事件循环
|
|
@@ -132,9 +135,12 @@ class FileSearchTool(BaseTool):
|
|
|
|
|
|
print(self.__keys)
|
|
|
print(self.__dirkeys)
|
|
|
- files = FileService.search_in_files(
|
|
|
- query=query, file_keys=self.__keys, folder_keys=self.__dirkeys
|
|
|
- )
|
|
|
+ files = []
|
|
|
+ if self.index == 0:
|
|
|
+ files = FileService.search_in_files(
|
|
|
+ query=query, file_keys=self.__keys, folder_keys=self.__dirkeys
|
|
|
+ )
|
|
|
+ self.index = 1
|
|
|
print(files)
|
|
|
return files
|
|
|
|