# 品牌知识库（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. **检索质量评估**：自动评估检索结果的相关性
