如何获取对话中上传的用户文件

在 MaxKB 智能体对话界面上传文件后,可通过链接形式获取文件,链接格式为"http(s)://MaxKB地址/admin/oss/file/${file_id}",下面是获取文件地址的两种方式。

1.通过变量拆分获取

通过指定回复拼接完整的文件在线地址后输出。

2.使用自定义工具获取

工具内容(注意修改 base_url ):

def get_file_url(document_info_array):
    try:
        # 检查 document_info_array 是否为空
        if not document_info_array:
            raise ValueError("document_info_array 未设置值或为空")

        # 检查 document_info_array 是否为列表
        if not isinstance(document_info_array, list):
            raise ValueError("document_info_array 不是一个有效的列表")

        # 获取列表中的第一个字典
        file_info = document_info_array[0]

        # 检查字典中是否存在 'url' 键
        if 'url' not in file_info:
            raise ValueError("无法从数组中提取 'url' 值")

        # 获取文件的在线地址
        file_url = file_info['url']

        # 构造完整的文件URL
        base_url = "http://MaxKB地址/admin/"
        full_file_url = base_url + file_url.lstrip('./')

        return full_file_url
    except ValueError as ve:
        print(f"值错误: {ve}")
    except Exception as e:
        print(f"发生错误: {e}")
    return None

效果: