Dify API 文件上传
一、Dify API 文件上传功能
Dify 提供的文件上传功能允许用户将文件上传到其平台,并在工作流或聊天应用中进行处理。这一功能特别适用于需要处理大量信息的场景,例如文档分析、代码审查、学习辅导和法律援助等。通过文件上传,用户可以将文件内容直接传递给支持文件处理的 LLM(大型语言模型),从而实现更高效的信息处理。
二、支持的文件类型
Dify 支持多种文件类型,包括但不限于以下格式:
- 文档:TXT、Markdown、PDF、HTML、XLSX、XLS、DOCX、CSV、EML、MSG、PPTX、PPT、XML、EPUB。
- 图片:JPG、JPEG、PNG、GIF、WEBP、SVG。
- 音频:MP3、M4A、WAV、WEBM、AMR。
- 视频:MP4、MOV、MPEG、MPGA。
三、文件上传的实现方法
(一)通过 API 上传文件
-
获取 API Key
在使用 Dify API 上传文件之前,需要获取一个有效的 API Key。此 Key 用于身份验证,确保请求的安全性。 -
构建上传请求
使用 Python 的requests
库可以轻松实现文件上传。以下是一个示例代码:import requests def upload_file(local_file_path, api_key): file_type = 'application/pdf' # 根据文件类型修改 user = "abc-123" # 用户标识 url = 'https://api.dify.ai/v1/files/upload' headers = {'Authorization': f'Bearer {api_key}'} with open(local_file_path, 'rb') as file: files = {'file': (local_file_path, file, file_type)} data = {'user': user} response = requests.post(url, headers=headers, files=files, data=data) if response.status_code == 201: print("文件上传成功") return response.json()['id'] else: print(f"文件上传失败,状态码: {response.status_code}") return None
-
处理上传结果
成功上传文件后,API 会返回一个文件 ID,该 ID 可用于后续的工作流调用。 -
注意 : dify API 有两种文件上传方式 Dify API的 传参方式分别是以下两种 :
- sys.file
# http://dify.api/v1/chat-messages 参数设置
{
'inputs': {}
,'query': query,'response_mode': 'streaming','conversation_id': '','user': USER_ID,
'files':[{ "type": category, "transfer_method": "local_file", "upload_file_id": file_id}]
}
- 用户输入参数 Upload_file 注意是否选择"必传"选项
# http://dify.api/v1/chat-messages 参数设置:
{
'inputs': {"upload_file":{"type":category,"transfer_method":"local_file","url":"","upload_file_id":file_id}}
,'query': query,'response_mode': 'streaming','conversation_id': '','user': USER_ID,
'files': []
}
(二)在 Dify 应用中启用文件上传
-
在 ChatFlow 或 Workflow 中启用文件上传
- 在 ChatFlow 应用中,可以通过点击右上角的“功能”按钮,开启文件上传功能。用户可以在聊天窗口中直接上传文件。
- 在 Workflow 应用中,可以在“开始节点”添加文件变量。
-
文件处理与解析
- 对于文档类型的文件,可以使用“文档提取器”节点将文件内容转换为文本,供 LLM 处理。
- 对于图片或音频文件,可以直接在 LLM 节点中使用支持视觉或音频处理的模型。
四、应用场景
-
文档分析
上传学术研究报告文件,LLM 可以快速总结要点,根据文件内容回答相关问题。 -
代码审查
开发者上传代码文件,获得优化建议与 bug 检测。 -
学习辅导
学生上传作业或学习资料,获得个性化的解释和指导。 -
法律援助
上传完整的合同文本,由 LLM 协助审查条款,指出潜在风险。
五、注意事项
-
文件大小限制
每个文件的大小上限为 15MB。 -
文件类型支持
确保上传的文件类型在支持的范围内,否则可能导致上传失败。 -
安全性
建议将 API Key 存储在安全的后端环境中,避免泄露。
六、总结
Dify 的文件上传功能为用户提供了强大的工具,可以将文件内容直接传递给 LLM 进行处理。无论是文档分析、代码审查还是法律援助,这一功能都能显著提高工作效率。通过简单的 API 调用,用户可以轻松实现文件上传,并在 Dify 的工作流中进行进一步处理。