Ai_GirlFriend/运行指南.md
2026-02-28 09:40:18 +08:00

509 lines
9.9 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.

# 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`如果有
---
**祝你使用愉快!** 🎉