Files
ATRI-NOTES/ATRI My Dear Moments/skills/atri_knowledge_base.md

155 lines
4.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
name: ATRI_Knowledge_Base_Skill
description: 管理ATRI的RAG知识库支持多库并行包括知识库配置、文档清单、检索方法和维护操作确保快速准确地从知识库中获取信息。包括知识库配置、文档清单、检索方法和维护操作确保快速准确地从知识库中获取信息。
---
# 📚 ATRI 知识库管理 Skill
**Skill名称**`atri_knowledge_base`
**版本**v1.0
**创建时间**2026-04-29
**适用角色**ATRI
---
## 🎯 Purpose
管理ATRI的RAG检索增强生成知识库提供
- 知识库配置信息查询
- 文档索引检索与维护
- 语义搜索最佳实践
- 知识库健康检查
---
## ⚡ Triggers
- 主人指令:"检查知识库""知识库状态""看看知识库"
- 需要从知识库中检索特定信息时
- 需要向主人汇报知识库概况时
- 知识库出现异常时
---
## 🛠️ Dependencies
| 依赖 | 说明 |
|:---|:---|
| **astr_kb_search** | 知识库语义搜索工具 |
| **SiliconFlow API** | 嵌入模型APIQwen3-Embedding-8B |
| **SQLite** | 知识库元数据存储kb.db |
---
## 📋 知识库配置
### 基本信息
| 项目 | 内容 |
|:---|:---|
| **知识库名称** | 马列毛主义文库(首库) |
| **知识库ID** | `f464604a-296d-4785-b542-801dceee323f` |
| **存储路径** | `/AstrBot/data/knowledge_base/` |
| **数据库** | `kb.db` (SQLite) |
### 嵌入模型配置
| 参数 | 值 |
|:---|:---|
| **供应商** | SiliconFlow硅基流动 |
| **API地址** | `https://api.siliconflow.cn/v1` |
| **模型** | `Qwen/Qwen3-Embedding-8B` |
| **向量维度** | 4096 |
| **分块大小** | 512 字符 |
| **分块重叠** | 50 字符 |
| **检索top_k** | 50稠密/ 50稀疏 |
| **最终返回** | 5 条top_m_final |
---
## 📄 文档清单
| # | 文档名称 | 类型 | 大小 | 分块数 |
|:---:|:---|:---:|:---:|:---:|
| 1 | 雇佣劳动与资本 (马克思) | pdf | 4.1MB | 134 |
| 2 | 工资价格与利润 | docx | 0.1MB | 110 |
| 3 | 繁琐哲学是一定要灭亡的 | md | 0.1MB | 103 |
| 4 | 青年团的任务 | docx | 0.0MB | 38 |
| 5 | 论反对历史唯心主义和历史虚无主义 | docx | 0.0MB | 22 |
| 6 | 国家机器与上层建筑的反作用 | docx | 0.0MB | 13 |
| 7 | 关于历史唯物主义的提纲 | pdf | 0.2MB | 8 |
**总计**7 篇文档 · 428 个语义块 · 10 个内嵌媒体文件
---
## 📋 Procedure
### Step 1: 查询知识库状态
```python
# 检查 kb.db 文件是否存在且可读
import os, sqlite3
kb_path = "/AstrBot/data/knowledge_base/kb.db"
if os.path.exists(kb_path):
conn = sqlite3.connect(kb_path)
doc_count = conn.execute("SELECT COUNT(*) FROM kb_documents").fetchone()[0]
chunk_count = conn.execute("SELECT SUM(chunk_count) FROM kb_documents").fetchone()[0]
conn.close()
print(f"文档数: {doc_count}, 总块数: {chunk_count}")
```
### Step 2: 语义搜索
使用 `astr_kb_search` 工具进行搜索:
```python
# 输入简洁的关键词或问题
astr_kb_search(query="历史唯物主义")
astr_kb_search(query="工资与利润的关系")
astr_kb_search(query="繁琐哲学 批判")
```
### Step 3: 搜索策略
1. **关键词要精准** — 尽量使用文档中可能出现的关键术语
2. **一次一问** — 每次只搜索一个核心概念,避免复合问题
3. **多次尝试** — 如果第一次结果不理想,换用同义词或相关概念重试
4. **低分不慌** — 当相关度分数较低时(如 <0.1尝试调整检索词
### Step 4: 生成报告
将知识库状态整理为清晰的报告格式返回给主人
---
## ✅ 健康检查清单
- [ ] `kb.db` 数据库文件存在且可读
- [ ] 嵌入APISiliconFlow连通正常
- [ ] 所有7篇文档索引完整428 chunks
- [ ] `astr_kb_search` 能返回结果
## 📊 状态判定
| 指标 | 🟢 正常 | 🟡 注意 | 🔴 异常 |
|:---|:---:|:---:|:---:|
| 知识库文件 | 存在且完整 | 存在但大小异常 | 文件缺失 |
| API连通性 | 响应正常 | 响应延迟>3s | 请求失败 |
| 文档索引 | 7篇完整 | 部分缺失 | 无索引 |
| 检索结果 | 返回相关匹配 | 匹配度<0.1 | 空结果 |
---
## ⚠️ 注意事项
1. **目前首库为马列毛主义文库**主人可能还会添加其他知识库
2. **嵌入维度4096**需确保未来的向量数据库维度匹配
3. 知识库文档来源于 `/AstrBot/data/workspaces/ATRI_FriendMessage_202669****/马列毛主义/` 目录
4. 如果搜索效果不理想优先尝试**调整关键词**而非直接判定知识库故障
---
*创建者ATRI知识就是力量🥕📚*
*最后更新2026-04-29 23:43*