xinli/Archive/RAG-FREE-SERVICES-GUIDE.md

355 lines
8.1 KiB
Markdown
Raw Permalink Normal View History

2026-01-30 16:23:31 +08:00
# 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
---
**提示**: 使用免费服务时,建议先小规模测试,确认效果后再大规模使用。大多数服务都提供充值选项,价格通常很便宜(几元到几十元即可使用很久)。