IMA 知识库上传
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_af179082/ima-file-upload。
技能介绍
解决 IMA 知识库文件入库的工程痛点
直接通过 IMA MCP 上传大文件或批量文件时,常面临几个工程痛点:原生接口不支持新建知识库与移动/删除文件,COS 官方 SDK 依赖安装缓慢,且临时凭证的签名与生命周期管理容易出错。本技能通过封装底层的 COS 签名直传逻辑,补齐了这些原生能力缺失,让文件入库流程具备确定性和可脚本化能力。
核心能力与关键步骤
技能将上传拆解为三个严谨的步骤,确保数据一致性与安全性:
- 前置校验与目标定位:首先确认
ima-mcp连接器已连接。由于无法新建知识库,需通过get_addable_knowledge_base_list获取可写库列表。同时,利用get_knowledge_list排查用户口中的“知识库”是否实为文件夹(media_type: 99),避免错传。 - 零依赖 COS 直传:调用
create_media获取临时凭证(需严格传入精确字节数与content_type)。随后,利用内置的零依赖脚本scripts/cos_put.py执行 PUT 请求。脚本实现了 COS Signature v5 签名算法,串行处理tasks.json中的上传任务,大幅省去了安装cos-python-sdk-v5的时间。 - 入库与目录归置:调用
add_knowledge完成最终入库。若需将文件移入特定文件夹,可直接复用media_id并传入目标folder_id,配合DUPLICATE_NAME_STRATEGY_REPLACE策略,即可实现“移动”效果(原生无 move 工具)。
适用边界与安全注意点
该方案不适用于新建知识库场景,且无法删除已入库文件。在处理扫描版 PDF 时,需注意单文件体积上限,建议先用 Pillow 将每页缩放至 1240px 宽并采用 JPEG q72 压缩,控制在 30MB 以内。此外,tasks.json 中包含明文临时密钥,上传完成后必须立即从工作区删除,以防凭证泄露。入库后可通过 get_knowledge_list 轮询 media_state 与 parse_progress 验证解析状态。
使用场景
- 运维人员需将多份技术文档批量上传至已有IMA知识库指定文件夹,因无移动工具需复用媒体ID实现归置
- 开发者需上传大体积扫描版PDF至知识库,需先压缩至30MB内并通过精确字节校验避免凭证失效
- 资料管理员需将文件快速入库至知识库子文件夹,需用首次调用带folder_id的方式省去后续移动步骤
- 技术支持需验证文件上传后解析状态,需通过轮询media_state与parse_progress确认内容正确
适合人员
- 知识库运维工程师:需批量上传技术文档至IMA知识库,需解决无移动工具时的文件夹归置问题
- 文档工程师:需上传扫描版PDF至知识库,需掌握大文件压缩与COS签名直传的零依赖实现
- AI应用开发者:需构建IMA知识库文件上传流程,需处理临时凭证生命周期与入库目录定位
- 内容管理员:需将文件快速入库至指定文件夹,需用首次调用带folder_id的高效入库方式