chenpei d0dc94e36d feat: 将弹幕功能替换为AI聊天助手
新功能:
- 创建AI聊天助手组件(AIChatWidget)
- 支持文字+图片多模态对话
- 集成Gemini AI API
- 支持图片编辑和内容生成
- 实时对话历史管理
- 优雅的UI设计,支持黑夜模式

技术实现:
- 后端API代理Gemini API(/api/ai-chat)
- 支持最多5张图片上传
- 流式响应处理
- 对话历史管理
- Base64图片处理

配置:
- 在.env中添加Gemini API配置
- GEMINI_API_KEY
- GEMINI_API_BASE_URL
- GEMINI_MODEL

替换原弹幕功能,提供更强大的AI助手体验!
2025-10-27 17:45:37 +08:00

288 lines
5.0 KiB
Markdown
Executable File
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.

# 环境配置与部署指南
本文档提供图片背景处理工具的环境配置和部署步骤。
## 开发环境配置
### 系统要求
- Node.js v12.0.0 或更高版本
- MongoDB v4.0.0 或更高版本
- MinIO 对象存储服务
- Git
### 步骤一:克隆代码库
```bash
git clone https://github.com/your-username/xiaogongju.git
cd xiaogongju
```
### 步骤二:安装依赖
```bash
npm install
```
### 步骤三:配置环境变量
1. 复制环境变量示例文件:
```bash
cp .env.example .env
```
2. 编辑 `.env` 文件,配置以下必要参数:
```
# 服务器配置
PORT=3000
NODE_ENV=development
# 用户认证相关配置
JWT_SECRET=your_jwt_secret_key_here
# 数据库配置
MONGODB_URI=mongodb://localhost:27017/xiaogongju
# MinIO配置
MINIO_ENDPOINT=localhost
MINIO_PORT=9000
MINIO_USE_SSL=false
MINIO_ACCESS_KEY=minioadmin
MINIO_SECRET_KEY=minioadmin
MINIO_BUCKET_NAME=xiaogongju
# API密钥
REMOVE_BG_API_KEY=your_remove_bg_api_key
GENERATE_BG_API_KEY=your_generate_bg_api_key
REPAINT_API_KEY=your_repaint_api_key
```
### 步骤四:设置 MongoDB
如果您尚未安装 MongoDB,可以使用我们提供的脚本进行安装:
```bash
bash setup-mongodb.sh
```
或者手动安装 MongoDB 并创建数据库:
```bash
# MacOS (使用Homebrew)
brew tap mongodb/brew
brew install mongodb-community
brew services start mongodb-community
# Ubuntu
sudo apt update
sudo apt install -y mongodb
sudo systemctl start mongodb
```
### 步骤五:初始化数据库
运行初始化脚本创建默认管理员账户:
```bash
node init-db.js
```
### 步骤六:启动开发服务器
```bash
npm run dev
```
服务器将在 http://localhost:3000 启动。
## 生产环境部署
### 方法一:使用 PM2 和 Nginx
#### 步骤一:准备服务器
确保服务器已安装以下组件:
- Node.js v12.0.0+
- MongoDB v4.0.0+
- MinIO 服务
- Nginx
- PM2
#### 步骤二:部署代码
1. 克隆代码库到服务器:
```bash
git clone https://github.com/your-username/xiaogongju.git
cd xiaogongju
```
2. 安装依赖:
```bash
npm install --production
```
3. 配置环境变量:
```bash
cp .env.example .env
# 编辑.env文件,设置生产环境配置
```
4. 初始化数据库:
```bash
node init-db.js
```
#### 步骤三:使用 PM2 管理应用
安装 PM2(如果尚未安装):
```bash
npm install -g pm2
```
启动应用:
```bash
pm2 start ecosystem.config.js --env production
```
设置开机自启:
```bash
pm2 startup
pm2 save
```
#### 步骤四:配置 Nginx
1. 复制 Nginx 配置文件:
```bash
sudo cp config/nginx.conf /etc/nginx/sites-available/xiaogongju
```
2. 创建符号链接到已启用站点:
```bash
sudo ln -s /etc/nginx/sites-available/xiaogongju /etc/nginx/sites-enabled/
```
3. 测试配置并重启 Nginx:
```bash
sudo nginx -t
sudo systemctl restart nginx
```
### 方法二:使用 Docker (可选)
#### 步骤一:准备 Docker 环境
确保服务器已安装 Docker 和 Docker Compose。
#### 步骤二:构建 Docker 镜像
```bash
docker build -t xiaogongju .
```
#### 步骤三:启动容器
```bash
docker-compose up -d
```
## MinIO 配置
### 步骤一:安装 MinIO
```bash
# MacOS
brew install minio/stable/minio
# Ubuntu
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
sudo mv minio /usr/local/bin/
```
### 步骤二:启动 MinIO 服务
```bash
minio server /path/to/data
```
### 步骤三:创建存储桶
1. 访问 MinIO 控制台(默认地址: http://localhost:9000)
2. 使用默认凭据登录(minioadmin/minioadmin)
3. 创建名为 `xiaogongju` 的存储桶
## 外部 API 配置
### Remove.bg API
1. 注册 [Remove.bg](https://www.remove.bg/api) 账户
2. 获取 API 密钥
3. 将 API 密钥填入 `.env` 文件的 `REMOVE_BG_API_KEY` 字段
### 阿里云智能 API
1. 注册 [阿里云](https://www.aliyun.com/) 账户
2. 开通智能API服务
3. 获取 API 密钥并填入相应的环境变量
### Tripo3D API
1. 注册 [Tripo3D](https://www.tripo3d.ai/) 账户
2. 获取 API 密钥
3. 将 API 密钥填入 `.env` 文件的 `TRIPO3D_API_KEY` 字段
## 故障排除
### 数据库连接问题
如果遇到数据库连接错误,请检查:
1. MongoDB 服务是否正在运行
2. `.env` 文件中的 `MONGODB_URI` 是否正确
3. 网络连接是否畅通
运行数据库连接测试脚本:
```bash
node test-db-connection.js
```
### MinIO 存储问题
如果遇到文件上传或访问错误,请检查:
1. MinIO 服务是否正在运行
2. `.env` 文件中的 MinIO 配置是否正确
3. 存储桶权限是否配置正确
### API 调用失败
如果外部 API 调用失败,请检查:
1. API 密钥是否有效
2. 账户余额或配额是否足够
3. 网络连接是否畅通
4. 请求参数是否正确
## 性能优化建议
1. 增加服务器内存,特别是处理大型图片时
2. 配置 Nginx 缓存静态资源
3. 使用 CDN 加速图片传输
4. 考虑使用集群部署,增加系统吞吐量
5. 定期清理临时文件和过期数据
6. 对 MongoDB 添加适当的索引优化查询性能