Ai_GirlFriend/运行指南.md

509 lines
9.9 KiB
Markdown
Raw Permalink Normal View History

2026-02-28 09:40:18 +08:00
# AI 虚拟恋人项目 - 运行指南
## 📋 目录
- [系统要求](#系统要求)
- [快速启动](#快速启动)
- [详细安装步骤](#详细安装步骤)
- [配置说明](#配置说明)
- [常见问题](#常见问题)
- [开发调试](#开发调试)
---
## 🖥️ 系统要求
### 必需环境
- **操作系统**: Windows 10/11
- **PHP**: 8.0+ (推荐 8.0.0)
- **Python**: 3.8+ (推荐 3.9+)
- **MySQL**: 5.7+ 或 8.0+
- **Composer**: 最新版本
- **浏览器**: Chrome/Edge (现代浏览器)
### 可选工具
- Git (版本控制)
- Postman (API 测试)
---
## 🚀 快速启动
### 方式一:使用启动脚本(推荐)
1. **修改启动脚本配置**
打开 `启动项目.bat`,修改 PHP 路径:
```batch
set PHP_PATH=D:\2_part\php-8.0.0-Win32-vs16-x64\php.exe
```
改为你的 PHP 安装路径
2. **双击运行**
```
启动项目.bat
```
3. **访问服务**
- PHP 后台: http://127.0.0.1:30100
- Python API: http://127.0.0.1:30101
- API 文档: http://127.0.0.1:30101/docs
### 方式二:手动启动
#### 启动 PHP 后台
```cmd
cd xunifriend_RaeeC\public
php -S 0.0.0.0:30100 router.php
```
#### 启动 Python 后端
```cmd
cd 项目根目录
python -m uvicorn lover.main:app --host 0.0.0.0 --port 30101 --reload
```
---
## 📦 详细安装步骤
### 第一步:安装 PHP
1. 下载 PHP 8.0+
- 官网: https://windows.php.net/download/
- 选择 Thread Safe 版本
2. 解压到目录(如 `D:\php-8.0.0`
3. 配置 php.ini
```ini
; 启用必需扩展
extension=curl
extension=fileinfo
extension=gd
extension=mbstring
extension=mysqli
extension=openssl
extension=pdo_mysql
extension=zip
; 设置时区
date.timezone = Asia/Shanghai
; 上传限制
upload_max_filesize = 100M
post_max_size = 100M
```
4. 添加到系统 PATH可选
### 第二步:安装 Python
1. 下载 Python 3.9+
- 官网: https://www.python.org/downloads/
2. 安装时勾选 "Add Python to PATH"
3. 验证安装
```cmd
python --version
pip --version
```
### 第三步:安装 MySQL
1. 下载 MySQL 8.0+
- 官网: https://dev.mysql.com/downloads/mysql/
2. 安装并设置 root 密码
3. 创建数据库
```sql
CREATE DATABASE fastadmin CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'fastadmin'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON fastadmin.* TO 'fastadmin'@'localhost';
FLUSH PRIVILEGES;
```
### 第四步:安装项目依赖
#### PHP 依赖
```cmd
cd xunifriend_RaeeC
composer install
```
如果 composer 很慢,切换国内镜像:
```cmd
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
```
#### Python 依赖
```cmd
cd 项目根目录
pip install -r lover/requirements.txt
```
如果 pip 很慢,使用国内镜像:
```cmd
pip install -r lover/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
```
### 第五步:配置环境变量
#### 1. 配置根目录 .env
```env
# 应用环境
APP_ENV=development
DEBUG=True
# 数据库配置(修改为你的数据库信息)
DATABASE_URL=mysql+pymysql://fastadmin:your_password@localhost:3306/fastadmin?charset=utf8mb4
# PHP 后台地址
USER_INFO_API=http://127.0.0.1:30100/api/user_basic/get_user_basic
# 阿里云 DashScope API必需用于 AI 功能)
DASHSCOPE_API_KEY=your_dashscope_api_key
# OSS 配置(必需,用于文件存储)
ALIYUN_OSS_ACCESS_KEY_ID=your_access_key_id
ALIYUN_OSS_ACCESS_KEY_SECRET=your_access_key_secret
ALIYUN_OSS_BUCKET_NAME=your_bucket_name
ALIYUN_OSS_ENDPOINT=https://oss-cn-hangzhou.aliyuncs.com
ALIYUN_OSS_CDN_DOMAIN=https://your_bucket.oss-cn-hangzhou.aliyuncs.com
```
#### 2. 配置 lover/.env
```env
DATABASE_URL=mysql+pymysql://fastadmin:your_password@localhost:3306/fastadmin?charset=utf8mb4
USER_INFO_API=http://127.0.0.1:30100/api/user_basic/get_user_basic
```
#### 3. 配置 xunifriend_RaeeC/.env
```env
app_debug = true
app_trace = false
[database]
type = mysql
hostname = localhost
database = fastadmin
username = fastadmin
password = your_password
hostport = 3306
charset = utf8mb4
prefix = nf_
debug = true
```
### 第六步:导入数据库
1. 找到数据库 SQL 文件(通常在项目根目录或 docs 文件夹)
2. 导入数据库
```cmd
mysql -u fastadmin -p fastadmin < database.sql
```
3. 或使用 phpMyAdmin / Navicat 等工具导入
### 第七步:设置文件权限
确保以下目录可写:
```
xunifriend_RaeeC/runtime/
xunifriend_RaeeC/public/uploads/
public/tts/
```
Windows 下通常不需要特殊设置。
---
## ⚙️ 配置说明
### 核心配置项
#### 数据库配置
```env
DATABASE_URL=mysql+pymysql://用户名:密码@主机:端口/数据库名?charset=utf8mb4
```
#### AI 服务配置
**阿里云 DashScope必需**
- 注册地址: https://dashscope.console.aliyun.com/
- 获取 API Key 后填入 `DASHSCOPE_API_KEY`
- 用于AI 对话、图像生成、语音合成、视频生成
**OSS 对象存储(必需)**
- 用于存储用户上传的图片、音频、视频
- 需要在阿里云开通 OSS 服务
- 配置项:
- `ALIYUN_OSS_ACCESS_KEY_ID`
- `ALIYUN_OSS_ACCESS_KEY_SECRET`
- `ALIYUN_OSS_BUCKET_NAME`
- `ALIYUN_OSS_ENDPOINT`
#### 可选配置
**微信小程序**
```env
WECHAT_APP_ID=your_app_id
WECHAT_APP_SECRET=your_app_secret
```
**微信支付**
```env
WECHAT_PAY_MCHID=your_mchid
WECHAT_PAY_API_V3_KEY=your_api_v3_key
```
**环信 IM**
- 在 PHP 后台配置
---
## 🐛 常见问题
### 1. 端口被占用
**错误信息**: `Address already in use`
**解决方法**:
```cmd
# 查看占用端口的进程
netstat -ano | findstr :30100
netstat -ano | findstr :30101
# 终止进程PID 为上面查到的进程号)
taskkill /F /PID 进程号
```
### 2. 数据库连接失败
**错误信息**: `OperationalError: (2003, "Can't connect to MySQL server")`
**检查清单**:
- [ ] MySQL 服务是否启动
- [ ] 数据库用户名密码是否正确
- [ ] 数据库名称是否存在
- [ ] 防火墙是否阻止连接
**解决方法**:
```cmd
# 检查 MySQL 服务
net start MySQL80
# 测试连接
mysql -u fastadmin -p
```
### 3. Python 依赖安装失败
**错误信息**: `ERROR: Could not find a version that satisfies the requirement`
**解决方法**:
```cmd
# 升级 pip
python -m pip install --upgrade pip
# 使用国内镜像
pip install -r lover/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
```
### 4. PHP 扩展缺失
**错误信息**: `Call to undefined function mysqli_connect()`
**解决方法**:
1. 打开 `php.ini`
2. 取消注释(删除前面的分号):
```ini
extension=mysqli
extension=pdo_mysql
```
3. 重启 PHP 服务
### 5. Composer 安装慢
**解决方法**:
```cmd
# 切换阿里云镜像
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
# 重新安装
composer install
```
### 6. 跨域问题
如果前端访问 API 出现跨域错误,检查 `lover/main.py` 中的 CORS 配置:
```python
app.add_middleware(
CORSMiddleware,
allow_origins=[
"http://localhost:5173", # 添加你的前端地址
],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
```
### 7. TTS 音频无法访问
**问题**: 生成的语音文件 404
**解决方法**:
1. 确保 `public/tts/` 目录存在且可写
2. 检查 OSS 配置是否正确
3. 查看 Python 日志确认文件是否上传成功
---
## 🔧 开发调试
### 查看日志
#### Python 日志
```cmd
# 启动时会在控制台输出日志
python -m uvicorn lover.main:app --host 0.0.0.0 --port 30101 --reload --log-level debug
```
#### PHP 日志
```
xunifriend_RaeeC/runtime/log/
```
### API 测试
#### 使用 FastAPI 自动文档
访问: http://127.0.0.1:30101/docs
可以直接在浏览器中测试所有 API 接口
#### 使用 Postman
1. 导入 API 集合(如果有)
2. 设置环境变量:
- `base_url`: http://127.0.0.1:30101
- `token`: 从登录接口获取
### 调试模式
#### 开发环境配置
```env
APP_ENV=development
DEBUG=True
```
开发模式下:
- 自动跳过部分认证检查
- 显示详细错误信息
- 支持热重载
#### 测试用户
开发模式下可以使用测试用户 ID
```
X-User-Id: 70
```
### 数据库管理
推荐工具:
- **Navicat** (商业软件)
- **DBeaver** (免费开源)
- **phpMyAdmin** (Web 界面)
### 性能监控
#### 查看数据库连接池
```python
# 在 lover/db.py 中添加日志
import logging
logger = logging.getLogger("sqlalchemy.pool")
logger.setLevel(logging.DEBUG)
```
#### 查看 API 响应时间
FastAPI 自动在响应头中包含处理时间
---
## 📞 技术支持
### 相关文档
- FastAPI: https://fastapi.tiangolo.com/
- ThinkPHP: https://www.thinkphp.cn/
- 阿里云 DashScope: https://help.aliyun.com/zh/dashscope/
### 常用命令
```cmd
# 查看 Python 版本
python --version
# 查看 PHP 版本
php -v
# 查看已安装的 Python 包
pip list
# 查看 Composer 包
composer show
# 清理 Python 缓存
find . -type d -name __pycache__ -exec rm -rf {} +
# 清理 PHP 缓存
cd xunifriend_RaeeC
php think clear
```
---
## 🎯 下一步
项目启动成功后,你可以:
1. **访问管理后台**
- URL: http://127.0.0.1:30100/admin
- 默认账号密码查看数据库 `nf_admin`
2. **查看 API 文档**
- URL: http://127.0.0.1:30101/docs
- 测试各个接口功能
3. **配置微信小程序**
- 修改小程序 API 地址
- 配置 AppID 和 AppSecret
4. **测试核心功能**
- 用户注册登录
- 创建虚拟恋人
- AI 对话
- 图像生成
- 语音通话
---
## ⚠️ 生产环境部署
生产环境需要额外配置:
1. **使用 Nginx 反向代理**
2. **配置 HTTPS 证书**
3. **使用 Supervisor 管理进程**
4. **配置 Redis 缓存**
5. **设置日志轮转**
6. **配置数据库主从复制**
7. **启用 CDN 加速**
详细部署文档请参考 `部署指南.md`(如果有)
---
**祝你使用愉快!** 🎉