lty/qy_lty/docs/项目功能介绍.md
pmc bd95ba470c feat: update admin panel, API modules, and add migrations
- Update food, outfits, props, home-decor pages and components
- Add permissions page and sidebar updates
- Update API client and all API modules (auth, food, dances, etc.)
- Add card model migrations for optional fields
- Update Django views, serializers, and authentication
- Add affinity level migrations and user app updates
- Add project documentation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-20 13:06:50 +08:00

7.7 KiB
Raw Permalink Blame History

QY LTY 后端服务 — 项目功能介绍

项目定位

QY LTY 是一个 AI 智能硬件(如陪伴机器人/智能玩具)的后端平台,基于 Django 构建,为设备提供 AI 对话、语音交互、实时通信能力,同时管理用户账号、卡密激活、订阅付费和成就激励体系。


代码目录结构

目录 说明
qy_lty/ Django 主配置settings、urls、asgi
userapp/ 用户管理与认证
aiapp/ AI 对话系统
card/ 卡片/卡密系统
device_interaction/ 设备 WebSocket 实时通信
achievement_app/ 成就系统
subscription_app/ 订阅管理
ali_vi_app/ 阿里云视觉智能(换脸/美颜等)
food_app/ 食物系统(游戏道具)
workflow_app/ 工作流管理(开发中)
common/ 公共工具响应格式、OSS、中间件
docs/ 项目文档

功能模块详解

1. 用户管理userapp/

  • 自定义用户模型 ParadiseUser扩展字段手机号、性别、生日、星座、MBTI、兴趣、社交身份
  • 多种登录方式手机号、邮箱、用户名、MAC 地址
  • 阿里云短信验证码
  • 微信社交登录django-allauth
  • Redis Token 认证

核心文件:

  • models.py — ParadiseUser 用户模型
  • views.py — 注册、登录、资料更新接口
  • authentication.py — RedisTokenAuthentication 自定义认证
  • utils.py — 短信发送、Token 生成与管理

2. AI 对话系统aiapp/

  • 单轮对话: /api/ai/chat/<bot_id>/
  • 多轮对话: /api/ai/multichat/(保持上下文)
  • 接入 Kimi月之暗面大模型
  • 语音服务: 多供应商抽象架构
    • audio/AliyunAudioService.py — 阿里云语音
    • audio/TencentAudioService.py — 腾讯云语音
    • audio/HuoshanAudioService.py — 火山引擎语音
  • 支持语音合成TTS和语音识别ASR

核心文件:

  • models.py — Bot 机器人模型、ChatMessage 对话记录模型
  • views.py — ChatBotAPIView单轮、MultiChatAPIView多轮
  • kimi.py — Kimi API 客户端OpenAI 兼容接口)
  • audio/AudioService.py — 音频服务工厂函数
  • audio/BaseAudioService.py — 音频服务抽象基类

3. 设备实时通信device_interaction/

  • WebSocket 连接:ws://domain/ws/device/token/{token}/
  • 设备模型设备类型、批次、序列号、电量、固件版本、WiFi、亮度
  • 用户-设备绑定关系
  • 消息类型:chat_message(聊天)、weather(天气)、sing(唱歌)、dance(跳舞)
  • 集成和风天气 API、高德地图 API
  • 火山引擎 RTC 实时音视频

核心文件:

  • models.py — DeviceType、DeviceBatch、Device、UserDevice 模型
  • consumers.py — DeviceConsumer WebSocket 消费者
  • views.py — 设备管理 API
  • services.py — Redis 设备连接状态追踪
  • auth.py — TokenAuthMiddleware WebSocket 认证中间件
  • weather.py — 和风天气 API 集成
  • amap_api.py — 高德地图定位服务
  • volcengine_api.py — 火山引擎 RTC 集成

4. 卡片/卡密系统card/

  • 卡片模板:分类(服装、道具、歌曲、舞蹈、家具、装饰)、稀有度
  • 批量生成卡密,支持 Excel 导出
  • 二维码生成和扫码核销
  • 使用日志追踪(扫描、使用、作废、发布、生产)
  • 每个分类有独立属性模型ClothingAttributes、PropAttributes 等)

