243 lines
4.2 KiB
Markdown
243 lines
4.2 KiB
Markdown
# QY LTY Backend
|
||
|
||
This is the backend service for QY LTY project.
|
||
|
||
## Development Setup
|
||
|
||
1. Install dependencies:
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
2. Copy environment file:
|
||
```bash
|
||
cp .env.bak .env
|
||
```
|
||
|
||
3. Start development server:
|
||
```bash
|
||
daphne -b 0.0.0.0 -p 8000 qy_lty.asgi:application
|
||
```
|
||
|
||
## Docker Deployment
|
||
|
||
1. Build and start the container:
|
||
```bash
|
||
docker-compose up -d --build
|
||
```
|
||
|
||
2. Access the application at: http://localhost:12012
|
||
|
||
## 功能特性
|
||
|
||
- 用户管理系统
|
||
- 用户名密码注册登录
|
||
- 手机号验证码登录
|
||
- 用户信息管理
|
||
|
||
- AI 对话系统
|
||
- 单轮对话功能
|
||
- 多轮上下文对话
|
||
- 语音对话支持
|
||
|
||
- 卡片管理系统
|
||
- 卡片类别管理
|
||
- 卡片生命周期管理
|
||
- 批次生成与导出
|
||
- 扫描和使用功能
|
||
|
||
- 设备交互系统
|
||
- WebSocket 实时通信
|
||
- 多种消息类型支持
|
||
- 天气查询功能
|
||
|
||
## API 文档
|
||
|
||
项目的 API 文档使用 Swagger UI 生成,按以下模块组织:
|
||
|
||
### 用户模块 (/api/user/)
|
||
|
||
- 用户注册
|
||
- 用户登录(用户名密码/手机验证码)
|
||
- 用户信息管理
|
||
|
||
### AI 对话模块 (/api/ai/)
|
||
|
||
- 单轮对话 (/chat/{bot_id}/)
|
||
- 多轮对话 (/multichat/)
|
||
- 支持文本和语音输入输出
|
||
|
||
### 卡片模块 (/api/card/)
|
||
|
||
- 卡片类别管理
|
||
- 卡片批次管理
|
||
- 卡片扫描和使用
|
||
|
||
### 设备交互模块 (/api/device/)
|
||
|
||
- 消息发送
|
||
- 天气查询
|
||
- 实时通信
|
||
|
||
## 开发环境配置
|
||
|
||
1. 安装依赖:
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
2. 配置环境变量:
|
||
创建 `.env` 文件并设置必要的环境变量:
|
||
```
|
||
DEBUG=True
|
||
SECRET_KEY=your-secret-key
|
||
DATABASE_URL=your-database-url
|
||
REDIS_URL=your-redis-url
|
||
```
|
||
|
||
3. 数据库迁移:
|
||
```bash
|
||
python manage.py migrate
|
||
```
|
||
|
||
4. 运行开发服务器:
|
||
```bash
|
||
python manage.py runserver
|
||
```
|
||
|
||
## API 文档访问
|
||
|
||
- Swagger UI: `/swagger/`
|
||
- ReDoc: `/redoc/`
|
||
|
||
## WebSocket 连接
|
||
|
||
WebSocket 连接地址:`ws://domain/api/device/messages/{user_id}/`
|
||
|
||
### 消息格式
|
||
```json
|
||
{
|
||
"type": "消息类型",
|
||
"message": "消息内容",
|
||
"user_id": "用户ID"
|
||
}
|
||
```
|
||
|
||
### 支持的消息类型
|
||
- chat_message: 文本消息
|
||
- weather: 天气消息
|
||
- sing: 唱歌消息
|
||
- dance: 跳舞消息
|
||
|
||
## 部署说明
|
||
|
||
1. 设置生产环境变量
|
||
2. 收集静态文件:`python manage.py collectstatic`
|
||
3. 使用 gunicorn 或 uwsgi 作为生产服务器
|
||
4. 配置 nginx 作为反向代理
|
||
|
||
## 安全说明
|
||
|
||
- API 认证使用 Token 认证
|
||
- 文件上传有大小限制
|
||
- 敏感操作需要管理员权限
|
||
- 用户密码使用 bcrypt 加密存储
|
||
|
||
## 贡献指南
|
||
|
||
1. Fork 项目
|
||
2. 创建特性分支
|
||
3. 提交更改
|
||
4. 发起 Pull Request
|
||
|
||
## 许可证
|
||
|
||
本项目采用 MIT 许可证
|
||
|
||
## 项目启动(无anaconda)
|
||
```
|
||
# python3.9
|
||
pip install -r requirements.txt
|
||
# 启动ASGI服务器(支持WebSocket)
|
||
./run.sh
|
||
# 或者直接使用daphne命令
|
||
daphne -b 0.0.0.0 -p 8000 fengye_website_backend.asgi:application
|
||
```
|
||
|
||
## 项目启动(有anaconda)
|
||
```
|
||
conda env create -f environment.yml
|
||
conda activate fengye
|
||
# 启动ASGI服务器(支持WebSocket)
|
||
./run.sh
|
||
# 或者直接使用daphne命令
|
||
daphne -b 0.0.0.0 -p 8000 fengye_website_backend.asgi:application
|
||
```
|
||
|
||
## 注意事项
|
||
1. 启动前请确保Redis服务已启动,因为WebSocket功能依赖Redis作为后端
|
||
2. 确保.env文件中的环境变量已正确配置
|
||
3. 如果使用run.sh脚本,请确保有执行权限:
|
||
```bash
|
||
chmod +x run.sh
|
||
```
|
||
|
||
## 项目依赖
|
||
```
|
||
django
|
||
djangorestframework
|
||
mysqlclient
|
||
django-redis
|
||
django-allauth
|
||
django-simpleui
|
||
django-phone-verify
|
||
requests
|
||
cryptography
|
||
aliyun-python-sdk-core
|
||
aliyun-python-sdk-dysmsapi
|
||
dj_rest_auth
|
||
python-decouple
|
||
openai
|
||
drf-yasg
|
||
|
||
# ali-vi
|
||
alibabacloud_facebody20191230
|
||
alibabacloud_tea_console
|
||
alibabacloud_tea_util
|
||
alibabacloud_tea_openapi
|
||
|
||
# PostgreSQL 适配驱动
|
||
psycopg2
|
||
|
||
django-debug-toolbar
|
||
# rosetta po翻译 路径 /rosetta/
|
||
django-rosetta
|
||
```
|
||
|
||
## i18n
|
||
django-admin makemessages -l en
|
||
django-admin makemessages -l zh_HAns
|
||
django-admin compilemessages
|
||
|
||
apscheduler
|
||
django-cors-headers
|
||
|
||
|
||
## 文档
|
||
+ 项目对接了swagger进行文档管理
|
||
+ swagger访问地址: http://localhost:8000/swagger/
|
||
|
||
|
||
## 管理员
|
||
admin123
|
||
111111
|
||
|
||
# workflow应用设计
|
||
+ 多租户
|
||
+ 计费套餐
|
||
+ 工作流管理
|
||
+ 放到
|
||
|
||
|
||
工作流
|
||
- |