Skip to content

国内外的ai聚合,统一页面可以选择不同的ai厂家和不同的模型,内置知识库,图片理解,文本对话,预置角色。支持阿里灵积/百度千帆/OpenAI/Kimi/智谱清言

Notifications You must be signed in to change notification settings

qifan777/uni-ai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 

Repository files navigation

UNI-AI(AI聚合)

项目内容

项目内容

厂家 文本对话 图片理解 图片生成 知识库(向量数据库) 预置角色 插件系统
OpenAI
阿里灵积
百度千帆 × 计划中
智普清言 识别不准确
kimi × 计划中 ×

知识库

知识库使用教程

图片生成

图片理解

文本对话:

项目安装

docker-compose方式快速安装 源码方式安装

项目结构

  • uni-ai-admin 聊天界面+后台管理
    • scripts
      • generate-api.js 请求后端生成src/apis下的接口和ts类型
    • src
      • apis 调用后端的接口和接口的ts类型
      • assets 静态资源
      • components 全局通用组件
      • layout 页头/页签管理/左侧树菜单
      • router 路由
      • store 全局级别的状态管理
      • utils 工具
      • typings 通用ts类型
      • views 页面
        • xxx(如: menu)
          • xxx-vuw.vue 入口页面,在router中注册
          • components 页面级别的通用组件
            • xxx-create-form.vue 创建表单
            • xxx-update-form.vue 编辑表单
            • xxx-table.vue 展示表格
            • xxx-query.vue 查询表单
            • xxx-dialog.vue 对话框
          • store 页面级别的状态管理,上述几个组件共享store中的变量
      • App.vue 整个项目的入口
      • main.ts vue实例初始化
    • env.development 开发态环境变量
    • env.production 生产态环境变量
    • .eslintrc.js eslint配置
    • .prettierrc.json prettier配置
    • env.d.ts 全局ts类型声明文件
    • package.json npm依赖
    • tsconfig.json ts配置
    • tsconfig.node.json 与打包相关的ts配置,和web开发无关(dev dependencies)
    • tsconfig.app.json web开发相关的ts配置(dependencies)
    • view.config.js vite配置
  • uni-ai-server Java服务端
    • buildSrc 通用的依赖和配置,如lombok,springboot依赖
    • common 通用的类
    • generator-core 代码生成器的注解部分
    • generator-processor 代码生成器的实现部分
    • gradle 依赖版本号管理
    • scripts 数据库sql脚本
    • server 后端启动模块
      • src/main
        • dto jimmer的dto文件,可以参考jimmer官方文档
        • java/io.qifan.server
          • ServerApplication 启动类
          • infrastructure 基础设施配置
          • ai ai模块
            • message 聊天消息
            • session 聊天会话
            • model AI模型
            • role AI角色
            • tag AI模型标签
            • uni 各厂家模型统一接口
          • dict 字典管理
          • menu 菜单管理
          • role 角色管理
          • user 用户管理
          • setting token价格配置
          • wallet 钱包计费
    • spring-ai-dashscope-spring-boot-stater 阿里灵积AI
    • spring-ai-qianfan-spring-boot-stater 百度千帆AI
    • spring-ai-spark-spring-boot-stater 讯飞星火AI
    • spring-ai-kimi-spring-boot-stater kimi AI
    • spring-boot-starter-oss 阿里云oss,腾讯云oss,nginx静态文件服务
    • spring-boot-starter-sms 短信发送服务,阿里云短信,控制台短信测试
    • spring-boot-starter-security SaToken配置

技术栈

管理端

技术 说明 官网
Vite 开箱即用的现代前端打包工具 https://cn.vitejs.dev/
Vue3 Vue 基于标准 HTML 拓展了一套模板语法。Vue 会自动跟踪 JavaScript 状态并在其发生变化时响应式地更新 DOM https://cn.vuejs.org/
Vue Router Vue官方路由管理框架 https://router.vuejs.org/
ElementUI Plus 支持TypeScript提示的Vue3前端UI框架 https://element-plus.gitee.io/zh-CN/
Pinia 全局状态管理框架,支持TypeScript类型提示 https://pinia.web3doc.top/
TypeScript 让 JS 具备类型声明 https://www.typescriptlang.org/
ESLint 语法校验和格式整理 https://eslint.org/
DayJS 日期取值/赋值/运算等操作 https://dayjs.fenxianglu.cn/
LodashJs JS各种常用的工具方法 https://www.lodashjs.com/
SSE.js SSE流式请求
md-editor-v3 markdown语法解析

服务端

以我做过三十多个项目和实际工作的经验来说,实际上大部分的需求都是增删改查,我前三年的所有项目的ORM框架都是选用MyBatis(Plus) 。每次写动态查询、多表查询、字段映射、字段修改(增加/删除/修改)都需要耗费很多精力去修改Mapper。特别是当需求比较多时,大量的时间被这种无聊地增删改查SQL占用,写代码就变得很无趣。

最近我发现了一个国产的ORM框架Jimmer,它和不仅有Mybatis的灵活也有JPA的简便,非常适合自己开发项目。

技术 说明 官网
SpringBoot3 Web应用开发框架,需要JDK17及以上版本 SpringBoot
SpringAi 统一AI的聊天模型,embedding模型,向量数据库的入参模型等等 SpringAI
SaToken 一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权 等一系列权限相关问题 SaToken
Jimmer 不仅有Mybatis的灵活性也有Hibernate的复用性 Jimmer
QiFanGenerator 自己写的代码生成器,快速生成前后端增删改查。 无官网,在代码里面参考@GenEentity@GenField就两个注解就行了
阿里云OSS 存储图片,学习用途基本上免费。 对象存储 OSS-阿里云帮助中心 (aliyun.com)
微信小程序服务端API 用户登录,订阅消息等接口 微信开放文档 (qq.com)
微信支付V3 用户支付订单 微信支付开发者文档 (qq.com)
gradle 本项目有许多模块,gradle起来比较方便

小程序端

小程序端规划中

联系方式

商务合作:ljc66max(微信) 交流群:416765656

About

国内外的ai聚合,统一页面可以选择不同的ai厂家和不同的模型,内置知识库,图片理解,文本对话,预置角色。支持阿里灵积/百度千帆/OpenAI/Kimi/智谱清言

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published