# 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应用设计 + 多租户 + 计费套餐 + 工作流管理 + 放到 工作流 -