# 项目介绍

  • 后端:基于ruoyi项目(springboot、springSecurity、mybatis、mysql、sse通信、rabbmitMq(队列)
  • 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                          // 腾讯语音识别(语音合成)
    				
  • 前端:基于ruoyi-vue开发
  • 
    ├── 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
  • 修改服务器配置,编辑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",//后台接口请求路径
}