355 lines
8.1 KiB
Markdown
355 lines
8.1 KiB
Markdown
# RAG知识库系统 - 免费服务使用指南
|
||
|
||
## 🎉 无需本地部署!使用免费云服务
|
||
|
||
本指南将帮助你使用免费的云服务替代本地Ollama和ChromaDB,让你无需安装任何AI模型即可使用RAG知识库功能。
|
||
|
||
## 📋 推荐的免费服务
|
||
|
||
### 1. 硅基流动 (SiliconFlow) ⭐ 推荐
|
||
|
||
**优势**:
|
||
- ✅ 完全免费(有免费额度)
|
||
- ✅ 支持中文嵌入模型
|
||
- ✅ 支持DeepSeek-V3等先进模型
|
||
- ✅ API兼容OpenAI格式
|
||
- ✅ 无需信用卡
|
||
|
||
**注册地址**: https://cloud.siliconflow.cn
|
||
|
||
**免费额度**:
|
||
- 每月免费Token额度
|
||
- 嵌入模型: BAAI/bge-large-zh-v1.5 (免费)
|
||
- 生成模型: DeepSeek-V3 (免费)
|
||
|
||
**获取API Key步骤**:
|
||
1. 访问 https://cloud.siliconflow.cn
|
||
2. 注册账号(支持微信/手机号)
|
||
3. 进入控制台
|
||
4. 点击"API密钥"
|
||
5. 创建新的API密钥
|
||
6. 复制密钥(格式: `sk-xxxxxx`)
|
||
|
||
### 2. DeepSeek官方API
|
||
|
||
**优势**:
|
||
- ✅ 官方服务,稳定可靠
|
||
- ✅ 价格便宜(充值后使用)
|
||
- ✅ DeepSeek-V3模型
|
||
|
||
**注册地址**: https://platform.deepseek.com
|
||
|
||
**价格**:
|
||
- 输入: ¥1/百万tokens
|
||
- 输出: ¥2/百万tokens
|
||
|
||
### 3. 通义千问 (Qwen)
|
||
|
||
**优势**:
|
||
- ✅ 阿里云服务
|
||
- ✅ 有免费试用额度
|
||
- ✅ 国内访问速度快
|
||
|
||
**注册地址**: https://dashscope.aliyun.com
|
||
|
||
## 🚀 快速配置步骤
|
||
|
||
### 步骤1: 获取API Key
|
||
|
||
以硅基流动为例:
|
||
|
||
1. 访问 https://cloud.siliconflow.cn
|
||
2. 注册并登录
|
||
3. 进入"API密钥"页面
|
||
4. 点击"创建新密钥"
|
||
5. 复制生成的密钥(类似: `sk-abcdefghijklmnopqrstuvwxyz123456`)
|
||
|
||
### 步骤2: 配置application.yml
|
||
|
||
打开 `ry-xinli-admin/src/main/resources/application.yml`,找到RAG配置部分:
|
||
|
||
```yaml
|
||
# RAG知识库配置
|
||
rag:
|
||
# 使用模式: openai(外部API) 或 ollama(本地)
|
||
mode: openai
|
||
|
||
# OpenAI兼容API配置(免费服务)
|
||
openai:
|
||
# 硅基流动API
|
||
base-url: https://api.siliconflow.cn/v1
|
||
# 替换为你的API Key
|
||
api-key: sk-your-api-key-here # ⚠️ 修改这里!
|
||
# 嵌入模型 (免费)
|
||
embed-model: BAAI/bge-large-zh-v1.5
|
||
# 生成模型 (免费)
|
||
generate-model: deepseek-ai/DeepSeek-V3
|
||
```
|
||
|
||
**重要**: 将 `sk-your-api-key-here` 替换为你的实际API Key!
|
||
|
||
### 步骤3: 启动应用
|
||
|
||
```bash
|
||
cd ry-xinli-admin
|
||
mvn spring-boot:run
|
||
```
|
||
|
||
### 步骤4: 测试连接
|
||
|
||
访问健康检查接口:
|
||
```bash
|
||
curl http://localhost:8080/psychology/rag-test/health
|
||
```
|
||
|
||
应该看到:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"data": {
|
||
"ollama": "OK", // 实际使用的是OpenAI API
|
||
"chromadb": "OK", // 使用内存存储
|
||
"overall_status": "HEALTHY"
|
||
}
|
||
}
|
||
```
|
||
|
||
## 🎯 不同服务的配置示例
|
||
|
||
### 配置1: 硅基流动 (推荐)
|
||
|
||
```yaml
|
||
rag:
|
||
mode: openai
|
||
openai:
|
||
base-url: https://api.siliconflow.cn/v1
|
||
api-key: sk-your-siliconflow-key
|
||
embed-model: BAAI/bge-large-zh-v1.5
|
||
generate-model: deepseek-ai/DeepSeek-V3
|
||
```
|
||
|
||
**可用模型**:
|
||
- 嵌入: `BAAI/bge-large-zh-v1.5`, `BAAI/bge-m3`
|
||
- 生成: `deepseek-ai/DeepSeek-V3`, `Qwen/Qwen2.5-72B-Instruct`
|
||
|
||
### 配置2: DeepSeek官方
|
||
|
||
```yaml
|
||
rag:
|
||
mode: openai
|
||
openai:
|
||
base-url: https://api.deepseek.com/v1
|
||
api-key: sk-your-deepseek-key
|
||
embed-model: deepseek-chat # DeepSeek不提供专门的嵌入模型
|
||
generate-model: deepseek-chat
|
||
```
|
||
|
||
**注意**: DeepSeek官方API需要充值使用,但价格很便宜。
|
||
|
||
### 配置3: 通义千问
|
||
|
||
```yaml
|
||
rag:
|
||
mode: openai
|
||
openai:
|
||
base-url: https://dashscope.aliyuncs.com/compatible-mode/v1
|
||
api-key: sk-your-dashscope-key
|
||
embed-model: text-embedding-v2
|
||
generate-model: qwen-plus
|
||
```
|
||
|
||
### 配置4: 混合模式(嵌入用免费,生成用本地)
|
||
|
||
如果你有本地Ollama,可以混合使用:
|
||
|
||
```yaml
|
||
rag:
|
||
mode: openai # 主要使用OpenAI
|
||
openai:
|
||
base-url: https://api.siliconflow.cn/v1
|
||
api-key: sk-your-key
|
||
embed-model: BAAI/bge-large-zh-v1.5 # 用免费的嵌入
|
||
generate-model: deepseek-ai/DeepSeek-V3
|
||
ollama:
|
||
url: http://localhost:11434
|
||
generate-model: qwen2.5:7b # 本地生成(可选)
|
||
```
|
||
|
||
## 💡 使用建议
|
||
|
||
### 1. 选择合适的模型
|
||
|
||
**嵌入模型**(用于向量化):
|
||
- `BAAI/bge-large-zh-v1.5`: 中文效果好,1024维 ⭐推荐
|
||
- `BAAI/bge-m3`: 多语言支持,1024维
|
||
- `text-embedding-v2`: 通义千问的嵌入模型
|
||
|
||
**生成模型**(用于生成报告):
|
||
- `deepseek-ai/DeepSeek-V3`: 最新最强,推理能力强 ⭐推荐
|
||
- `Qwen/Qwen2.5-72B-Instruct`: 阿里千问,中文好
|
||
- `Qwen/Qwen2.5-7B-Instruct`: 更快,适合简单任务
|
||
|
||
### 2. 控制成本
|
||
|
||
虽然有免费额度,但还是要注意:
|
||
|
||
1. **减少Top-K数量**:
|
||
```yaml
|
||
rag:
|
||
retrieval:
|
||
top-k: 3 # 从5减少到3,减少检索量
|
||
```
|
||
|
||
2. **提高相似度阈值**:
|
||
```yaml
|
||
rag:
|
||
retrieval:
|
||
similarity-threshold: 0.75 # 从0.7提高到0.75,过滤更多结果
|
||
```
|
||
|
||
3. **减小文本块大小**:
|
||
```yaml
|
||
rag:
|
||
text-splitter:
|
||
chunk-size: 500 # 从800减少到500
|
||
chunk-overlap: 100 # 从200减少到100
|
||
```
|
||
|
||
### 3. 监控使用量
|
||
|
||
大多数服务都提供使用量监控:
|
||
|
||
- **硅基流动**: 控制台 → 用量统计
|
||
- **DeepSeek**: 控制台 → 账单
|
||
- **通义千问**: 控制台 → 资源包
|
||
|
||
## 🧪 测试功能
|
||
|
||
### 测试1: 向量化
|
||
|
||
```bash
|
||
curl -X POST "http://localhost:8080/psychology/rag-test/test-embedding" \
|
||
-H "Content-Type: application/x-www-form-urlencoded" \
|
||
-d "text=这是一个测试"
|
||
```
|
||
|
||
预期输出:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"data": {
|
||
"embedding_dimension": 1024,
|
||
"first_5_values": [0.123, -0.456, ...]
|
||
}
|
||
}
|
||
```
|
||
|
||
### 测试2: 文本生成
|
||
|
||
```bash
|
||
curl -X POST "http://localhost:8080/psychology/rag-test/test-generation" \
|
||
-H "Content-Type: application/x-www-form-urlencoded" \
|
||
-d "prompt=什么是心理学?"
|
||
```
|
||
|
||
### 测试3: 完整流程
|
||
|
||
```bash
|
||
# 1. 上传文档
|
||
curl -X POST "http://localhost:8080/psychology/knowledge/upload" \
|
||
-F "file=@test.txt" \
|
||
-F "category=心理学"
|
||
|
||
# 2. 智能问答
|
||
curl -X POST "http://localhost:8080/psychology/ai/chat" \
|
||
-H "Content-Type: application/json" \
|
||
-d '{"question":"什么是人格心理学?","context":""}'
|
||
```
|
||
|
||
## ❌ 常见问题
|
||
|
||
### 问题1: API Key无效
|
||
|
||
**错误**: `401 Unauthorized` 或 `Invalid API Key`
|
||
|
||
**解决**:
|
||
1. 检查API Key是否正确复制(包括`sk-`前缀)
|
||
2. 确认API Key没有过期
|
||
3. 检查是否有免费额度剩余
|
||
|
||
### 问题2: 模型不存在
|
||
|
||
**错误**: `Model not found`
|
||
|
||
**解决**:
|
||
1. 检查模型名称是否正确
|
||
2. 访问服务商文档查看可用模型列表
|
||
3. 尝试使用推荐的模型名称
|
||
|
||
### 问题3: 请求超时
|
||
|
||
**错误**: `Read timed out`
|
||
|
||
**解决**:
|
||
1. 检查网络连接
|
||
2. 增加超时时间(在代码中已设置120秒)
|
||
3. 尝试使用更小的模型
|
||
|
||
### 问题4: 免费额度用完
|
||
|
||
**解决**:
|
||
1. 等待下月额度刷新
|
||
2. 充值少量金额(通常很便宜)
|
||
3. 切换到其他免费服务
|
||
|
||
## 📊 性能对比
|
||
|
||
| 服务 | 嵌入速度 | 生成速度 | 成本 | 稳定性 |
|
||
|------|---------|---------|------|--------|
|
||
| 硅基流动 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 免费 | ⭐⭐⭐⭐ |
|
||
| DeepSeek | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 极低 | ⭐⭐⭐⭐⭐ |
|
||
| 通义千问 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 免费试用 | ⭐⭐⭐⭐⭐ |
|
||
| 本地Ollama | ⭐⭐⭐ | ⭐⭐ | 免费 | ⭐⭐⭐ |
|
||
|
||
## 🎯 推荐配置
|
||
|
||
### 开发测试环境
|
||
|
||
```yaml
|
||
rag:
|
||
mode: openai
|
||
openai:
|
||
base-url: https://api.siliconflow.cn/v1
|
||
api-key: sk-your-key
|
||
embed-model: BAAI/bge-large-zh-v1.5
|
||
generate-model: Qwen/Qwen2.5-7B-Instruct # 更快
|
||
retrieval:
|
||
top-k: 3
|
||
similarity-threshold: 0.75
|
||
```
|
||
|
||
### 生产环境
|
||
|
||
```yaml
|
||
rag:
|
||
mode: openai
|
||
openai:
|
||
base-url: https://api.deepseek.com/v1
|
||
api-key: sk-your-key
|
||
embed-model: deepseek-chat
|
||
generate-model: deepseek-chat
|
||
retrieval:
|
||
top-k: 5
|
||
similarity-threshold: 0.7
|
||
```
|
||
|
||
## 📞 获取帮助
|
||
|
||
- **硅基流动文档**: https://docs.siliconflow.cn
|
||
- **DeepSeek文档**: https://platform.deepseek.com/docs
|
||
- **通义千问文档**: https://help.aliyun.com/zh/dashscope
|
||
|
||
---
|
||
|
||
**提示**: 使用免费服务时,建议先小规模测试,确认效果后再大规模使用。大多数服务都提供充值选项,价格通常很便宜(几元到几十元即可使用很久)。
|