添加产品规格文档并优化项目结构
Made-with: Cursor
This commit is contained in:
@@ -0,0 +1,147 @@
|
||||
# 品牌知识库(RAG)功能说明
|
||||
|
||||
## 功能概述
|
||||
|
||||
品牌知识库是 GEO 工具的核心模块之一,基于 RAG(检索增强生成)技术,让用户能够上传品牌文档、产品手册、案例库等内容,在 AI 生成内容时自动检索并引用相关信息,确保生成内容的真实性和专业性。
|
||||
|
||||
## 核心价值
|
||||
|
||||
| 问题 | 解决方案 |
|
||||
|------|----------|
|
||||
| 品牌信息靠用户手动输入 | 自动从知识库检索相关内容 |
|
||||
| 生成内容缺乏真实来源 | 引用真实的品牌文档和案例 |
|
||||
| 批量内容同质化严重 | 基于不同文档片段生成差异化内容 |
|
||||
|
||||
## 功能特性
|
||||
|
||||
### 1. 多类型文档支持
|
||||
|
||||
| 文档类型 | 说明 | 分块策略 |
|
||||
|---------|------|----------|
|
||||
| 📝 通用文本 | 品牌介绍、行业分析等 | 按段落长度分块 |
|
||||
| ❓ FAQ 问答 | 常见问题解答 | 按 Q&A 对分块 |
|
||||
| 📦 产品文档 | 功能说明、技术架构 | 按章节标题分块 |
|
||||
| 💼 客户案例 | 成功案例、客户证言 | 按段落长度分块 |
|
||||
| 📑 Markdown 文档 | 技术文档、README | 按章节标题分块 |
|
||||
|
||||
### 2. 智能分块算法
|
||||
|
||||
```python
|
||||
# FAQ 文档:按 Q&A 对分块
|
||||
Q:你们的产品有什么优势?
|
||||
A:我们的产品具有以下核心优势...
|
||||
|
||||
# 产品文档:按章节分块
|
||||
# 核心功能
|
||||
功能说明内容...
|
||||
|
||||
# 通用文档:按长度分块(500字符/块,50字符重叠)
|
||||
```
|
||||
|
||||
### 3. 关键词检索
|
||||
|
||||
- 基于关键词匹配的检索算法
|
||||
- 支持文档类型过滤
|
||||
- 返回相关度评分
|
||||
|
||||
### 4. 内容生成集成
|
||||
|
||||
生成内容时自动检索知识库,将相关片段注入 LLM 上下文:
|
||||
|
||||
```
|
||||
用户选择关键词 + 平台
|
||||
↓
|
||||
知识库检索相关文档片段
|
||||
↓
|
||||
将检索结果注入 Prompt 上下文
|
||||
↓
|
||||
LLM 基于真实信息生成内容
|
||||
```
|
||||
|
||||
## 使用方式
|
||||
|
||||
### 1. 访问知识库
|
||||
|
||||
在应用中点击 **📚 品牌知识库** Tab。
|
||||
|
||||
### 2. 上传文档
|
||||
|
||||
**方式一:上传文件**
|
||||
- 支持 TXT、Markdown、CSV 格式
|
||||
- 选择文档类型
|
||||
- 点击"导入知识库"
|
||||
|
||||
**方式二:粘贴文本**
|
||||
- 输入文档名称
|
||||
- 粘贴文档内容
|
||||
- 选择文档类型
|
||||
- 点击"导入知识库"
|
||||
|
||||
### 3. 搜索测试
|
||||
|
||||
在"搜索测试"区域输入查询,验证文档是否被正确索引和检索。
|
||||
|
||||
### 4. 来源验证
|
||||
|
||||
在"来源验证"区域粘贴 AI 生成的内容,检查其中的来源引用是否真实可信。
|
||||
|
||||
## 技术实现
|
||||
|
||||
### 核心模块
|
||||
|
||||
| 文件 | 说明 |
|
||||
|------|------|
|
||||
| `modules/knowledge_base.py` | 知识库核心模块 |
|
||||
| `modules/ui/tab_knowledge.py` | 知识库管理 UI |
|
||||
|
||||
### 数据存储
|
||||
|
||||
知识库数据存储在 `knowledge_base/` 目录:
|
||||
|
||||
```
|
||||
knowledge_base/
|
||||
├── documents.json # 文档元数据
|
||||
└── chunks.json # 文档分块数据
|
||||
```
|
||||
|
||||
### API 接口
|
||||
|
||||
```python
|
||||
from modules.knowledge_base import KnowledgeBase
|
||||
|
||||
# 初始化
|
||||
kb = KnowledgeBase(storage_path="knowledge_base")
|
||||
|
||||
# 添加文档
|
||||
kb.add_document(filename="产品说明.md", content="...", doc_type="product")
|
||||
|
||||
# 搜索
|
||||
results = kb.search(query="产品有什么优势", top_k=5)
|
||||
|
||||
# 获取生成上下文
|
||||
context = kb.get_context_for_generation(query="产品优势", brand="品牌名", platform="知乎")
|
||||
```
|
||||
|
||||
## 最佳实践
|
||||
|
||||
### 文档准备建议
|
||||
|
||||
1. **FAQ 文档**:使用 `Q:` / `A:` 格式,每个 Q&A 对独立
|
||||
2. **产品文档**:使用 Markdown 标题分隔不同功能模块
|
||||
3. **案例文档**:包含具体的客户名称、使用场景、效果数据
|
||||
4. **品牌介绍**:包含品牌定位、核心优势、差异化特点
|
||||
|
||||
### 文档质量要求
|
||||
|
||||
- ✅ 包含真实的品牌信息和数据
|
||||
- ✅ 使用清晰的结构和标题
|
||||
- ✅ 定期更新维护
|
||||
- ❌ 避免过时或错误的信息
|
||||
- ❌ 避免过于营销化的语言
|
||||
|
||||
## 后续优化方向
|
||||
|
||||
1. **向量检索**:接入 FAISS/ChromaDB,支持语义检索
|
||||
2. **自动更新**:支持从官网/文档自动同步更新
|
||||
3. **多语言支持**:支持中英文混合检索
|
||||
4. **检索质量评估**:自动评估检索结果的相关性
|
||||
Reference in New Issue
Block a user