← 返回 Skills 市场
本地知识库智能问答
作者
18874771327
· GitHub ↗
· v1.0.0
· MIT-0
137
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install knowledge-qa
功能描述
本地知识库问答技能。当用户需要基于个人知识库文档(PDF/Markdown/Word)进行问答、生成报告、制作思维导图、或上传文件到向量库时触发。触发词包括:"基于知识库"、"基于mysql查询"、"基于某个分区"、"查一下知识库"、"帮我写报告"、"生成思维导图"、"根据文档"、"从我的资料"、"结合我的笔记"...
使用说明 (SKILL.md)
\r \r
知识库问答技能 (knowledge-qa)\r
\r
概述\r
\r 本技能支持多知识库架构,每个知识库对应一个独立的 DashVector Collection。用户可在同一工作目录下创建多个互不干扰的知识库(如"MySQLNotes"、"JavaNotes"等)。\r \r 核心特性:\r
- 多知识库支持(一个知识库 = 一个 DashVector Collection)\r
- 语义向量检索(基于阿里云 DashVector + 百炼 Embedding)\r
- 自动分区(raw_docs 子目录自动映射为分区)\r
- 多分区并行查询 + 结果合并\r
- 报告 + 思维导图双输出\r
- 需要 Python 环境(用户需安装 Python 3.8+)\r \r ---\r \r
前置要求\r
\r
1. 安装 Python 环境\r
\r 用户需在系统上安装 Python 3.8 或更高版本,以及以下依赖:\r \r
pip install pdfplumber python-docx requests\r
```\r
\r
### 2. 安装 WorkBuddy 并打开工作目录\r
\r
用户用 WorkBuddy 打开一个工作目录,在该目录下管理所有知识库。\r
\r
---\r
\r
## 多知识库架构\r
\r
```\r
工作空间 (WorkBuddy 打开的目录)\r
│\r
├── MySQLNotes/ ← 知识库 A → Collection: MySQLNotes\r
│ ├── raw_docs/\r
│ │ ├── mysql/ ← 分区: mysql\r
│ │ └── default/\r
│ ├── config.json ← 独立配置(不同的 DashVector Collection)\r
│ ├── indexed_files.json\r
│ └── README.md\r
│\r
├── JavaNotes/ ← 知识库 B → Collection: JavaNotes\r
│ ├── raw_docs/\r
│ │ ├── java基础/ ← 分区: java_\r
│ │ └── default/\r
│ ├── config.json\r
│ └── README.md\r
│\r
└── scripts/ ← (由技能提供,用户不可见)\r
├── init_knowledge_base.py\r
├── upload_to_vector.py\r
├── query_knowledge_base.py\r
└── partition_list.py\r
```\r
\r
**映射关系:**\r
- 1 个知识库文件夹 = 1 个 DashVector Collection(独立配置)\r
- Collection 内按 raw_docs 子目录分区(mysql / oracle / java_ 等)\r
- 切换知识库:由用户在提问时指定,如"基于 MySQLNotes 知识库回答..."\r
\r
---\r
\r
## 工作流程一:创建新知识库\r
\r
**触发词:** "创建知识库"、"初始化一个知识库"、"新建知识库"\r
\r
### 步骤 1:确认知识库名称和工作目录\r
\r
用户告诉 AI 要创建的知识库名称,以及是否在当前工作目录下创建。\r
\r
### 步骤 2:运行初始化脚本\r
\r
```bash\r
python \x3C技能路径>/scripts/init_knowledge_base.py \x3C知识库名称> --path \x3C工作目录>\r
```\r
\r
AI 自动执行脚本,在工作目录下创建以下结构:\r
\r
```\r
知识库名称/\r
├── raw_docs/\r
│ └── default/\r
├── config.json ← 模板文件,用户需填写阿里云凭证\r
├── indexed_files.json\r
└── README.md\r
```\r
\r
### 步骤 3:提示用户填写配置\r
\r
告知用户打开 `config.json`,填入:\r
- `dashvector.api_key`\r
- `dashvector.endpoint`\r
- `dashvector.collection_name`(建议与知识库名一致)\r
- `bailian.api_key`\r
\r
凭证获取地址:\r
- DashVector: https://dashvector.console.aliyun.com/api-key\r
- 百炼: https://bailian.console.aliyun.com/api-key\r
\r
---\r
\r
## 工作流程二:上传文件到向量库\r
\r
**触发词:** "上传知识库"、"有新文件了"、"帮我索引文件"\r
\r
### 步骤 1:确认目标知识库\r
\r
用户必须指定知识库名称(如"MySQLNotes")。AI 在工作目录下查找对应的知识库文件夹。\r
\r
### 步骤 2:运行上传脚本\r
\r
```bash\r
python \x3C技能路径>/scripts/upload_to_vector.py --kb-path \x3C知识库路径>\r
```\r
\r
脚本自动:\r
1. 扫描 `raw_docs/` 下所有文件\r
2. 识别新增或变更的文件(对比 `indexed_files.json`)\r
3. 提取文本内容并分块\r
4. 调用百炼 API 生成向量\r
5. 调用 DashVector API 上传(自动创建分区)\r
6. 更新 `indexed_files.json`\r
\r
### 分区识别规则\r
\r
| 文件位置 | 分区名 |\r
|---------|--------|\r
| `raw_docs/文档.pdf` | `default` |\r
| `raw_docs/mysql/文档.pdf` | `mysql` |\r
| `raw_docs/MySQL实战/文档.pdf` | `mysql_`(小写、非字母数字转下划线)|\r
\r
---\r
\r
## 工作流程三:知识问答与报告生成\r
\r
**触发词:** "基于知识库回答"、"查一下知识库"、"帮我写报告"\r
\r
### 步骤 1:确认目标知识库和分区\r
\r
用户必须指定知识库名称(如"基于 MySQLNotes 知识库")。\r
可选指定分区(如"基于 MySQLNotes 的 mysql 和 oracle 分区")。\r
\r
### 步骤 2:运行查询脚本\r
\r
```bash\r
python \x3C技能路径>/scripts/query_knowledge_base.py "\x3C问题>" --kb-path "\x3C知识库路径>" --partition \x3C分区名>\r
```\r
\r
示例(单分区):\r
```bash\r
python scripts/query_knowledge_base.py "InnoDB 有哪些特性" --kb-path "MySQLNotes" --partition mysql\r
```\r
\r
示例(多分区):\r
```bash\r
python scripts/query_knowledge_base.py "MySQL 和 Oracle 有什么区别" --kb-path "MySQLNotes" --partition mysql,oracle\r
```\r
\r
示例(全分区):\r
```bash\r
python scripts/query_knowledge_base.py "介绍一下这个知识库" --kb-path "MySQLNotes"\r
```\r
\r
**多分区查询说明:** DashVector 查询 API 的 `partition` 参数只接受字符串(不支持数组),脚本通过**串行多次查询**实现多分区,每个分区独立查询后合并结果,按相似度排序。\r
\r
### 步骤 3:读取原始文档补充上下文\r
\r
根据检索结果中的 `source` 字段,用 `read_file` / `pdf` / `docx` 加载相关章节。\r
\r
### 步骤 4:网络搜索补充(如需要)\r
\r
使用 `Web Search` 搜索实时信息或知识库未覆盖的背景知识。\r
\r
### 步骤 5:生成 Markdown 报告\r
\r
报告格式规范:\r
\r
```markdown\r
# [报告标题]\r
\r
> 生成时间:[YYYY-MM-DD HH:mm]\r
> 知识库:[知识库名称]\r
> 来源:[x] 篇相关文档 + 网络补充\r
\r
## 摘要\r
[简要概述]\r
\r
## 一、[章节标题]\r
[内容...]\r
\r
## 参考来源\r
- [文件名] - 分区: [分区名]\r
```\r
\r
**报告保存路径:** `\x3C工作目录>/\x3C知识库名称>/reports/report_[时间戳]_[主题].md`\r
\r
### 步骤 6:生成思维导图\r
\r
使用 `visualizer:interactive` 工具生成交互式思维导图:\r
- 提取标题层级(# / ## / ###)\r
- 每个节点不超过 20 字\r
- 最多 3 级展示\r
\r
**导图保存路径:** `\x3C工作目录>/\x3C知识库名称>/mindmaps/mindmap_[时间戳]_[主题].html`\r
\r
### 步骤 7:输出结果\r
\r
1. 对话中展示 Markdown 报告\r
2. `visualizer:interactive` 展示思维导图\r
3. 告知用户文件保存路径\r
\r
---\r
\r
## 工作流程四:查看分区状态\r
\r
**触发词:** "有哪些分区"、"分区列表"、"查看分区"\r
\r
```bash\r
python \x3C技能路径>/scripts/partition_list.py --kb-path \x3C知识库路径>\r
```\r
\r
---\r
\r
## 文档格式支持\r
\r
| 格式 | 读取方式 |\r
|------|--------|\r
| `.md` | 直接 `read_file` |\r
| `.pdf` | `pdf` skill |\r
| `.docx` / `.doc` | `docx` skill |\r
\r
---\r
\r
## 脚本汇总\r
\r
| 脚本 | 用途 | 关键参数 |\r
|------|------|--------|\r
| `init_knowledge_base.py` | 创建新知识库 | `\x3C名称> --path \x3C工作目录>` |\r
| `upload_to_vector.py` | 上传/索引文件 | `--kb-path \x3C知识库路径>` |\r
| `query_knowledge_base.py` | 多分区查询 | `\x3C问题> --kb-path --partition` |\r
| `partition_list.py` | 查看分区状态 | `--kb-path` |\r
\r
所有脚本均支持 **自动发现知识库**:不传 `--kb-path` 时,自动在当前目录或父目录中查找第一个包含 `raw_docs/` + `config.json` 的文件夹。\r
\r
---\r
\r
## 注意事项\r
\r
1. **Python 环境**:用户需先安装 Python 3.8+ 和依赖包(pdfplumber, python-docx, requests)\r
2. **首次使用**:提醒用户先创建知识库并填写 `config.json`\r
3. **知识库为空**:告知用户先往 `raw_docs` 目录放入文档\r
4. **上传失败**:提示检查 API Key、Endpoint、Collection 名称是否正确\r
5. **分区路由**:上传时 `partition` 必须放在请求体顶层\r
6. **分区查询**:DashVector `partition` 参数只接受字符串,多分区通过串行查询实现\r
7. **多知识库切换**:由用户指定知识库名称,AI 负责在工作目录下查找\r
安全使用建议
要点与建议:
- 功能与描述一致:此技能会在指定知识库目录读取你的 PDF/MD/DOCX,生成 embeddings(调用百炼)并上传向量到 DashVector,用于语义检索与报告生成。
- 敏感数据风险:文档文本会传输到第三方云服务(bailian/dashscope 与 DashVector endpoints),如果文件包含敏感或受法规保护的信息(如个人数据、机密商业信息、考试题库等),请不要上传或先做脱敏/本地化处理。
- 配置凭证保管:技能要求在每个知识库的 config.json 中填入 API Key/endpoint(明文)。请只使用权限最小化的 API Key、避免将凭证放在共享或公共目录,并考虑使用短期/受限凭证。
- 自动发现与文件访问:默认自动发现知识库会在当前目录及父目录查找 raw_docs/ + config.json,运行前请确认当前工作目录不会导致扫描到不应被索引的文件夹。
- 建议操作流程:先在安全的临时目录创建并测试知识库(只放非敏感文档),确认脚本行为;检查并阅读 scripts/*.py 源码;确认 config.json 中 endpoint 是你自己的 DashVector 地址(来自阿里云控制台),并只填写你信任的 Bailian API Key。
- 如果你需要完全本地化(不把文本发到云端),不要使用此技能,或在使用前修改脚本以调用本地或企业内部的 embedding 服务/向量库。
如需我帮你做的事情:我可以(1)逐行检查脚本以确认没有隐藏的远程终端/外联代码,或(2)提供一个安全检查清单以便你在生产环境中部署前验证。
功能分析
Type: OpenClaw Skill
Name: knowledge-qa
Version: 1.0.0
The skill bundle implements a local knowledge base RAG (Retrieval-Augmented Generation) system using Alibaba Cloud's DashVector and Bailian services. It includes Python scripts (upload_to_vector.py, query_knowledge_base.py) for document processing, embedding generation, and vector querying. All network communication is directed to legitimate Alibaba Cloud endpoints (dashscope.aliyuncs.com and dashvector.cn-hangzhou.aliyuncs.com) using API keys explicitly provided by the user in a local config.json file. The instructions in SKILL.md are consistent with the stated functionality and do not contain malicious prompt injections or unauthorized commands.
能力标签
能力评估
Purpose & Capability
技能名与说明(本地知识库问答/索引/多分区)匹配其代码和脚本的功能:init 创建目录和配置模板,upload 提取文本并调用百炼生成 embedding,再调用 DashVector 上传,query 在分区内检索并合并结果。请求的凭证(DashVector、百炼)与功能直接相关。
Instruction Scope
SKILL.md 明确指示运行包内 Python 脚本并在工作目录下管理知识库,脚本会递归扫描 raw_docs/(并在未指定时自动在当前目录或父目录中发现知识库),读取并解析 PDF/MD/DOCX 文件,然后把文本发往外部服务用于向量化。注意:自动发现逻辑会在当前目录及父目录中查找并可能访问多个子目录,使用时需确保工作目录权限和放置位置不会导致无意读取敏感文件。
Install Mechanism
无安装脚本或远程下载;技能为 instruction+本地脚本包(用户复制到 WorkBuddy 技能目录)。运行依赖 Python 和指定 pip 包(pdfplumber、python-docx、requests),没有看到从不可信 URL 下载或执行二进制的行为。
Credentials
技能不要求平台环境变量,但需要用户在每个知识库的 config.json 中放置 DashVector 与百炼 API Key 与 endpoint(明文保存在项目目录)。这些凭证与功能直接相关且数量合理,但要注意:上传脚本会把文档文本发送到百炼(生成 embeddings)并把向量/元数据上传到 DashVector —— 这会将文档内容或其向量化表示传输到云端,存在隐私/合规风险。
Persistence & Privilege
技能没有设置 always:true,也不修改其他技能或系统全局配置。脚本会在知识库目录下创建/更新索引文件(indexed_files.json)、reports/、mindmaps/ 等,这是其预期行为并与描述相符。
如何使用
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install knowledge-qa - 安装完成后,直接呼叫该 Skill 的名称或使用
/knowledge-qa触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
- Initial release of the knowledge-qa skill for local knowledge base Q&A.
- Supports multiple independent knowledge bases, each mapped to a DashVector Collection, with auto-partitioning by subdirectory.
- Enables document upload, indexing, semantic retrieval, multi-partition queries, report generation, and mind map creation.
- Integrates with WorkBuddy workspaces and requires user Python environment (3.8+).
- Supports PDF, Markdown, and Word document formats.
- Provides scripts for knowledge base initialization, file upload, querying, and partition management.
- Includes thorough user guidance and clear workflows for setup and daily use.
元数据
常见问题
本地知识库智能问答 是什么?
本地知识库问答技能。当用户需要基于个人知识库文档(PDF/Markdown/Word)进行问答、生成报告、制作思维导图、或上传文件到向量库时触发。触发词包括:"基于知识库"、"基于mysql查询"、"基于某个分区"、"查一下知识库"、"帮我写报告"、"生成思维导图"、"根据文档"、"从我的资料"、"结合我的笔记"... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 137 次。
如何安装 本地知识库智能问答?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install knowledge-qa」即可一键安装,无需额外配置。
本地知识库智能问答 是免费的吗?
是的,本地知识库智能问答 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
本地知识库智能问答 支持哪些平台?
本地知识库智能问答 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 本地知识库智能问答?
由 18874771327(@18874771327)开发并维护,当前版本 v1.0.0。
推荐 Skills