# chatbot-app **Repository Path**: w3sky/chatbot-app ## Basic Information - **Project Name**: chatbot-app - **Description**: 类似小智聊天机器人的服务端,利用小智的板子和程序,修改服务端,可以代替小智的服务端。包含平台管理和会员的管理功能。 对接阿里云AI。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-17 - **Last Updated**: 2026-05-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Chatbot App 基于 Spring Boot 3.5 + Vue 3 的智能对话机器人平台,集成通义千问大模型、语音识别(ASR)、语音合成(TTS)、IoT 设备管理和会员系统。 ## 功能特性 - **AI 对话** — 接入阿里云 DashScope(通义千问),支持多轮上下文对话、自定义 AI 提示词、情感分析 - **语音交互** — 实时语音识别(ASR)+ 语音合成(TTS),支持 WebSocket 双向通信 - **IoT 设备管理** — 通过 MQTT 协议管理和控制智能设备,支持 OTA 升级、设备激活码 - **管理后台** — 用户/角色/菜单权限体系、部门管理、操作日志审计 - **会员系统** — 独立的会员注册/登录、设备绑定与管理 - **文件存储** — 阿里云 OSS 文件上传与管理 - **短信/邮件** — 阿里云 SMS 短信验证码、邮件通知 ## 技术栈 ### 后端 | 技术 | 版本 | 说明 | |------|------|------| | Spring Boot | 3.5.0 | 核心框架 | | Spring AI | 1.0.0-M4 | AI 大模型集成 | | Spring Data JPA | - | ORM 持久层 | | QueryDSL | 5.1.0 | 类型安全查询 | | PostgreSQL | - | 主数据库 | | Redis | - | 缓存与会话管理 | | Spring Integration MQTT | 6.4.1 | IoT 设备通信 | | Kafka | - | 消息队列 | | DashScope SDK | 2.22.14 | 通义千问 AI API | | Druid | 1.2.24 | 数据库连接池 | | JWT | 4.4.0 | 身份认证 | | Aliyun OSS SDK | 3.18.0 | 文件存储 | | Lombok | 1.18.36 | 代码简化 | ### 前端 — 管理后台 (`frontend/`) | 技术 | 版本 | 说明 | |------|------|------| | Vue | 3.2+ | 前端框架 | | Element Plus | 2.11+ | UI 组件库 | | Vite | 6.4+ | 构建工具 | | Pinia | 2.0+ | 状态管理 | | ECharts | 5.3+ | 数据可视化 | | Vue Router | 4.1+ | 路由管理 | | Axios | 0.27+ | HTTP 请求 | | WangEditor | 5.1+ | 富文本编辑器 | ### 前端 — 会员端 (`members_frontend/`) | 技术 | 版本 | 说明 | |------|------|------| | Vue | 3.5+ | 前端框架 | | Element Plus | 2.9+ | UI 组件库 | | Vite | 6.4+ | 构建工具 | | Pinia | 2.3+ | 状态管理 | ## 项目结构 ``` chatbot-app/ ├── api/ # 后端 Spring Boot 项目 │ ├── config/ # 配置文件(dev/test/prod) │ ├── core/ # 核心模块(实体、工具、通用服务) │ │ └── src/main/java/com/pydz/app/ │ │ ├── entity/ # JPA 实体类 │ │ ├── repository/ # 数据访问层 │ │ ├── service/ # 通用服务(JWT、Redis、OSS 等) │ │ ├── mqttserver/ # MQTT 设备通信 │ │ └── util/ # 工具类 │ ├── management/ # 管理后台模块 │ │ └── src/main/java/com/pydz/app/ │ │ ├── controller/manage/ # 管理后台 API │ │ ├── controller/members/ # 会员端 API │ │ └── service/ # 业务服务(AI 对话、ASR、TTS 等) │ └── sql/ # 数据库 DDL 脚本 ├── frontend/ # 管理后台前端(Vue 3) │ └── src/ │ └── views/ # 页面(设备、AI配置、对话、用户等) └── members_frontend/ # 会员端前端(Vue 3) └── src/ └── views/ # 页面(登录、注册、设备、个人中心) ``` ## 快速开始 ### 环境要求 - JDK 17+ - Maven 3.6+ - Node.js 16+ - PostgreSQL 12+ - Redis 5.0+ ### 1. 数据库初始化 创建 PostgreSQL 数据库并导入表结构: ```bash createdb chatbot psql -d chatbot -f api/sql/public.sql ``` ### 2. 后端配置 复制并修改配置文件 `api/config/application-dev.properties`: ```properties # 数据库 spring.datasource.url=jdbc:postgresql://localhost:5432/chatbot spring.datasource.username=postgres spring.datasource.password=your_password # Redis spring.data.redis.host=localhost spring.data.redis.password=your_redis_password # 阿里云 OSS aliyun.accessKeyId=your_access_key_id aliyun.accessKeySecret=your_access_key_secret aliyun.ossBucketName=your_bucket_name # AI 大模型(通义千问) spring.ai.openai.api-key=your_dashscope_api_key spring.ai.openai.base-url=https://dashscope.aliyuncs.com/compatible-mode spring.ai.openai.chat.options.model=qwen-plus ``` ### 3. 编译运行后端 ```bash cd api mvn clean package -DskipTests java -jar management/target/management.jar --spring.config.location=config/ ``` 后端服务默认运行在 `http://localhost:6002`。 ### 4. 运行管理后台前端 ```bash cd frontend npm install npm run dev ``` 管理后台默认运行在 `http://localhost:8888`。 ### 5. 运行会员端前端 ```bash cd members_frontend npm install npm run dev ``` 会员端默认运行在 `http://localhost:3000`。 ## API 概览 ### 管理后台 API (`/manage/`) | 模块 | 路径 | 说明 | |------|------|------| | 账户 | `/manage/account` | 登录、验证码、平台切换 | | AI 配置 | `/manage/ai_config` | AI 提示词配置管理 | | 设备 | `/manage/device` | 设备 CRUD、激活、AI 配置绑定 | | 对话记录 | `/manage/conversation` | 对话历史查询与管理 | | 用户 | `/manage/users` | 用户管理 | | 角色 | `/manage/users_roles` | 角色与权限管理 | | 菜单 | `/manage/users_menus` | 菜单管理 | | 部门 | `/manage/department` | 组织架构管理 | | 激活码 | `/manage/activation_code` | 设备激活码生成与管理 | | 语音 | `/manage/voice` | 语音配置管理 | | 操作日志 | `/manage/operation_log` | 系统操作日志 | | 审计日志 | `/manage/auditor_log` | 审计日志查询 | ### 会员端 API (`/members/`) | 模块 | 路径 | 说明 | |------|------|------| | 认证 | `/members` | 登录、注册、短信验证 | | 设备 | `/members/device` | 设备列表、绑定、激活 | | 个人信息 | `/members` | 个人资料、密码修改 | ### 设备端 API | 路径 | 说明 | |------|------| | `/ota` | OTA 固件升级检查 | | `/chatbot/ota/activate` | 设备在线激活 | | `ws://host:port/management` | WebSocket 语音对话 | ## 数据库表 | 表名 | 说明 | |------|------| | W3Users | 管理后台用户 | | W3UsersRoles | 用户角色 | | W3UsersMenu | 菜单权限 | | W3Members | 会员用户 | | W3Device | IoT 设备 | | W3ActivationCode | 设备激活码 | | W3Conversation | AI 对话记录 | | W3AiConfig | AI 提示词配置 | | W3Voice | 语音配置 | | W3Company | 企业信息 | | W3Department | 部门组织 | | W3Item / W3ItemClass | 物料与分类 | | W3App | 应用管理 | | W3OperationLog | 操作日志 | | W3AuditorLog | 审计日志 | ## 部署 ### 后端打包 ```bash cd api mvn clean package -DskipTests -Pprod ``` ### 前端打包 ```bash # 管理后台 cd frontend && npm run build # 会员端 cd members_frontend && npm run build ``` 打包产物位于各项目的 `dist/` 目录,部署到 Nginx 或静态托管服务即可。 会员端支持一键部署到阿里云 OSS,详见 [members_frontend/DEPLOY.md](members_frontend/DEPLOY.md)。 ## 许可证 MIT