什么是Skill知识库
Skill知识库 = 文档 + AI的Grep/Read工具
简单来说:
- 把你的文档整理好放在一个目录
- AI使用Grep工具搜索关键词
- AI使用Read工具读取匹配的文件
- AI总结答案并告诉你
核心优势:
- ✅ 零成本:不需要GPU,不需要构建索引
- ✅ 即时可用:放好文档就能用,无需等待
- ✅ 精确匹配:关键词完全匹配,无偏差
- ✅ 可溯源:直接定位到原文位置
- ✅ 实时更新:添加新文档立即生效
技术原理:
【工作流程】
用户提问 → AI提取关键词 → Grep搜索文件 → Read读取内容 → AI总结答案
【底层实现】
Grep = ripgrep(超快的文本搜索工具)
Read = 直接读取文件内容
时间复杂度:O(n),n为文件总字符数
与RAG的区别:
| 维度 | Skill | RAG |
|---|---|---|
| 构建时间 | 0秒(无需构建) | 几分钟到几小时 |
| 硬件要求 | 无 | 需要较好的CPU/GPU |
| 搜索方式 | 关键词精确匹配 | 语义相似度 |
| 适用场景 | 已知关键词 | 模糊概念查询 |
| 更新成本 | 0(自动识别新文件) | 需要重建索引 |
Skill vs RAG对比
什么时候用Skill?
✅ 推荐使用Skill的场景:
- 查询具体的服务代码(如"0x22服务")
- 查询具体的DID、PID等标识符
- 需要精确定位原文
- 文档经常更新
- 没有GPU或不想等待构建
- 快速部署(<1分钟)
什么时候用RAG?
✅ 推荐使用RAG的场景:
- 概念性问题(如"诊断流程是什么")
- 不知道准确关键词
- 需要跨语言查询(中英文混合)
- 文档相对稳定,不常更新
最佳实践:两者结合
用户提问
↓
先用Skill快速查询
↓
如果没找到或结果不理想
↓
再用RAG语义检索
准备工作
硬件要求
任意配置都可以:
- CPU:任意
- 内存:4GB+
- 硬盘:文档大小即可
软件要求
- AI助手(如Claude、ChatGPT等)
- 文本编辑器(记事本、VSCode等)
目录结构
我的知识库/
├── 文档1/
│ ├── file1.pdf
│ ├── file2.txt
│ └── file3.docx
├── 文档2/
│ └── ...
└── AI_SKILL_GUIDE.md ← 创建这个文件
支持的文档格式:
- ✅ TXT(最佳,AI可以直接读取)
- ✅ PDF(AI可以读取文本层)
- ✅ Markdown(.md)
- ⚠️ Word(.docx,部分AI支持)
- ⚠️ 扫描版PDF(需要先OCR识别)
第一步:整理文档
1.1 文档格式建议
最佳实践:
- 优先使用TXT格式(AI读取最快)
- PDF保持原生格式(可复制文字)
- 文件名清晰明确(如"ISO14229-UDS协议.pdf")
1.2 PDF转TXT(可选)
如果想提高搜索速度,可以把PDF转成TXT:
方法1:在线工具
方法2:Python脚本
python
from PyPDF2 import PdfReader
from pathlib import Path
pdf_file = Path("你的文件.pdf")
reader = PdfReader(pdf_file)
text = ""
for page in reader.pages:
text += page.extract_text()
txt_file = pdf_file.with_suffix('.txt')
txt_file.write_text(text, encoding='utf-8')
注意:
- 转TXT是可选的,不是必须的
- AI可以直接读取PDF,只是稍慢一些
- 如果文档不多(<100个),不转也完全没问题
1.3 检查编码
如果有TXT文件,确保是UTF-8编码:
- 用记事本打开
- 另存为 → 选择"UTF-8"编码
第二步:创建AI使用指南
在知识库根目录创建文件 AI_SKILL_GUIDE.md:
markdown
# Skill知识库使用指南 - AI专用
## 知识库信息
- **位置**:D:\我的知识库(修改为你的实际路径)
- **内容**:[简要描述你的文档内容,如:AUTOSAR诊断协议、UDS标准等]
- **文档数量**:约XXX个文件
## 使用规则
当用户询问相关问题时,必须按以下步骤操作:
### 步骤1:提取关键词
从用户问题中提取1-3个关键词。
**示例**:
- 用户问:"UDS 0x22服务是什么?" → 关键词:`0x22` 或 `22服务`
- 用户问:"DTC状态字节包含哪些信息?" → 关键词:`DTC状态字节` 或 `status byte`
- 用户问:"如何实现诊断会话切换?" → 关键词:`会话切换` 或 `session` 或 `0x10`
### 步骤2:使用Grep搜索
使用Grep工具搜索关键词:
Grep(
pattern="关键词1|关键词2",
path="D:\我的知识库",
output_mode="files_with_matches"
)
**参数说明**:
- `pattern`:关键词,多个用`|`分隔
- `path`:知识库路径
- `output_mode`:
- `"files_with_matches"`:只返回文件名(快速定位)
- `"content"`:返回匹配的内容行(查看上下文)
**搜索技巧**:
- 如果结果太多(>10个文件),增加关键词缩小范围
- 如果结果太少(0个文件),减少关键词或换同义词
- 可以使用正则表达式(如`0x[0-9A-F]{2}`匹配所有服务代码)
### 步骤3:读取文件
使用Read工具读取匹配的文件:
Read(file_path="匹配到的文件路径")
**注意**:
- 优先读取文件名最相关的文件
- 如果文件很大,可以指定行范围:`Read(file_path="...", offset=100, limit=50)`
- 最多读取3-5个文件,避免信息过载
### 步骤4:总结答案
基于读取的内容,总结答案并提供:
1. **直接回答**:用简洁的语言回答用户问题
2. **原文引用**:引用关键段落(标注来源文件)
3. **文件链接**:提供可点击的文件链接,格式:`[文件名](相对路径)`
4. **定位提示**:给出一句关键原文,方便用户在PDF中搜索定位
**回答格式示例**:
直接回答用户问题
【来源文档】
-
原文:UDS 0x22服务用于读取数据标识符(DID)的当前值...
-
原文:ReadDataByIdentifier服务允许客户端读取服务器的数据...
【定位提示】
在PDF中搜索"ReadDataByIdentifier"可快速定位到相关章节。
## 常见问题处理
### 问题1:搜索结果为空
**原因**:关键词不在文档中
**解决**:
1. 尝试同义词(如"会话"→"session")
2. 尝试更通用的词(如"0x22"→"读取数据")
3. 告诉用户文档中可能没有相关内容
### 问题2:搜索结果太多
**原因**:关键词太常见
**解决**:
1. 增加关键词组合(如"DTC"→"DTC状态字节")
2. 使用更精确的术语
3. 限制搜索范围(如只搜索特定子目录)
### 问题3:文件编码错误
**原因**:TXT文件不是UTF-8编码
**解决**:
1. 尝试用GBK编码读取
2. 建议用户转换文件编码
## 优势说明
向用户强调Skill知识库的优势:
- ✅ 无需构建,添加文档立即生效
- ✅ 精确匹配,不会语义偏移
- ✅ 可溯源,能定位到原文
- ✅ 零成本,不需要GPU
## 限制说明
诚实告知用户限制:
- ❌ 必须知道关键词,不支持模糊概念查询
- ❌ 无法跨语言匹配(搜"会话"找不到"session")
- ❌ 高频词可能返回大量结果
如果遇到这些限制,建议用户使用RAG向量检索。
重要:
- 把
D:\我的知识库改成你的实际路径 - 把文档内容描述改成你的实际情况
第三步:测试使用
3.1 告诉AI使用知识库
在与AI对话时,发送:
我有一个Skill知识库,位于:D:\我的知识库
请按照 AI_SKILL_GUIDE.md 的指引使用这个知识库回答我的问题。
当我询问相关问题时:
1. 提取关键词
2. 使用Grep搜索文件
3. 使用Read读取内容
4. 总结答案并提供文件链接
3.2 测试查询
测试1:精确关键词查询
用户:UDS 0x22服务是什么?
AI应该:
- 提取关键词:
0x22或22服务 - Grep搜索
- Read匹配的文件
- 总结答案
测试2:概念性查询
用户:诊断会话有哪些类型?
AI应该:
- 提取关键词:
诊断会话或session - Grep搜索
- Read匹配的文件
- 总结答案
测试3:多关键词组合
用户:DTC状态字节的bit3是什么意思?
AI应该:
- 提取关键词:
DTC状态字节+bit3或confirmedDTC - Grep搜索
- Read匹配的文件
- 总结答案
常见问题
Q1: AI说找不到文件
原因:路径不对或文档不在知识库中
解决:
- 检查
AI_SKILL_GUIDE.md中的路径是否正确 - 确认文档确实在知识库目录中
- 检查文件名是否正确
Q2: AI搜索结果太多
原因:关键词太常见
解决:
- 让AI使用更精确的关键词组合
- 限制搜索范围(如只搜索特定子目录)
Q3: AI搜索结果为空
原因:关键词不在文档中
解决:
- 尝试同义词
- 尝试更通用的词
- 检查文档是否包含相关内容
Q4: PDF读取很慢
原因:PDF文件大,AI读取需要时间
解决:
- 可选:把PDF转成TXT(参考第一步)
- 或者接受稍慢的速度(通常也就几秒)
Q5: 如何添加新文档
操作:
- 直接把新文档放到知识库目录
- 立即生效,无需任何操作
优势:
- 不需要重建索引
- 不需要重启AI
- 添加即可用
部署到新电脑
完整迁移
需要复制的文件:
我的知识库/
├── AI_SKILL_GUIDE.md ← 必须
├── 所有文档目录/ ← 必须
└── (无需其他文件)
新电脑操作:
- 复制整个知识库目录到新电脑(如
D:\知识库) - 修改
AI_SKILL_GUIDE.md中的路径 - 告诉AI使用这个知识库
- 立即可用
注意:
- 不需要安装任何软件
- 不需要Python或其他依赖
- 只要AI支持Grep和Read工具即可
总结
你已经学会了
✅ Skill知识库的原理
✅ 如何整理文档
✅ 如何创建AI使用指南
✅ 如何测试使用
✅ 如何部署到新电脑
Skill知识库的优势
- 零成本:不需要GPU,不需要构建
- 即时可用:放好文档就能用
- 精确匹配:关键词完全匹配
- 实时更新:添加文档立即生效
- 简单可靠:没有复杂的技术栈
何时使用Skill
- ✅ 查询具体的代码、标识符
- ✅ 需要精确定位原文
- ✅ 文档经常更新
- ✅ 快速部署
何时使用RAG
- ✅ 概念性问题
- ✅ 不知道准确关键词
- ✅ 需要跨语言查询
最佳实践
两者结合使用:
- 先用Skill快速查询(0成本)
- 如果效果不好,再用RAG(需要构建)