核心文件:

  • models.py — CardTemplate、Card、CardBatch、CardUsageLog 及各分类属性模型
  • views.py — 模板 CRUD、批量生成、扫码核销、Excel 导出
  • storage.py — OSSStorage 阿里云对象存储集成

5. 成就系统achievement_app/

  • 成就定义名称、描述、图标、达成条件JSON
  • 稀有度:普通 / 珍贵 / 稀有 / 史诗 / 传说
  • 类型:登录 / 活动 / 社交 / 使用 / 特殊 / 隐藏
  • 用户成就进度追踪与通知

核心文件:

  • models.py — Achievement 成就定义、UserAchievement 用户成就记录

6. 订阅管理subscription_app/

  • 订阅计划:月付 / 季付 / 年付
  • 增值包购买AddOnPackage
  • 计费记录TenantBilling
  • 定时任务处理订阅续期

核心文件:

  • models.py — SubscriptionPlan、Subscription、AddOnPackage、SubscriptionAddOn、TenantBilling
  • scheduler.py — 定时任务
  • tasks.py — 异步任务

7. 阿里云视觉智能ali_vi_app/

  • 人脸融合/换脸
  • 人脸美颜
  • 面部液化、妆容、肤质优化

核心文件:

  • vi.py — VI 类,封装阿里云 FaceBody APIadd_template、merge_image_face、face_beauty 等)

8. 食物系统food_app/

  • 食物道具:水果、蔬菜、肉类、海鲜等 11 种分类
  • 稀有度等级、卡路里、口味标签、营养值
  • 游戏效果、使用次数限制、上架时间窗口
  • 用户食物背包、使用日志

核心文件:

  • models.py — Food 食物定义、UserFood 用户背包、FoodUsageLog 使用日志

9. 公共基础设施common/

  • 标准化 API 响应格式:{success, code, message, data}
  • 阿里云 OSS 文件上传
  • 阿里云日志服务
  • 自定义分页(默认 10 条,最大 100 条)
  • 火山引擎 Token 管理

核心文件:

  • responses.py — api_response、success_response、error_response 等标准响应函数
  • middleware.py — StandardResponseMiddleware 统一响应中间件
  • pagination.py — CustomPageNumberPagination 分页器
  • oss.py — OSSUploader 文件上传工具
  • aliyun_logging.py — 阿里云日志配置

API 接口一览

路径 说明
/api/user/ 用户认证与管理
/api/ai/ AI 对话接口
/api/device/ 设备管理与消息推送
/api/card/ 卡片系统管理
/api/achievement/ 成就系统
/api/v1/admin/ 管理后台接口
/swagger/ Swagger API 文档
/redoc/ ReDoc API 文档

WebSocket 端点:

  • ws://domain/ws/device/ — 设备连接
  • ws://domain/ws/device/token/{token}/ — 带 Token 认证的设备连接

技术栈

层面 技术
框架 Django 4.2.13 + Django REST Framework
实时通信 Django Channels + Daphne ASGI
数据库 PostgreSQL
缓存/消息 Redis
AI 模型 KimiOpenAI 兼容接口)
语音服务 阿里云 / 腾讯 / 火山引擎(可配置切换)
文件存储 阿里云 OSS
短信服务 阿里云 SMS
视觉智能 阿里云 FaceBody
地图/天气 高德地图 / 和风天气
音视频 火山引擎 RTC
部署 Docker + docker-compose
API 文档 drf-yasgSwagger / ReDoc
后台管理 django-simpleui

环境配置

必需环境变量(.env

  • SECRET_KEY — Django 密钥
  • DEBUG — 调试模式
  • POSTGRESQL_DATABASE_* — 数据库连接
  • REDIS_LOCATIONREDIS_PASSWORD — Redis 配置
  • KIMI_API_KEYKIMI_BASE_URL — Kimi AI 配置
  • ALIYUN_* — 阿里云各服务凭证
  • VOLCENGINE_ACCESS_KEYVOLCENGINE_SECRET_KEY — 火山引擎配置
  • AUDIO_SERVICE_PROVIDER — 语音服务商选择

快速启动

# 安装依赖
pip install -r requirements.txt

# 配置环境变量
cp .env.bak .env

# 数据库迁移
python manage.py migrate

# 启动服务(支持 WebSocket
daphne -b 0.0.0.0 -p 8000 qy_lty.asgi:application

# Docker 部署
docker-compose up -d --build