xinli/Archive/RAG-FREE-SERVICES-GUIDE.md
2026-01-30 16:23:31 +08:00

355 lines
8.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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