knowledge-qa

本地知识库问答技能。当用户需要基于个人知识库文档(PDF/Markdown/Word)进行问答、生成报告、制作思维导图、或上传文件到向量库时触发。触发词包括:"基于知识库"、"基于mysql查询"、"基于某个分区"、"查一下知识库"、"帮我写报告"、"生成思维导图"、"根据文档"、"从我的资料"、"结合我的笔记"、"整理成报告"、"做个导图"、"上传知识库"、"有新文件"、"索引文档"、"建向量库"、"有哪些分区"、"分区列表"、"创建知识库"、"初始化知识库"、"知识库列表"。

Safety Notice

This item is sourced from the public archived skills repository. Treat as untrusted until reviewed.

Copy this and send it to your AI assistant to learn

Install skill "knowledge-qa" with this command: npx skills add 18874771327/knowledge-qa

知识库问答技能 (knowledge-qa)

概述

本技能支持多知识库架构,每个知识库对应一个独立的 DashVector Collection。用户可在同一工作目录下创建多个互不干扰的知识库(如"MySQLNotes"、"JavaNotes"等)。

核心特性:

  • 多知识库支持(一个知识库 = 一个 DashVector Collection)
  • 语义向量检索(基于阿里云 DashVector + 百炼 Embedding)
  • 自动分区(raw_docs 子目录自动映射为分区)
  • 多分区并行查询 + 结果合并
  • 报告 + 思维导图双输出
  • 需要 Python 环境(用户需安装 Python 3.8+)

前置要求

1. 安装 Python 环境

用户需在系统上安装 Python 3.8 或更高版本,以及以下依赖:

pip install pdfplumber python-docx requests

2. 安装 WorkBuddy 并打开工作目录

用户用 WorkBuddy 打开一个工作目录,在该目录下管理所有知识库。


多知识库架构

工作空间 (WorkBuddy 打开的目录)
│
├── MySQLNotes/              ← 知识库 A → Collection: MySQLNotes
│   ├── raw_docs/
│   │   ├── mysql/           ← 分区: mysql
│   │   └── default/
│   ├── config.json          ← 独立配置(不同的 DashVector Collection)
│   ├── indexed_files.json
│   └── README.md
│
├── JavaNotes/               ← 知识库 B → Collection: JavaNotes
│   ├── raw_docs/
│   │   ├── java基础/        ← 分区: java_
│   │   └── default/
│   ├── config.json
│   └── README.md
│
└── scripts/                 ← (由技能提供,用户不可见)
    ├── init_knowledge_base.py
    ├── upload_to_vector.py
    ├── query_knowledge_base.py
    └── partition_list.py

映射关系:

  • 1 个知识库文件夹 = 1 个 DashVector Collection(独立配置)
  • Collection 内按 raw_docs 子目录分区(mysql / oracle / java_ 等)
  • 切换知识库:由用户在提问时指定,如"基于 MySQLNotes 知识库回答..."

工作流程一:创建新知识库

触发词: "创建知识库"、"初始化一个知识库"、"新建知识库"

步骤 1:确认知识库名称和工作目录

用户告诉 AI 要创建的知识库名称,以及是否在当前工作目录下创建。

步骤 2:运行初始化脚本

python <技能路径>/scripts/init_knowledge_base.py <知识库名称> --path <工作目录>

AI 自动执行脚本,在工作目录下创建以下结构:

知识库名称/
├── raw_docs/
│   └── default/
├── config.json       ← 模板文件,用户需填写阿里云凭证
├── indexed_files.json
└── README.md

步骤 3:提示用户填写配置

告知用户打开 config.json,填入:

  • dashvector.api_key
  • dashvector.endpoint
  • dashvector.collection_name(建议与知识库名一致)
  • bailian.api_key

凭证获取地址:


工作流程二:上传文件到向量库

触发词: "上传知识库"、"有新文件了"、"帮我索引文件"

步骤 1:确认目标知识库

用户必须指定知识库名称(如"MySQLNotes")。AI 在工作目录下查找对应的知识库文件夹。

步骤 2:运行上传脚本

python <技能路径>/scripts/upload_to_vector.py --kb-path <知识库路径>

