ima wiki 编译器 — ima 维基 编译器
v1.0.0知识库Wiki编译——将原始资料系统化组织为结构清晰的Wiki知识体系。当用户说"建知识库""整理资料库""编译知识库""搭建wiki""知识体系化""把资料整理成wiki",或上传了一批资料希望系统化组织时触发。不适用于单篇摘要、简单问答、或仅搜索已有知识库内容的场景。 翻译后: 知识库Wiki编译——将原始资料系统化组织为结构清晰的Wiki知识体系。当用户说“建知识库”、“整理资料库”、“编译知识库”、“搭建wiki”、“知识体系化”、“把资料整理成wiki”,或上传了一批资料希望系统化组织时触发。不适用于单篇摘要、简单问答、或仅搜索已有知识库内容的场景。
运行时依赖
版本
对比知识库:获取文件夹中最新的文件列表,与旧版本的"相关主题"章节进行对比
安装命令
点击复制技能文档
知识库 Wiki 编译器 核心理念:用 LLM 作为"知识编译器",将原始资料一次性编译为结构清晰、内部互联的 Wiki 知识库,而非依赖传统 RAG 的碎片检索拼凑。编译后的 Wiki 是"真理之源"——LLM 直接基于对 Wiki 整体结构的理解进行自检索和回答,知识在系统中持续累积和演化。
整体流程 需求理解与资料收集 — 明确主题边界 检查旧版本 — 判断是否已有知识导览,决定增量更新还是新建 编译生成 — 5步法构建Wiki知识体系(新建或增量更新) 主动维护与迭代
第一步:需求理解与资料收集 判断用户状态: 用户只给了主题?→ 先明确知识库边界和目标 用户已有资料(上传了文件 / 指定了知识库)?→ 直接进入编译 用户想维护已有 Wiki?→ 跳到第三步 明确知识库边界: 确认主题范围(如"量化投资""大模型应用") 确认目标受众和用途(如"个人研究""团队参考") 这些决定文件夹层级深度和概念粒度 收集原始资料("源代码"): 来源包括:用户上传的文件、已有知识库中的内容、网页文章、公众号文章 此阶段追求完整性,不追求结构——所有资料都是后续编译的"原材料" 如果用户指定了知识库(kb_id),用 get_knowledge_list 逐级浏览并收集所有文件 如果用户资料不足,主动用 search(source="web") 补充关键资料,但需告知用户 确认门: 向用户展示收集到的资料清单和知识库边界,确认后再进入编译。
第二步:检查旧版本 重要:每次编译前必须检查是否已有该主题的知识导览,避免重复创建或丢失历史版本信息。 检查方式 在目标文件夹中搜索标题包含"主题导览"的笔记: curl -s -X POST "https://ima.qq.com/openapi/wiki/v1/get_knowledge_list" \ -H "ima-openapi-clientid: $IMA_OPENAPI_CLIENTID" \ -H "ima-openapi-apikey: $IMA_OPENAPI_APIKEY" \ -H "Content-Type: application/json" \ -d '{"knowledge_base_id": "", "folder_id": "", "count": 50}' | \ python3 -c "import sys,json; data=json.load(sys.stdin); print([f['title'] for f in data.get('data',{}).get('list',[])])" 如果找到"主题导览:xxx"笔记,记录其 note_id 和版本信息 如果没找到,则进入新建流程 判断逻辑 情况 处理方式 已有该主题的旧版本导览 增量更新:读取旧版本内容 → 对比知识库增量 → 更新导览 已有其他主题的导览(非本主题) 新建:按正常流程创建新导览 没有任何知识导览 新建:按正常流程创建新导览
增量更新流程 当存在旧版本时,执行以下步骤: 读取旧版本:调用 export_note 获取旧版本完整内容 提取版本信息:从 YAML front matter 获取 version、changelog 对比知识库:获取文件夹中最新的文件列表,与旧版本"相关主题"章节进行对比 识别增量内容: 新增的文章(需要添加到对应核心概念的关键要素中) 删除的文章(需要从列表中移除) 概念变化(如有新增核心概念) 更新导览内容: 保留原有结构和核心思想 在关键要素中补充新增文章,移除已删除文章 更新"实践建议"部分 更新学习路径(如有新增依赖) 更新版本号: 仅增删文章 → patch +0.0.1 修改关键要素/实践建议 → minor +0.1 结构变化 → major +1.0 追加 changelog:记录本次更新的内容摘要
第三步:编译生成(新建模式) 适用于:首次编译或结构重大调整 步骤1:明确主题 — 确定核心概念 在阅读所有原始资料后,明确: 主题定位:这个知识库要解决什么问题? 核心概念:有哪些不可分割的基础概念? 边界范围:什么在范围内,什么不在? 步骤2:梳理关键词 — 提取关键要素 对每个核心概念,提取: 关键要素:围绕该概念的子主题或相关问题 核心思想:每个要素要传达的1-2句话 步骤3:发现关系 — 找出逻辑关联 建立概念之间的连接: 层级关系:上下级依赖(如:随机过程 → 伊藤积分) 并列关系:同层级互补(如:Alpha因子 || 风险因子) 因果关系:先后依赖(如:因子拥挤 → IC衰减) 对立关系:互斥选择(如:简约模型 vs 复杂模型) 步骤4:呈现结构 — 可视化知识网络 将关系转化为: 知识网络图:用表格形式展示概念关联 推荐路径:按难度/应用场景的学习路线 步骤5:美化优化 — 提升可读性 标题规范:简洁有力,避免冗长 排版美观:合理使用分级标题、列表、空行 信息密度:每个章节有明确的信息承载量 可读性:避免过长的段落,保持节奏
第四步:增量更新模式 适用于:知识库已有该主题旧版本导览,需要增量更新 4.1 读取旧版本 # 导出旧版本笔记内容 curl -s -X POST "https://ima.qq.com/openapi/note/v1/export_note" \ -H "ima-openapi-clientid: $IMA_OPENAPI_CLIENTID" \ -H "ima-openapi-apikey: $IMA_OPENAPI_APIKEY" \ -H "Content-Type: application/json" \ -d '{"note_id":"<旧版note_id>","target_content_format":1}' | \ python3 -c "import sys,json,urllib.request; d=json.load(sys.stdin); url=d['data']['content_url']; req=urllib.request.Request(url); resp=urllib.request.urlopen(req); print(resp.read().decode('utf-8'))" 4.2 提取版本信息 从 YAML front matter 提取: version: 1.0 created: 2026-05-08 updated: 2026-05-08 changelog: - v1.0: 初始版本 4.3 对比知识库增量 获取文件夹最新文件列表,与旧版本对比: # 获取文件夹中的文件列表 curl -s -X POST "https://ima.qq.com/openapi/wiki/v1/get_knowledge_list" \ -H "ima-openapi-clientid: $IMA_OPENAPI_CLIENTID" \ -H "ima-openapi-apikey: $IMA_OPENAPI_APIKEY" \ -H "Content-Type: application/json" \ -d '{"knowledge_base_id": "", "folder_id": "", "count": 100}' | \ python3 -c "import sys,json; data=json.load(sys.stdin); print([f['title'] for f in data.get('data',{}).get('list',[])])" 4.4 识别增量内容 类型 判断方式 更新方式 新增文章 旧版本"四、知识卡片"中不存在 补充到对应核心概念的关键要素中 删除文章 旧版本提及但知识库中已不存在 从列表中移除 概念变化 知识库中出现新的核心概念分类 新增核心概念卡片 4.5 更新导览内容 更新原则: 保留原有结构:不改变核心概念划分方式 更新关键要素:补充/移除文章引用 更新实践建议:根据新增内容调整实践建议 更新学习路径:如有新的依赖关系 4.6 版本号更新 --- version: 1.1 # patch+0.0.1 或 minor+0.1 或 major+1.0 created: 2026-05-08 updated: 2026-05-08 changelog: - v1.1: 增量更新,补充了X篇新文章,更新了关键要素描述 - v1.0: 初始版本 --- 版本号规则: 仅增删文章 → patch +0.0.1 修改关键要素描述或实践