# ai-chat-open **Repository Path**: ai2012/ai-chat-open ## Basic Information - **Project Name**: ai-chat-open - **Description**: AI智能聊天小程序开源版本,目前支持对接阿里百炼、百度千帆文心一言、讯飞星火大模型. 基于ruoyi-vue-plus的java8版本 目前支持主要的三家厂商+本地ollama接口调用 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: https://justyh.cn - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 37 - **Created**: 2025-04-29 - **Last Updated**: 2025-04-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ``` 🕙 分享是一种美德,右上随手点个 🌟 Star,谢谢~ ``` #### 基于ruoyi-vue-plus的ai智能聊天小程序 ##### 主要技术栈 - 后端:springboot2.7.18、mybatisplus、mysql、redis - web前端:vue2、markdown编辑器cherry-markdown - 小程序:微信原生语法、vant ui组件 #### 开源版本 - 微信小程序 - 后端 - 管理后台前端 - 开源功能 - 微信登录 - AI聊天功能 - 次数记录 - 首次赠送 - 支持后台配置对接的AI厂商,目前支持阿里通义千问,百度千帆大模型(文心一言),讯飞星火大模型 - 支持本地ollama的api,注意暂时后端yml配置api地址 #### 更新记录 - 20240522 - 持后台配置对接的AI厂商,目前支持阿里通义千问,百度千帆大模型(文心一言),讯飞星火大模型 - 目前**免费**的模型: - 百度:speed、lite系列 - 讯飞:spark-lite - 20240529 - 配置参数新增数据脱敏,非admin用户隐藏中间字符串 - 更新sql文件,去除无用数据,sql位置:script/sql/ai-chat-open.sql - 20240530 - 小程序markdown解析组件替换为wemark,更加轻量和好用 - AI返回消息新增打字机效果,并且ws消息改为每次只传新增的文字,减少数据传输,也方便前端拼接 - 当未登录时自动跳转到登录页 - 修复已知bug - 20240628 - 支持最新的讯飞星火大模型4.0 Ultra版本 - 20240812 - 对话新增结束标记,防止对话还没结束就又开启下一轮 - 20240821 - 登录页UI修改,更新登录背景图,登录框可以叉掉 - 20250204 - SSL证书已更新,网站恢复正常 - 引入第三方AI的SDK,对接其他大模型,目前仅测试,本地已调通ollama结合deepseek-r1大模型接口,如果想直接对接deepseek需要等待deepseek官网恢复正常 - 20250221 - 支持阿里百炼大模型的deepseek模型 - 模型配置支持思考过程开关 - 登录页修改,图片背景影响打开速度,简洁就好,以后可能考虑下加点特效,嘿嘿~ - 20250425 - 支持ollama接口调用,注意:先根据自己的情况在yml里配置ollama的api地址,然后在模型配置菜单里选择ollama,选择自己的模型,如果模型没有可以在字典管理-模型类型 里自己加 - 更新最新的sql文件,sql位置:script/sql/ai-chat-open.sql #### 演示地址 - 管理后台:https://justyh.cn/ - 账号/密码: demo/demo666 - 微信小程序,由于个人开发者无法上线AI类小程序,正式上线版本AI聊天仅展示效果,其他功能正常。 **如有兴趣聊聊的,可以暂时在小程序发客服消息哦,短时间内暂时不打算建群** - 微信小程序体验版:扫码申请体验者,体验完整AI聊天功能,数量限制15人~(**若没通过,可能已经达到上限**) ~~~~ #### 快速上手 ###### 项目目录 ``` ├── ai-chat-ui-mini //微信小程序 ├── ai-chat-ui-web //管理后台前端 ├── doc ├── LICENSE ├── pom.xml ├── README.md ├── ruoyi-admin ├── ruoyi-ai //AI相关接口 ├── ruoyi-common ├── ruoyi-demo ├── ruoyi-framework ├── ruoyi-generator ├── ruoyi-oss ├── ruoyi-sms ├── ruoyi-system └── script ``` ###### 数据库导入 - sql文件路径:script/sql/ai-chat-open.sql - 新建数据库ai-chat-open,将sql文件导入即可 ###### 后端配置 找到application-dev.yml文件 ``` # 修改下面的数据库配置 master: type: ${spring.datasource.type} driverClassName: com.mysql.cj.jdbc.Driver # jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562 # rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题) url: jdbc:mysql://localhost:3306/ai-chat-open?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true username: root password: 123456 #修改下面的redis配置 spring: redis: # 地址 host: localhost # 端口,默认为6379 port: 6379 # 数据库索引 database: 0 # 密码(如没有密码请注释掉) # password: # 连接超时时间 timeout: 10s # 是否开启ssl ssl: false # 修改小程序的appid和secret wx: miniapp: configs: - appid: 你自己的小程序id secret: 你自己的小程序秘钥 token: 111 #暂不需要 aesKey: 111 #暂不需要 msgDataFormat: JSON h5Url: http://www.baidu.com # AI相关配置 ai: maxRounds: 10 # ollama配置,不配置默认就是本地的11434端口 ollama: api-host: http://127.0.0.1:11434 ``` ###### 小程序配置 找到ai-chat-ui-mini里面的config.js文件,修改后端地址 ``` /** * 全局配置 */ const config = { //开发版 'develop': { //请求的地址 baseUrl: 'http://localhost:8080/', wsUrl: 'ws://localhost:8080/ws/ma/chat/' }, //体验版 'trial': { //请求的地址 baseUrl: 'https://xxxx/prod-api/', wsUrl: 'wss://xxxx/ws/ma/chat/' }, //正式版 'release': { //请求的地址 baseUrl: 'https://xxxx/prod-api/', wsUrl: 'wss://xxxx/ws/ma/chat/' } }[wx.getAccountInfoSync().miniProgram.envVersion]; /** * 全局配置 */ module.exports = { config } ``` #### 参考网址 - vant-weapp文档地址:https://vant-ui.github.io/vant-weapp/#/home - 申请通义千问的apiKey:https://help.aliyun.com/zh/dashscope/developer-reference/activate-dashscope-and-create-an-api-key?spm=a2c4g.11186623.0.0.178b7defMVtakP - 百度千帆:https://console.bce.baidu.com/qianfan/modelcenter/model/buildIn/list - 讯飞星火:https://xinghuo.xfyun.cn/sparkapi - 微信小程序markdown渲染库wemark: https://github.com/TooBug/wemark #### 小程序开发经验 - 自定义底部tabBar导航栏 - 在app.json文件中,新增tabBar的配置,并且设定"custom": true,注意list也要设置,虽然不生效但是也得有。然后跟pages平级新建custom-tab-bar文件夹,新增index页面,引入vant的组件 - 注意:list里面的图标不能为空,否则真机预览时编译时会报错 - 关于配色,以下有几个比较好的选项,以后可以考虑走配置 - 紫色:#cb7ddf - 黄色:#FFD000 - 青色:#14B0BB - 真机input输入框输入时被键盘挡住问题解决方案 - input里设置属性:cursor-spacing="30",具体数值根据自己的情况调 - 关于上线 - 前提:申请一个小程序,具体就不赘述了 - 如果想上传体验版,需要配置下域名 - 由于AI类需要资质,个人小程序无法上架,如果是企业可以和阿里云签订合作协议,小程序类目选择深度合成里的AI问答,上传相关资料 #### 问题FAQ - 管理后台前端页面打包时报错:Error: Cannot find module 'html-webpack-plugin' - 重新安装下webpack ``` npm i webpack-dev-server@3.11.0 -d ``` - 后端打包上线 - mvn clean package -D maven.test.skip=true -P prod - ruoyi-admin的目录下,target目录生成ruoyi-admin.jar,启动该jar包 - nginx配置,根据自己需要,参考文件:script/nginx/aichat.conf #### 演示图 ###### 管理后台
###### 模型配置
###### 微信小程序
#### 联系方式 > 欢迎加入微信群交流,由于群二维码有限制,可先关注公众号,在菜单栏联系我,获取联系方式,备注从哪个项目来,拉你进群