# 项目介绍
- 后端:基于ruoyi项目(springboot、springSecurity、mybatis、mysql、sse通信、rabbmitMq(队列)
- 前端:基于ruoyi-vue开发
- 微信小程序
com.hx
├── chatBot-common // 工具类
│ └── annotation // 自定义注解
│ └── config // 全局配置
│ └── constant // 通用常量
│ └── core // 核心控制
│ └── enums // 通用枚举
│ └── exception // 通用异常
│ └── json // JSON数据处理
│ └── utils // 通用类处理
│ └── xss // XSS过滤处理
├── chatBot-framework // 框架核心
│ └── aspectj // 注解实现
│ └── config // 系统配置
│ └── datasource // 数据权限
│ └── interceptor // 拦截器
│ └── manager // 异步处理
│ └── shiro // 权限控制
│ └── web // 前端控制
├── chatBot-generator // 代码生成(不用可移除)
├── chatBot-quartz // 定时任务(不用可移除)
├── chatBot-system // 系统代码
├── chatBot-admin // 后台服务
│ └── config // restTemplate、swagger配置
│ └── ChatGptController // chatGpt Api调用类
│ └── ChatFunction* // AI分类
│ └── ChatHyController // 会员
│ └── ChatMessageController // 聊天记录
│ └── RabbitJobController // 队列排队(可选)
│ └── WxController // 微信登陆
│ └── WxPayController // 微信支付
│ └── tool // 腾讯语音识别(语音合成)
├── build // 构建相关
├── bin // 执行脚本
├── public // 公共文件
│ ├── favicon.ico // favicon图标
│ └── index.html // html模板
│ └── robots.txt // 反爬虫
├── src // 源代码
│ ├── api // 所有请求
│ ├── assets // 主题 字体等静态资源
│ ├── components // 全局公用组件
│ ├── directive // 全局指令
│ ├── layout // 布局
│ ├── plugins // 通用方法
│ ├── router // 路由
│ ├── store // 全局 store管理
│ ├── utils // 全局公用方法
│ ├── views // view
│ ├── functionManager // AI分类配置页面
│ ├── App.vue // 入口页面
│ ├── main.js // 入口 加载组件 初始化等
│ ├── permission.js // 权限管理
│ └── settings.js // 系统配置
├── .editorconfig // 编码格式
├── .env.development // 开发环境配置
├── .env.production // 生产环境配置
├── .env.staging // 测试环境配置
├── .eslintignore // 忽略语法检查
├── .eslintrc.js // eslint 配置项
├── .gitignore // git 忽略项
├── babel.config.js // babel.config.js
├── package.json // package.json
└── vue.config.js // vue.config.js
├── image // 静态图片
├── miniprogram_npm // 插件
├── pages // 核心页面
│ ├── genImage // AI图片页面
│ └── hy // 会员页面
│ └── messageTemplate // Ai分类聊天模式模板页面
│ └── mine // 我的页面
│ └── tabs // AI分类tab页面
│ └── tabXiaoshuo // Ai分类表单模板页面
├── utils // 工具包
├── app.js // 全局js
├── app.json // 全局配置json
├── app.wxss // 全局样式css
# 功能介绍
- 基于chatgpt的智能AI聊天,流式响应
- 语音转文字识别
- 文字转语音播放
- AI分类
- AI分类模板
- AI图像生成
- 会员管理
# 环境部署
# 准备工作
JDK >= 1.8 (推荐1.8版本)
Mysql >= 5.7.0 (推荐5.7版本)
Maven >= 3.0
Redis
rabbitMQ(可选安装)
# 必要配置
- 修改数据库连接,编辑
resources目录下的application-druid.yml
# 数据源配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
druid:
# 主库数据源
master:
url: 数据库地址
username: 数据库账号
password: 数据库密码
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
- 修改服务器配置,
编辑resources目录下的application.yml
# 开发环境配置
server:
# 服务器的HTTP端口,默认为80
port: 端口
servlet:
# 应用的访问路径
context-path: /应用路径
- 微信支付相关配置
wx:
miniapp:
configs:
- appid: #微信小程序的appid
secret: #微信小程序的Secret
token: #微信小程序消息服务器配置的token
aesKey: #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON
miniprogramState: trial #developer为开发版;trial为体验版;formal为正式版;
pay:
appId: #微信公众号或者小程序等的appid
mchId: #微信支付商户号
mchKey: #微信支付商户密钥
subAppId: #服务商模式下的子商户公众账号ID
subMchId: #服务商模式下的子商户号
keyPath: # p12证书的位置,可以指定绝对路径,也可以指定类路径(以classpath:开头)
- rabbitmq相关配置(可选-部分chatgpt账号限制每分钟访问次数,引入rabbitMq添加队列排队)
spring:
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
# 前端运行
# 进入项目目录
cd chatBot-ui
# 安装依赖
npm install
# 强烈建议不要用直接使用 cnpm 安装,会有各种诡异的 bug,可以通过重新指定 registry 来解决 npm 安装速度慢的问题。
npm install --registry=https://registry.npmmirror.com
# 本地开发 启动项目
npm run dev
# 小程序端
globalData:{
userInfo:null,//全局用户信息
bbxData:[],//百宝箱页面数据预加载
token: null,//后端验证用户token
answeredTime:0,//剩余体验次数
ip:"https://"+"127.0.0.1"+":80",//后台接口请求路径
}