|
|
|
@@ -63,11 +63,18 @@ class ToolFileManager: |
|
|
|
conversation_id: Optional[str], |
|
|
|
file_binary: bytes, |
|
|
|
mimetype: str, |
|
|
|
filename: Optional[str] = None, |
|
|
|
) -> ToolFile: |
|
|
|
extension = guess_extension(mimetype) or ".bin" |
|
|
|
unique_name = uuid4().hex |
|
|
|
filename = f"{unique_name}{extension}" |
|
|
|
filepath = f"tools/{tenant_id}/{filename}" |
|
|
|
unique_filename = f"{unique_name}{extension}" |
|
|
|
# default just as before |
|
|
|
present_filename = unique_filename |
|
|
|
if filename is not None: |
|
|
|
has_extension = len(filename.split(".")) > 1 |
|
|
|
# Add extension flexibly |
|
|
|
present_filename = filename if has_extension else f"{filename}{extension}" |
|
|
|
filepath = f"tools/{tenant_id}/{unique_filename}" |
|
|
|
storage.save(filepath, file_binary) |
|
|
|
|
|
|
|
tool_file = ToolFile( |
|
|
|
@@ -76,7 +83,7 @@ class ToolFileManager: |
|
|
|
conversation_id=conversation_id, |
|
|
|
file_key=filepath, |
|
|
|
mimetype=mimetype, |
|
|
|
name=filename, |
|
|
|
name=present_filename, |
|
|
|
size=len(file_binary), |
|
|
|
) |
|
|
|
|