diff --git a/python/core/component.py b/python/core/component.py index 2468f5d0..da864415 100644 --- a/python/core/component.py +++ b/python/core/component.py @@ -24,7 +24,7 @@ from appbuilder.core.utils import ttl_lru_cache from appbuilder.core._client import HTTPClient, AsyncHTTPClient from appbuilder.core.message import Message - +from urllib.parse import urlparse, unquote class ComponentArguments(BaseModel): """ @@ -581,3 +581,14 @@ def create_output(cls, type, text, role="tool", name="", visible_scope="all", ra }] } return ComponentOutput(**result) + + @staticmethod + def get_filename_from_url(url): + """从给定URL中提取文件名""" + parsed_url = urlparse(url) + # 提取路径部分 + path = parsed_url.path + # 从路径中获取文件名 + filename = path.split('/')[-1] + # 解码URL编码的文件名 + return unquote(filename) diff --git a/python/core/components/v2/text_to_image/component.py b/python/core/components/v2/text_to_image/component.py index 594cbf6b..07972597 100644 --- a/python/core/components/v2/text_to_image/component.py +++ b/python/core/components/v2/text_to_image/component.py @@ -197,7 +197,7 @@ def tool_eval( yield self.create_output( type='image', text={ - 'filename': "", + 'filename': self.get_filename_from_url(img_urls[url_number]), 'url': img_urls[url_number], }, raw_data=raw_data,