管理文件
每个 SkillFlaw 服务都自带文件管理系统,你可以把想在流程中使用的文件统一存放在这里。
上传到 SkillFlaw 文件管理中的文件,会存储在 SkillFlaw 的 存储后端(本地或 AWS S3) 中,并且对你所有流程都可用。
把文件上传到 SkillFlaw 文件管理后,文件就有了统一存放位置,也可以在不同流程之间复用,而不必每次都手动重复上传。
使用文件管理界面
你可以通过文件管理界面,把本地文件上传到自己的 SkillFlaw 服务中,也可以集中管理已经上传到服务器上的所有文件。
-
进入 SkillFlaw 文件管理:
- SkillFlaw Desktop:在 SkillFlaw 的 Projects 页面 中,在项目列表下方点击 My Files。
- SkillFlaw OSS:在浏览器中访问你的 SkillFlaw 服务
/files端点,例如http://localhost:7860/files。请根据你的实际部署修改基础地址。 - 仅后端模式:如果你只做程序化文件管理,请直接使用 SkillFlaw API 的文件端点。不过下面的步骤默认你使用的是图形界面。
-
在 My Files 页面中点击 Upload。
-
选择一个或多个文件进行上传。
上传后,你可以在文件管理界面中对文件进行重命名、下载、复制或删除。 若要删除文件,把鼠标悬停在文件图标上并选中它,然后点击 Delete。 你可以一次删除多个文件。 若要下载文件,把鼠标悬停在文件图标上并选中它,然后点击 Download。 如果一次下载多个文件,它们会被打包成 zip 文件保存。
使用 SkillFlaw API 上传和管理文件
通过 SkillFlaw API,你既可以管理 SkillFlaw 文件系统中的文件,也可以在运行时以程序方式把文件发送给流程。
更多说明与示例,请参阅 Files endpoints 与 创建可摄取文件的聊天机器人。
设置最大文件大小
默认最大文件大小为 1024 MB。
如果要修改这个值,请调整 SKILLFLAW_MAX_FILE_SIZE_UPLOAD 环境变量。
在流程中使用文件
如果要在流程中使用 SkillFlaw 文件管理中的文件,请向流程中添加能够接收文件输入的组件,例如 Read File 组件。
例如,你可以向流程中加入 Read File 组件,点击 Select files,然后从 My Files 列表中选择文件。
该列表会显示服务器文件管理系统中的所有文件,但你只能选择 Read File 组件支持的文件类型。 如果你要用的文件类型不受支持,就必须改用支持该类型的其他组件,或者先把文件转换成支持的格式后再上传。
关于 Read File 与其他数据加载组件,请参阅 Read File 组件。
在运行时加载文件
如果你的流程接受文件输入,那么你既可以使用预加载文件,也可以在运行时动态注入文件。 如需在流程中启用文件输入,请执行以下步骤:
-
向流程中添加一个 Read File 组件。
-
点击 Share,选择 API access,然后点击 Input Schema,以便把
tweaks加入自动生成的请求代码片段中。 -
展开 File 区域,找到 Files 行,开启 Expose Input,允许这个参数在运行时通过 SkillFlaw API 动态设置。
-
关闭 Input Schema 面板返回 API access。 此时代码片段中的 payload 会包含
tweaks,其中包含你的 Read File 组件 ID 以及刚刚暴露的path键:_10"tweaks": {_10"File-qYD5w": {_10"path": []_10}_10} -
当你以程序方式运行这个流程时,脚本必须先把文件上传到 SkillFlaw 文件管理,然后把返回的
file_path传给/run请求中的pathtweak:_10"tweaks": {_10"FILE_COMPONENT_ID": {_10"path": [ "file_path" ]_10}_10}完整示例请参阅 创建可摄取文件的聊天机器人 与 Files endpoints。
如果你要上传多个文件,可以在
path数组中传多个file_path,例如[ "path1", "path2" ]。
上传图片
SkillFlaw 支持以下格式的 base64 图片:
- PNG
- JPG/JPEG
- GIF
- BMP
- WebP
你既可以在 Playground 聊天界面上传图片,也可以通过 SkillFlaw API 在运行时传入图片。
-
在 Playground 中,你可以直接把图片拖到聊天输入区域,或点击 Attach image 图标选择图片上传。
-
当你通过
/api/v1/run/$FLOW_ID触发流程时,可以用files参数传入 base64 编码的图片数据:_10curl -X POST "http://$SKILLFLAW_SERVER_ADDRESS/api/v1/run/$FLOW_ID" \_10-H "Content-Type: application/json" \_10-H "x-api-key: $SKILLFLAW_API_KEY" \_10-d '{_10"session_id": "custom_session_123",_10"input_value": "What is in this image?",_10"input_type": "chat",_10"output_type": "chat",_10"files": ["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."]_10}'
如果你需要更专业的图像处理能力,可以查看 [Bundles] 或 自行创建组件。
处理视频文件
关于视频,请参阅 Twelve Labs 与 YouTube Bundles。
配置文件存储
SkillFlaw 的文件管理支持两种存储后端。
-
本地存储:SkillFlaw 默认存储后端。文件保存在 SkillFlaw 配置目录 本地。设置
SKILLFLAW_STORAGE_TYPE=local