
# Knowledge Base (知识库)

> ⚠️ **搜索范围限制**：本技能配置为**仅限搜索以下两个知识库**：
> - `lofJ7cHGhLIvU_ISjQ0tmdYkgzvfjhvZrfVaoo4s7Jc=` — 宝锐生命科学销售（管理+技能+行业）
> - `fwEO41E0Ef0CfulmtQHYgYQy_jBsbl6tXE5x6VYLIoA=` — 宝锐诊断原料销售（管理+技能+业务知识）
>
> 调用 `search_knowledge` 等搜索接口时，必须使用上述 KB ID。如需扩展范围，需用户明确授权。

> ⚠️ **API 能力边界**：IMA OpenAPI **只能管理知识库元数据（搜索文件名、浏览列表、上传文件）**，**无法读取或下载文件内容**。如需分析文件内容，请使用本地文件路径（`/Users/liuxinyuan/work/` 等），而非依赖知识库中的文件。

> Prerequisites: see root `../SKILL.md` for setup, credentials, and `ima_api()` helper.

API base path: `openapi/wiki/v1`

通过 IMA Wiki OpenAPI 管理用户知识库，支持上传文件、添加网页链接、搜索知识库内容、浏览知识库列表和获取知识库详情。

完整的数据结构和接口参数详见 `references/api.md`。

## 接口决策表

| 用户意图                                      | 调用接口                                                               | 关键参数                                                                 |
| --------------------------------------------- | ---------------------------------------------------------------------- | ------------------------------------------------------------------------ |
| 上传文件到知识库                              | `check_repeated_names` → `create_media` → COS Upload → `add_knowledge` | `media_type`（按扩展名），`knowledge_base_id`，`file_name`，`file_size`  |
| 上传文件到知识库的某个文件夹                  | 先定位文件夹 → 同上（`folder_id` 传入目标文件夹 ID）                   | 见「文件夹操作」章节                                                     |
| 添加网页/微信文章到知识库                     | `import_urls`                                                          | `urls`（1-10 个），`knowledge_base_id`，可选 `folder_id`（省略则根目录） |
| 添加笔记到知识库                              | `add_knowledge`                                                        | `media_type=11`，`note_info.content_id=<doc_id>`，`knowledge_base_id`    |
| 添加 URL（文件型）到知识库                    | `check_repeated_names` → 下载文件 → 走"上传文件"流程                   | URL 指向 PDF/Word/PPT 等文件时，按文件方式处理                           |
| 检查文件名是否重复                            | `check_repeated_names`                                                 | `params[].name`，`params[].media_type`，`knowledge_base_id`，`folder_id` |
| 获取知识库信息                                | `get_knowledge_base`                                                   | `ids`（1-20 个，不重复）                                                 |
| 浏览知识库内容列表 / 浏览文件夹               | `get_knowledge_list`                                                   | `knowledge_base_id`，`cursor`，`limit`(1~50)，可选 `folder_id`           |
| 在知识库中搜索（含文件和文件夹）              | `search_knowledge`                                                     | `query`，`knowledge_base_id`，`cursor`                                   |
| 按关键词查找知识库（用户知道名字但不知道 ID） | `search_knowledge_base`                                                | `query`，`cursor`，`limit`(1~50)                                         |
| 查看/了解自己有哪些知识库                     | `search_knowledge_base`（`query` 传空字符串）                          | `query: ""`，`cursor`，`limit`(1~50)                                     |
| 添加内容但**未指定**目标知识库                | `get_addable_knowledge_base_list` → 展示列表让用户选择                 | `cursor`，`limit`(1~50)                                                  |

## 详细资料（按需查阅）

> 以下文件不在本 SKILL.md 内，需要时再读；正文只保留每次都会用到的部分。

- **`references/archive-changelog.md`** — 含 4 节：1. 类型支持检查、2. 文件大小检查、3. 音频时长检查、4. 文件名重复检查
- **`references/data-pipeline.md`** — 含 1 节：上传文件到知识库
- **`references/details.md`** — 含 8 节：`search_knowledge_base` vs `get_addable_knowledge_base_list` 选择指南、添加网页/微信文章到知识库、添加笔记到知识库、添加 URL 到知识库（自动检测文件型 URL）、文件夹操作、获取知识库信息
- **`references/frontend-ui.md`** — 含 2 节：在知识库中搜索、搜索知识库列表