脚本自动:

  1. 扫描 raw_docs/ 下所有文件
  2. 识别新增或变更的文件(对比 indexed_files.json
  3. 提取文本内容并分块
  4. 调用百炼 API 生成向量
  5. 调用 DashVector API 上传(自动创建分区)
  6. 更新 indexed_files.json

分区识别规则

文件位置分区名
raw_docs/文档.pdfdefault
raw_docs/mysql/文档.pdfmysql
raw_docs/MySQL实战/文档.pdfmysql_(小写、非字母数字转下划线)

工作流程三:知识问答与报告生成

触发词: "基于知识库回答"、"查一下知识库"、"帮我写报告"

步骤 1:确认目标知识库和分区

用户必须指定知识库名称(如"基于 MySQLNotes 知识库")。 可选指定分区(如"基于 MySQLNotes 的 mysql 和 oracle 分区")。

步骤 2:运行查询脚本

python <技能路径>/scripts/query_knowledge_base.py "<问题>" --kb-path "<知识库路径>" --partition <分区名>

示例(单分区):

python scripts/query_knowledge_base.py "InnoDB 有哪些特性" --kb-path "MySQLNotes" --partition mysql

示例(多分区):

python scripts/query_knowledge_base.py "MySQL 和 Oracle 有什么区别" --kb-path "MySQLNotes" --partition mysql,oracle

示例(全分区):

python scripts/query_knowledge_base.py "介绍一下这个知识库" --kb-path "MySQLNotes"

多分区查询说明: DashVector 查询 API 的 partition 参数只接受字符串(不支持数组),脚本通过串行多次查询实现多分区,每个分区独立查询后合并结果,按相似度排序。

步骤 3:读取原始文档补充上下文

根据检索结果中的 source 字段,用 read_file / pdf / docx 加载相关章节。

步骤 4:网络搜索补充(如需要)

使用 Web Search 搜索实时信息或知识库未覆盖的背景知识。

步骤 5:生成 Markdown 报告

报告格式规范:

# [报告标题]

> 生成时间:[YYYY-MM-DD HH:mm]
> 知识库:[知识库名称]
> 来源:[x] 篇相关文档 + 网络补充

## 摘要
[简要概述]

## 一、[章节标题]
[内容...]

## 参考来源
- [文件名] - 分区: [分区名]

报告保存路径: <工作目录>/<知识库名称>/reports/report_[时间戳]_[主题].md

步骤 6:生成思维导图

使用 visualizer:interactive 工具生成交互式思维导图:

  • 提取标题层级(# / ## / ###)
  • 每个节点不超过 20 字
  • 最多 3 级展示

导图保存路径: <工作目录>/<知识库名称>/mindmaps/mindmap_[时间戳]_[主题].html

步骤 7:输出结果

  1. 对话中展示 Markdown 报告
  2. visualizer:interactive 展示思维导图
  3. 告知用户文件保存路径

工作流程四:查看分区状态

触发词: "有哪些分区"、"分区列表"、"查看分区"

python <技能路径>/scripts/partition_list.py --kb-path <知识库路径>

文档格式支持

格式读取方式
.md直接 read_file
.pdfpdf skill
.docx / .docdocx skill

脚本汇总

脚本用途关键参数
init_knowledge_base.py创建新知识库<名称> --path <工作目录>
upload_to_vector.py上传/索引文件--kb-path <知识库路径>
query_knowledge_base.py多分区查询<问题> --kb-path --partition
partition_list.py查看分区状态--kb-path

所有脚本均支持 自动发现知识库:不传 --kb-path 时,自动在当前目录或父目录中查找第一个包含 raw_docs/ + config.json 的文件夹。


注意事项

  1. Python 环境:用户需先安装 Python 3.8+ 和依赖包(pdfplumber, python-docx, requests)
  2. 首次使用:提醒用户先创建知识库并填写 config.json
  3. 知识库为空:告知用户先往 raw_docs 目录放入文档
  4. 上传失败:提示检查 API Key、Endpoint、Collection 名称是否正确
  5. 分区路由:上传时 partition 必须放在请求体顶层
  6. 分区查询:DashVector partition 参数只接受字符串,多分区通过串行查询实现
  7. 多知识库切换:由用户指定知识库名称,AI 负责在工作目录下查找

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

visual-qa-analysis

Conducts open-ended Q&A on image content based on computer vision and large language models, supporting any questions to receive natural language responses. | 大模型视觉问答(VQA)技能,基于计算机视觉和大语言模型对图片内容进行开放式问答,支持任意提问得到自然语言回答

Archived SourceRecently Updated
General

virtual-fence-intrusion-warning-analysis

Customizes safety zones, identifies babies crawling out or approaching dangerous areas such as bedsides/windowsills, and immediately alerts to protect baby safety. | 虚拟围栏越界预警技能,自定义安全区域,识别婴儿爬出、靠近床边/窗台危险区域立即报警,守护宝宝安全

Archived SourceRecently Updated
General

auto-remotion

从已有录屏/产品演示视频生成官网宣传片的工作流。 当用户提到以下场景时触发: - "把录屏转成宣传片"、"用录屏做产品视频" - "把演示视频做成官网介绍" - "Remotion 切片"、"视频分镜" - "产品宣传视频生成"、"screen recording to promo video" - "多个视频合并成宣传片"、"产品视频剪辑" - 用户想用 Remotion 把长视频切成短片段做宣传片 本技能覆盖从原始录屏素材到完整 Remotion 宣传片的完整流程: 环境准备 → 目标确认 → 素材识别(人工/自动)→ 分镜策划 → 结构化规格 → Remotion 实现 → 字幕轨 → 中文配音(edge-tts)→ BGM → 渲染出片 每个阶段都有具体检查清单、常见问题和决策框架。 **本 skill 不适用的情况**(见"不适用场景"章节): - 从技术文档/幻灯片生成视频(无源视频素材) - 需要 AI 生成视频画面本身(仅处理已有素材的剪辑组合)

Archived SourceRecently Updated
General

respiratory_symptom_recognition_analysis

Based on computer vision, automatically detects coughing, phlegm, and wheezing frequency, counts the frequency of episodes, used for early health anomaly alerts, helping to detect respiratory diseases in a timely manner. | 呼吸道症状智能识别技能,基于计算机视觉自动检测咳嗽、咳痰、喘息频率,统计发作频次,用于健康异常早期提醒,帮助及时发现呼吸道疾病

Archived SourceRecently Updated