2.1 KiB
2.1 KiB
IMA Markdown 上传 API
用于将用户选中的单篇 Markdown 知识笔记上传到 daily knowledge base。
凭证
IMA_OPENAPI_CLIENTIDIMA_OPENAPI_APIKEYIMA_DAILY_KNOWLEDGE_BASE_IDIMA_DAILY_KNOWLEDGE_BASE_NAME
凭证定位和恢复见 ima-credential-chain.md。不要在终端输出完整密钥。
上传前检查
- 文件名为
<完整文章标题>.md; title为完整文章标题,不带.md;- Markdown 符合
ima-format-quickref.md; - 内容可追溯到当前 Run Artifact;
- 用户已经明确选择该文章;
- 目标知识库已经解析并验证。
1. Preflight
调用 IMA Skill 的 preflight-check.cjs 检查文件类型、扩展名、大小和 MIME。
预期:
file_ext=md
content_type=text/markdown
media_type=7
2. Create Media
POST /openapi/wiki/v1/create_media
请求核心字段:
{
"file_name": "<完整文章标题>.md",
"file_size": 0,
"content_type": "text/markdown",
"knowledge_base_id": "<daily-kb-id>",
"file_ext": "md"
}
保存返回的 media_id 和 cos_credential。COS 临时凭证只在进程内传递,不打印到聊天或日志。
3. COS Upload
使用 IMA Skill 提供的 cos-upload.cjs,通过参数数组调用并检查:
- 进程
returncode; stderr;- HTTP 上传结果。
不要拼接包含凭证的 Shell 字符串,也不要把多条 JSON 响应重定向到同一个文件。
4. Add Knowledge
POST /openapi/wiki/v1/add_knowledge
核心字段:
{
"media_type": 7,
"media_id": "<media-id>",
"title": "<完整文章标题>",
"knowledge_base_id": "<daily-kb-id>",
"file_info": {
"cos_key": "<cos-key>",
"file_size": 0,
"file_name": "<完整文章标题>.md"
}
}
5. 验证
上传成功不能只依据本地命令退出码。验证目标 knowledge base 中存在对应标题或返回对象,并向用户报告最终结果。
失败时明确报告发生在 Preflight、Create Media、COS Upload 或 Add Knowledge 的哪一步,不改用 URL 导入或 Notes 类型绕过错误。