187 lines
3.9 KiB
Markdown
187 lines
3.9 KiB
Markdown
# AI 女友项目 - 快速参考
|
||
|
||
## 🚀 启动命令
|
||
|
||
```bash
|
||
# 方法 1:使用启动脚本(推荐)
|
||
双击 "启动项目.bat"
|
||
|
||
# 方法 2:手动启动
|
||
# PHP 服务器
|
||
cd xunifriend_RaeeC/public
|
||
php -S 0.0.0.0:30100 router.php
|
||
|
||
# Python 后端
|
||
python -m uvicorn lover.main:app --host 0.0.0.0 --port 30101 --reload
|
||
```
|
||
|
||
## 🌐 服务地址
|
||
|
||
| 服务 | 地址 | 说明 |
|
||
|------|------|------|
|
||
| PHP 后台 | http://127.0.0.1:30100/admin | 用户管理、后台管理 |
|
||
| Python API | http://127.0.0.1:30101/docs | AI 功能、API 文档 |
|
||
| 健康检查 | http://127.0.0.1:30101/health | 服务状态检查 |
|
||
|
||
## 📡 API 端点
|
||
|
||
### 语音对话
|
||
|
||
| 端点 | 方法 | 功能 | 响应时间 |
|
||
|------|------|------|---------|
|
||
| `/voice/call/asr` | POST | 仅 ASR 识别 | 3-5秒 |
|
||
| `/voice/call/conversation` | POST | 完整对话(ASR+LLM+TTS) | 7-15秒 |
|
||
|
||
### 请求格式
|
||
|
||
```json
|
||
{
|
||
"audio_data": "base64编码的音频",
|
||
"format": "wav"
|
||
}
|
||
```
|
||
|
||
### 响应格式
|
||
|
||
**ASR 模式**:
|
||
```json
|
||
{
|
||
"code": 1,
|
||
"msg": "ok",
|
||
"data": {
|
||
"text": "识别的文字"
|
||
}
|
||
}
|
||
```
|
||
|
||
**对话模式**:
|
||
```json
|
||
{
|
||
"code": 1,
|
||
"msg": "ok",
|
||
"data": {
|
||
"user_text": "用户说的话",
|
||
"ai_text": "AI的回复",
|
||
"audio_data": "base64编码的AI语音",
|
||
"audio_format": "mp3"
|
||
}
|
||
}
|
||
```
|
||
|
||
## 🔧 前端配置
|
||
|
||
```javascript
|
||
// xuniYou/utils/request.js
|
||
|
||
// 本地开发
|
||
export const baseURL = 'http://127.0.0.1:30100'
|
||
export const baseURLPy = 'http://127.0.0.1:30101'
|
||
|
||
// 局域网测试(替换为你的电脑 IP)
|
||
export const baseURL = 'http://192.168.1.141:30100'
|
||
export const baseURLPy = 'http://192.168.1.141:30101'
|
||
```
|
||
|
||
## 🔍 调试命令
|
||
|
||
```bash
|
||
# 检查端口占用
|
||
netstat -ano | findstr :30100
|
||
netstat -ano | findstr :30101
|
||
|
||
# 测试健康检查
|
||
curl http://127.0.0.1:30101/health
|
||
|
||
# 查看进程
|
||
tasklist | findstr php.exe
|
||
tasklist | findstr python.exe
|
||
|
||
# 停止进程
|
||
taskkill /F /IM php.exe
|
||
taskkill /F /IM python.exe
|
||
```
|
||
|
||
## 📋 环境变量
|
||
|
||
```bash
|
||
# .env 文件
|
||
|
||
# DashScope API Key(必需)
|
||
DASHSCOPE_API_KEY=sk-xxx
|
||
|
||
# OSS 配置(语音功能必需)
|
||
ALIYUN_OSS_ACCESS_KEY_ID=xxx
|
||
ALIYUN_OSS_ACCESS_KEY_SECRET=xxx
|
||
ALIYUN_OSS_BUCKET_NAME=xxx
|
||
ALIYUN_OSS_ENDPOINT=https://oss-cn-hangzhou.aliyuncs.com
|
||
ALIYUN_OSS_CDN_DOMAIN=https://xxx.oss-cn-hangzhou.aliyuncs.com
|
||
|
||
# 数据库
|
||
DATABASE_URL=mysql+pymysql://root:password@localhost:3306/fastadmin
|
||
|
||
# LLM 配置
|
||
LLM_MODEL=qwen-plus
|
||
LLM_TEMPERATURE=0.8
|
||
LLM_MAX_TOKENS=2000
|
||
|
||
# TTS 配置
|
||
VOICE_CALL_TTS_MODEL=cosyvoice-v2
|
||
VOICE_CALL_TTS_VOICE=longxiaochun_v2
|
||
|
||
# ASR 配置
|
||
VOICE_CALL_ASR_MODEL=paraformer-v2
|
||
VOICE_CALL_ASR_SAMPLE_RATE=16000
|
||
```
|
||
|
||
## 🐛 常见错误
|
||
|
||
| 错误 | 原因 | 解决方案 |
|
||
|------|------|---------|
|
||
| 端口被占用 | 服务已在运行 | 使用启动脚本自动清理 |
|
||
| ModuleNotFoundError | Python 依赖缺失 | `pip install -r lover/requirements.txt` |
|
||
| 连接失败 | 前端配置错误 | 检查 `request.js` 中的 IP 和端口 |
|
||
| ASR 识别失败 | 音频格式错误 | 使用 WAV 格式,16kHz,单声道 |
|
||
| OSS 上传失败 | OSS 配置错误 | 检查 `.env` 中的 OSS 配置 |
|
||
|
||
## 📊 性能指标
|
||
|
||
| 步骤 | 时间 |
|
||
|------|------|
|
||
| 录音 | 2-5秒 |
|
||
| ASR 识别 | 2-5秒 |
|
||
| LLM 生成 | 1-3秒 |
|
||
| TTS 合成 | 1-2秒 |
|
||
| **总计** | **7-15秒** |
|
||
|
||
## 🎯 测试流程
|
||
|
||
1. 双击 `启动项目.bat`
|
||
2. 等待两个窗口启动完成
|
||
3. 访问 http://127.0.0.1:30101/docs 验证
|
||
4. 打开前端应用
|
||
5. 进入语音通话页面
|
||
6. 按住说话按钮
|
||
7. 说话 2-3 秒
|
||
8. 松开按钮
|
||
9. 等待 AI 回复
|
||
10. 听到 AI 语音
|
||
|
||
## 📞 技术支持
|
||
|
||
遇到问题时提供:
|
||
1. 前端控制台日志
|
||
2. Python 后端窗口日志
|
||
3. PHP 服务器窗口日志
|
||
4. 环境配置信息
|
||
5. 错误截图
|
||
|
||
---
|
||
|
||
**快速链接**:
|
||
- [完整启动指南](完整启动指南.md)
|
||
- [语音对话功能说明](语音对话功能说明.md)
|
||
- [语音对话快速开始](语音对话快速开始.md)
|
||
- [ASR问题修复总结](ASR问题修复总结.md)
|
||
|
||
**最后更新**: 2026-03-05
|