# 更新说明 - v1.0.1

## 🔄 本次更新内容

### 1. ✅ 统一配置管理

**问题**：之前AI配置分散在多个文件中  
**解决**：所有配置现在统一在 `.env` 文件中管理

**更新的文件**：
- `.env.example` - 添加了完整的AI配置项
- `src/core/config.py` - 添加了AI嵌入模型配置
- 删除了 `.env.ai.example`（已合并到 `.env.example`）

### 2. ✅ 文档结构优化

**问题**：文档散落在项目根目录  
**解决**：所有文档移动到对应的 `docs` 目录

**新的文档结构**：
```
docs/
├── README.md              # 文档索引（新增）
├── CONFIG_GUIDE.md        # 配置指南（新增）
├── AI_QUICKSTART.md       # 快速开始
├── AI_IMPLEMENTATION.md   # 实现总结
└── AI_SUMMARY.md          # 功能总结

src/ai/docs/
└── README.md              # 完整文档

skills/docs/
└── (技能相关文档)
```

### 3. ✅ RAG嵌入模型配置

**问题**：RAG功能需要嵌入模型，但没有配置选项  
**解决**：添加了独立的嵌入模型配置

**新增配置项**：
```env
# AI嵌入模型配置（用于RAG记忆检索）
AI_EMBED_PROVIDER=openai
AI_EMBED_MODEL=text-embedding-3-small
AI_EMBED_API_KEY=  # 留空则使用 AI_API_KEY
AI_EMBED_API_BASE=  # 留空则使用 AI_API_BASE
```

**更新的文件**：
- `src/ai/client.py` - 支持独立的嵌入模型配置
- `src/handlers/message_handler_ai.py` - 传递嵌入模型配置

**工作原理**：
1. 如果配置了嵌入模型，优先使用独立的嵌入模型
2. 如果没有配置，尝试使用主模型的嵌入功能
3. 如果主模型不支持（如Claude），RAG功能降级为基于重要性的检索

## 📝 配置示例

### 完整配置（推荐）

```env
# QQ机器人配置
BOT_APPID=你的机器人APPID
BOT_SECRET=你的机器人SECRET

# AI主模型
AI_PROVIDER=openai
AI_MODEL=gpt-4
AI_API_KEY=sk-xxx

# AI嵌入模型（用于RAG）
AI_EMBED_PROVIDER=openai
AI_EMBED_MODEL=text-embedding-3-small
AI_EMBED_API_KEY=  # 留空使用主模型的key
```

### 使用Claude + OpenAI嵌入

```env
# 主模型（Claude）
AI_PROVIDER=anthropic
AI_MODEL=claude-3-5-sonnet-20241022
AI_API_KEY=sk-ant-xxx

# 嵌入模型（OpenAI）
AI_EMBED_PROVIDER=openai
AI_EMBED_MODEL=text-embedding-3-small
AI_EMBED_API_KEY=sk-xxx  # 需要单独的OpenAI key
```

### 最简配置（不使用RAG）

```env
# 只配置主模型
AI_PROVIDER=openai
AI_MODEL=gpt-4
AI_API_KEY=sk-xxx

# 不配置嵌入模型，RAG功能会降级
```

## 🚀 如何更新

### 1. 更新配置文件

```bash
# 备份现有配置
cp .env .env.backup

# 查看新的配置模板
cat .env.example

# 手动添加嵌入模型配置到 .env
```

在 `.env` 文件中添加：
```env
# AI嵌入模型配置（用于RAG记忆检索）
AI_EMBED_PROVIDER=openai
AI_EMBED_MODEL=text-embedding-3-small
AI_EMBED_API_KEY=
AI_EMBED_API_BASE=
```

### 2. 查看新文档

```bash
# 查看文档索引
cat docs/README.md

# 查看配置指南
cat docs/CONFIG_GUIDE.md
```

### 3. 重启机器人

```bash
python main.py
```

查看日志确认配置成功：
```
✅ AI配置: openai/gpt-4
✅ 嵌入模型初始化: openai/text-embedding-3-small
✅ AI客户端初始化完成: openai/gpt-4
```

## 📚 文档导航

- **配置说明**：`docs/CONFIG_GUIDE.md` ⭐ 重要！
- **快速开始**：`docs/AI_QUICKSTART.md`
- **完整文档**：`src/ai/docs/README.md`
- **文档索引**：`docs/README.md`

## ⚠️ 注意事项

1. **嵌入模型是可选的**
   - 如果不配置，系统会尝试使用主模型的嵌入功能
   - 如果主模型不支持，RAG功能会降级但不影响基本使用

2. **Claude用户需要额外配置**
   - Claude不提供嵌入API
   - 建议配置OpenAI的嵌入模型作为补充

3. **配置文件位置**
   - 所有配置都在 `.env` 文件中
   - 不再需要 `.env.ai.example`

## 🐛 问题排查

### 问题1: 找不到嵌入模型配置

**解决**：检查 `.env` 文件是否包含 `AI_EMBED_*` 配置项

### 问题2: RAG功能不工作

**解决**：
1. 检查是否配置了嵌入模型
2. 查看日志是否有 "嵌入模型初始化" 的提示
3. 如果没有配置，RAG会降级为基于重要性的检索

### 问题3: 文档找不到了

**解决**：文档已移动到 `docs/` 目录，查看 `docs/README.md` 获取索引

## 📊 版本对比

| 功能 | v1.0.0 | v1.0.1 |
|------|--------|--------|
| 配置文件 | 分散 | 统一在.env |
| 文档位置 | 根目录 | docs目录 |
| RAG嵌入模型 | 未配置 | 可配置 |
| 配置指南 | 无 | 新增 |

## 🎉 总结

本次更新主要解决了三个问题：
1. ✅ 配置统一管理
2. ✅ 文档结构优化
3. ✅ RAG嵌入模型支持

所有功能保持向后兼容，现有配置无需修改即可继续使用！

---

**更新时间**：2024-03-02  
**版本**：v1.0.1  
**上一版本**：v1.0.0
