📁 重组文档目录结构

变更:
- 创建 docs/ 目录统一管理所有文档
- 移动所有 API 文档到 docs/ 目录
  - API_DOCS_INDEX.md
  - RESTFUL_API_DOCUMENTATION.md
  - API_SERVICE_README.md
  - API_CLIENT_EXAMPLES.md
  - API_SERVICE_GUIDE.md
  - BRANCH_README.md
  - openapi.yaml
  - IOPaint_API.postman_collection.json
  - UPGRADE_NOTES.md

- 更新所有文档间的引用路径
- 更新 README.md 中的文档链接
- 创建 docs/README.md 作为文档入口

优势:
 清晰的目录结构
 文档集中管理
 易于查找和维护
 符合项目规范

🔧 Generated with Claude Code
This commit is contained in:
let5sne
2025-11-28 18:04:26 +00:00
parent b2580c8626
commit b6ac3f022a
12 changed files with 90 additions and 13 deletions

303
docs/API_SERVICE_README.md Normal file
View File

@@ -0,0 +1,303 @@
# IOPaint 去水印 API 服务
专注于提供去水印功能的精简API服务适合商业化部署。
## 🎯 项目特点
- **单一职责**专注去水印功能移除WebUI和其他复杂功能
- **高性能**使用LaMa模型1-2秒处理一张1024x1024图片
- **易部署**Docker一键部署支持CPU和GPU
- **低成本**MVP阶段月成本约¥300-500
- **可扩展**:提供完整的商业化架构方案
## 📚 文档
- [完整设计方案](./API_SERVICE_GUIDE.md) - MVP到商业化的完整路线图
- [客户端示例](./API_CLIENT_EXAMPLES.md) - Python、JavaScript、cURL等多语言调用示例
## 🚀 快速开始
### 方式1Docker Compose部署推荐
```bash
# 1. 设置API密钥
export API_KEY="your_secret_key_here"
# 2. 启动服务GPU版本
docker-compose -f docker-compose.mvp.yml up -d
# 3. 检查服务状态
curl http://localhost:8080/api/v1/health
# 4. 测试去水印
curl -X POST http://localhost:8080/api/v1/remove-watermark \
-H "X-API-Key: $API_KEY" \
-F "image=@test.jpg" \
-o result.png
```
### 方式2直接运行Python脚本
```bash
# 1. 安装依赖
pip3 install -r requirements.txt
pip3 install -e .
# 2. 设置环境变量
export API_KEY="your_secret_key_here"
# 3. 启动服务
python3 api_service_mvp.py
# 4. 访问 http://localhost:8080/docs 查看API文档
```
## 🔧 配置说明
### 环境变量
| 变量名 | 说明 | 默认值 |
|--------|------|--------|
| `API_KEY` | API访问密钥 | `your_secret_key_change_me` |
| `MAX_IMAGE_SIZE` | 最大图片边长(像素) | `4096` |
| `ENABLE_METRICS` | 启用统计指标 | `true` |
### 硬件要求
**最低配置CPU版本**
- CPU: 2核
- 内存: 4GB
- 磁盘: 20GB
- 性能: ~10-15秒/张
**推荐配置GPU版本**
- CPU: 4核
- 内存: 8GB
- GPU: NVIDIA T4或更好2GB+ VRAM
- 磁盘: 30GB
- 性能: ~1-2秒/张
## 📖 API文档
### 核心接口
#### 1. 去水印接口
```http
POST /api/v1/remove-watermark
```
**请求头**
- `X-API-Key`: API密钥必需
- `Content-Type`: multipart/form-data
**请求体**
- `image`: 图片文件(必需)
- `mask`: 遮罩图片(可选,白色区域将被修复)
**响应**
- 成功返回处理后的PNG图片
- 失败返回JSON错误信息
**示例**
```bash
curl -X POST http://localhost:8080/api/v1/remove-watermark \
-H "X-API-Key: your_key" \
-F "image=@input.jpg" \
-o result.png
```
#### 2. 健康检查
```http
GET /api/v1/health
```
**响应**
```json
{
"status": "healthy",
"model": "lama",
"device": "cuda",
"gpu_available": true
}
```
#### 3. 使用统计
```http
GET /api/v1/stats
```
**请求头**
- `X-API-Key`: API密钥必需
**响应**
```json
{
"total": 1000,
"success": 980,
"failed": 20,
"avg_processing_time": 1.5
}
```
## 💡 使用示例
### Python
```python
import requests
def remove_watermark(image_path, api_key):
url = "http://localhost:8080/api/v1/remove-watermark"
headers = {"X-API-Key": api_key}
files = {"image": open(image_path, "rb")}
response = requests.post(url, headers=headers, files=files)
if response.status_code == 200:
with open("result.png", "wb") as f:
f.write(response.content)
print("✓ 处理成功!")
else:
print(f"✗ 失败: {response.json()}")
remove_watermark("test.jpg", "your_api_key")
```
更多语言示例请查看 [API_CLIENT_EXAMPLES.md](./API_CLIENT_EXAMPLES.md)
## 📊 性能基准
基于NVIDIA T4 GPU测试
| 图片尺寸 | 处理时间 | 内存占用 | 每秒处理 |
|----------|---------|----------|---------|
| 512x512 | ~0.8秒 | ~1.5GB | ~1.25张/秒 |
| 1024x1024 | ~1.5秒 | ~2GB | ~0.67张/秒 |
| 2048x2048 | ~4秒 | ~3.5GB | ~0.25张/秒 |
| 4096x4096 | ~15秒 | ~6GB | ~0.07张/秒 |
## 🏗️ 架构方案
### MVP阶段月处理10万张
- **部署方式**Docker单机
- **成本**约¥300-500/月
- **支持用户**100-500人
### 商业化阶段月处理100万张
- **部署方式**Kubernetes + GPU节点池
- **成本**约¥5000-10000/月
- **支持用户**5000+人
- **特性**
- 自动扩展
- 异步队列Redis + Celery
- 对象存储S3/OSS
- 完整监控Prometheus + Grafana
详细架构请查看 [API_SERVICE_GUIDE.md](./API_SERVICE_GUIDE.md)
## 💰 定价建议(参考)
| 套餐 | 价格 | 额度 | 适用场景 |
|------|------|------|---------|
| **Free** | ¥0/月 | 10张/天 | 个人测试 |
| **Basic** | ¥99/月 | 3000张 | 小型工作室 |
| **Pro** | ¥399/月 | 20000张 | 中型企业 |
| **Enterprise** | ¥1999/月 | 150000张 | 大型企业 |
## 🔒 安全建议
1. **生产环境务必修改默认API密钥**
2. **使用HTTPS**配置Nginx SSL
3. **启用限流**(防止滥用)
4. **定期备份数据库**
5. **监控异常访问**
## 🐛 故障排查
### 常见问题
**1. API返回401错误**
- 检查X-API-Key header是否正确
- 确认API_KEY环境变量已设置
**2. 处理速度慢**
- CPU模式考虑升级到GPU
- GPU模式检查显存是否充足
- 检查图片是否过大
**3. Docker容器无法启动**
- GPU版本确认nvidia-docker已安装
- 检查端口8080是否被占用
- 查看日志:`docker-compose logs api`
**4. 返回500错误**
- 查看服务日志:`tail -f logs/api_*.log`
- 检查磁盘空间是否充足
- 确认模型文件已下载
## 📈 监控指标
推荐监控以下指标:
- **业务指标**
- 请求总数
- 成功率
- 平均处理时间
- 队列长度
- **系统指标**
- CPU使用率
- GPU使用率
- 内存使用
- 磁盘I/O
- **告警阈值**
- 错误率 > 5%
- 响应时间P95 > 10秒
- GPU利用率 > 90%持续5分钟
## 🚦 实施路线图
### 第1周MVP上线
- [ ] 部署API服务
- [ ] 编写使用文档
- [ ] 集成支付系统
- [ ] 获取前10个用户反馈
### 第2-4周产品优化
- [ ] 优化处理速度
- [ ] 添加批量处理API
- [ ] 实现Webhook回调
- [ ] 创建使用Dashboard
### 第2-3个月规模化
- [ ] 迁移到Kubernetes
- [ ] 添加自动扩展
- [ ] 实现异步队列
- [ ] 完善监控系统
## 📞 技术支持
- **文档**: [API_SERVICE_GUIDE.md](./API_SERVICE_GUIDE.md)
- **示例**: [API_CLIENT_EXAMPLES.md](./API_CLIENT_EXAMPLES.md)
- **问题反馈**: https://github.com/let5sne/IOPaint/issues
- **在线文档**: `http://localhost:8080/docs` (Swagger UI)
## 📄 许可证
本项目基于 Apache-2.0 许可证开源。
---
**⚡ 立即开始:**
```bash
git clone https://github.com/let5sne/IOPaint.git
cd IOPaint
export API_KEY="your_secret_key"
docker-compose -f docker-compose.mvp.yml up -d
```
访问 http://localhost:8080/docs 查看完整API文档