浏览代码

support config filename in meta for create_blob_message (#15605)

Co-authored-by: StoneFancyX <kindbin@qq.com>
Co-authored-by: crazywoola <427733928@qq.com>
tags/1.1.0
StoneFancyX 7 个月前
父节点
当前提交
2524f16525
没有帐户链接到提交者的电子邮件
共有 2 个文件被更改,包括 13 次插入3 次删除
  1. 10
    3
      api/core/tools/tool_file_manager.py
  2. 3
    0
      api/core/tools/utils/message_transformer.py

+ 10
- 3
api/core/tools/tool_file_manager.py 查看文件

conversation_id: Optional[str], conversation_id: Optional[str],
file_binary: bytes, file_binary: bytes,
mimetype: str, mimetype: str,
filename: Optional[str] = None,
) -> ToolFile: ) -> ToolFile:
extension = guess_extension(mimetype) or ".bin" extension = guess_extension(mimetype) or ".bin"
unique_name = uuid4().hex 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) storage.save(filepath, file_binary)


tool_file = ToolFile( tool_file = ToolFile(
conversation_id=conversation_id, conversation_id=conversation_id,
file_key=filepath, file_key=filepath,
mimetype=mimetype, mimetype=mimetype,
name=filename,
name=present_filename,
size=len(file_binary), size=len(file_binary),
) )



+ 3
- 0
api/core/tools/utils/message_transformer.py 查看文件

meta = message.meta or {} meta = message.meta or {}


mimetype = meta.get("mime_type", "application/octet-stream") mimetype = meta.get("mime_type", "application/octet-stream")
# get filename from meta
filename = meta.get("file_name", None)
# if message is str, encode it to bytes # if message is str, encode it to bytes


if not isinstance(message.message, ToolInvokeMessage.BlobMessage): if not isinstance(message.message, ToolInvokeMessage.BlobMessage):
conversation_id=conversation_id, conversation_id=conversation_id,
file_binary=message.message.blob, file_binary=message.message.blob,
mimetype=mimetype, mimetype=mimetype,
filename=filename,
) )


url = cls.get_tool_file_url(tool_file_id=file.id, extension=guess_extension(file.mimetype)) url = cls.get_tool_file_url(tool_file_id=file.id, extension=guess_extension(file.mimetype))

正在加载...
取消
保存