首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >写了一个 AI 项目 ,有点意思!

写了一个 AI 项目 ,有点意思!

作者头像
勇哥java实战
发布2025-06-19 12:57:18
发布2025-06-19 12:57:18
4300
举报
文章被收录于专栏:勇哥编程游记勇哥编程游记

1 项目背景

勇哥一直想学习 AI 方面的知识,但一直不知道从哪个角度来展开,在四月份的时候,从 Github 上看到了一个开源项目 one-api , 该项目在 Github 上有 24K star ,颇受欢迎。

该项目产生的背景是:

最近一两年,很多企业推出了自己的大语言模型Azure、Anthropic Claude、GooglePaLM2、智谱 ChatGLM、百度文心一言、讯飞星火认知、阿里通义千问、360 智脑以及腾讯混元

但是这些多种多样,混乱不统一的大语言模型会给开发者带来一个问题,当我们想要使用这些大语言模型进行项目开发时,难免会遇到接口不统一问题。

OneAPI 的概念是通过标准的 OpenAI API 接口,支持访问多种主流大模型,包括但不限于 OpenAI、DeepSeek、字节豆包、ChatGLM、文心一言、讯飞星火、通义千问、腾讯混元等。

图片
图片

勇哥发现 one-api 是 Go 语言编写的,而且在 Github 上没有找到 Java 版本的项目,于是萌生写一个类似功能的学习项目。

同时,这个项目需要提供完整的后台管理的功能,便于我后续增加更多的 AI 功能。

于是,我选择了改造和剪裁开源项目 ruoyi-vue-pro ,大概经过 20 天左右的剪裁 ,初步架构设计如下图:

图片
图片

优化点:

  • 删除多余模块,保留纯净版
  • 重写 Token 管理 (不依赖 MySQL 存储)
  • 雪花算法生成分布式 ID

剪裁过后,花了 1 个月的时间 ,项目一期基本开发完成 ,我将项目起名为 幻视 AI 助手 。

幻视 AI 助手(Vision AI Assistant)的核心亮点:

  • 后端单体开发平台:基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 (一期)。
  • OneApi :大模型 API 管理 & 分发系统,支持 DeepSeek、字节豆包、讯飞星火、通义千问等主流模型,统一 API 适配,可用于 key 管理与二次分发 (一期)。
  • 知识库:结合 RAG(检索增强生成),让 AI 不仅能“聊”,还能“查”,提供精准的知识支持 (二期)。

2 项目模块

项目包含三个工程:

图片
图片

01 服务端 vision-ai-admin

服务端基于 ruoyi-vue-pro 开源项目做了剪裁和重构,经笔者测试支持 JDK 8 和 JDK 17 。使用到的后端技术列表如下:

序号

技术

名称

版本

官网

1

Spring Boot

基础框架

2.7.18

https://spring.io/projects/spring-boot

2

SpringMVC

MVC 框架

5.3.9

https://github.com/spring-projects/spring-framework/tree/main/spring-webmvc

3

Spring Security

Spring 安全框架

5.8.14

https://github.com/spring-projects/spring-security

4

MyBatis-Plus

持久层框架

3.5.9

https://baomidou.com

5

MySQL

数据库服务器

>= 5.7

https://www.mysql.com/cn/

6

Dynamic Datasource

动态数据源

4.3.1

https://dynamic-datasource.com/

7

Redis

分布式缓存数据库

Latest

https://redis.io

8

HuTool

小而全的工具集项目

5.8.35

https://hutool.cn

9

Maven

项目构建管理

3.9.1

http://maven.apache.org

10

Redisson

Redis Java 客户端

3.41.0

https://redisson.org

11

hibernate-validator

参数校验组件

8.0.1.Final

https://github.com/hibernate/hibernate-validator

12

TTL

增强版 ThreadLocal

2.14.3

https://github.com/alibaba/transmittable-thread-local

13

Jackson

JSON 工具库

2.17.1

https://github.com/FasterXML/jackson

14

mapstruct

Java Bean 转换

1.6.3

https://mapstruct.org/

15

Lombok

消除冗长的 Java 代码

1.18.36

https://projectlombok.org/

16

Springdoc

Swagger 文档

1.8.0

https://springdoc.org/

17

Quartz

任务调度系统组件

2.3.2

https://www.quartz-scheduler.org/

02 管理后台界面 vision-ai-admin-ui

框架

说明

版本

Vue

Vue 框架

3.3.8

Vite

开发与构建工具

4.5.0

Element Plus

UI 组件库

2.4.2

TypeScript

JavaScript 的超集

5.2.2

Pinia

状态管理库(替代 Vuex)

2.1.7

VueUse

常用工具集

10.6.1

Vue I18n

国际化

9.6.5

Vue Router

Vue 路由

4.2.5

UnoCSS

原子化 CSS 引擎

0.57.4

Iconify

在线图标库

3.1.1

WangEditor

富文本编辑器

5.1.23

03 AI 对话前端界面 vision-ai-nextchat

vision-ai-nextchat 是基于开源项目 NextChat 定制的,删除了冗余的功能(面具)以及移除遥测统计 ,同时模型列表只保留主流大模型

框架

说明

版本

官网地址

1

React

前端框架

18+

https://react.dev

2

Next.js

服务端渲染框架

14+

https://nextjs.org

3

TypeScript

JavaScript 超集语言

5.0+

https://www.typescriptlang.org

4

Tauri

跨平台客户端框架

1.3+

https://tauri.app

5

UnoCSS

原子化 CSS 引擎

0.57+

https://unocss.dev

3 生产环境演示

01 系统登录

图片
图片

进入登录界面,默认租户是:「勇哥Java实战」 , 输入用户名和密码 。

登录成功后,进入首页。

图片
图片

左侧导航有三个模块 :

  • 系统管理: 用户管理, 角色管理, 菜单管理, 部门管理, 通知公告, 岗位管理, 字典管理, 审计日志, 地区管理
  • 基础设施 数据源配置, 表单构建, API 接口, 文件管理, 定时任务, 配置管理
  • 幻视 AI 助手 模型配置, 平台配置, OneApi 令牌, NextChat对话

02 模型配置

点击模型配置链接,查看标准模型列表。

图片
图片

标准模型是指客户端(NextChat 或者 CherryStudio )接入时,模型的唯一标识

图片
图片

03 平台配置

点击平台配置链接,进入平台配置列表。

图片
图片

平台配置包含两个部分:

  • 平台 api 访问地址 和 平台 apiKey
  • 绑定模型
图片
图片

注意: 因为同一个模型在各个平台对应的模型名可能并不一致 ,所以需要配置下

04 OneApi 令牌

OneApi 令牌是访问开放接口的凭证,我们可以使用 OPENAI 客户端或者其他兼容 OPENAI 接口的客户端 比如 NextChat 、CherryStudio 访问幻视 AI 助手配置的平台接口。

点击 OneApi 令牌,进入令牌列表。

图片
图片

05 NextChat 对话

点击 NextChat 对话,因为我们的模型列表里已经配置了 DeepSeek ,所以我们选择模型 deepseek-chat ,就可可以进行对话了。

图片
图片

注意: 笔者在部署 NextChat 时,已经将幻视 AI 助手创建的 OneApi token 和接口请求 URL 放入到了环境变量里。

图片
图片

06 Cherry Studio 对话

Cherry Studio 是一款集多模型对话、知识库管理、AI 绘画、译等功能于一体的全能 AI 助手平台。

如下图,我们使用 Cherry Studio 对接幻视 AI 演示:

图片
图片

4 课程目录

01 项目概览

  • 幻视 AI 助手简介
  • 技术架构选型
  • 项目线上演示
  • 后端服务模块:vision-ai-admin
  • 管理后台界面:vision-ai-admin-ui

02 快速开始

  • 本地开发环境搭建
  • 启动后端服务:vision-ai-admin
  • 启动 UI 界面:vision-ai-admin-ui / vision-ai-nextchat

03 后端篇 (开发中)

  • Spring Boot Starter 机制
  • MyBatis-Plus 数据访问层
  • 分页功能实现
  • 参数校验机制
  • 全局异常处理
  • 接口文档生成( Swagger / Knife4j )
  • 异步任务 Quartz 集成
  • AOP 操作日志记录实现
  • Redis 缓存方案(基于 Redisson 框架)
  • 分布式锁实现
  • 雪花算法全局唯一 ID 生成方案
  • 用户认证与 TOKEN 登录机制
  • 文件上传与下载功能实现

04 OneApi 篇

  • OneApi 设计理念:模型与接口标准化
  • OneApi 标准对话接口说明(两种响应模式:SSE(流式)与 JSON(非流式))
  • OneApi 模块数据库结构设计
  • DeepSeek API 注册申请与调用示例(基于 HttpClient)
  • 模型参数理解:多轮对话、温度
  • 四类实时通信方案对比:长轮询、短轮询、WebSocket、SSE
  • SSE 服务端推送原理及实战示例
  • Spring Boot 集成 SSE:
    • SseEmitter 示例(结合 DeepSeek
    • Flux 响应式流式推送(结合 DeepSeek
  • OneApi 对话接口设计原则与核心实现
  • 使用工厂模式适配多平台大模型 API 客户端
  • Spring AI 与幻视 AI 助手集成实践

05 生产部署实战

  • CentOS 安装 Docker 环境
  • 环境搭建:MySQL 5.7、Redis  、Nginx
  • 部署幻视 admin 后端 、幻视 admin 前端 、幻视 nextchat 前端

5 写到最后

勇哥相信所有的应用都会被 AI 重写 ,one-api 的功能理念以及应用场景会越来越多。

编写代码不难,但对接 NextChat 、CherryStudio 、Spring AI ,着实花费了不少的时间,所以我相信我的工程代码会给你带来一些不一样的思考。

接下来,我会继续完善该项目,同时也在学习 RAG 相关知识点 。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-06-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 勇哥java实战分享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 项目背景
  • 2 项目模块
    • 01 服务端 vision-ai-admin
    • 02 管理后台界面 vision-ai-admin-ui
    • 03 AI 对话前端界面 vision-ai-nextchat
  • 3 生产环境演示
    • 01 系统登录
    • 02 模型配置
    • 03 平台配置
    • 04 OneApi 令牌
    • 05 NextChat 对话
    • 06 Cherry Studio 对话
  • 4 课程目录
    • 01 项目概览
    • 02 快速开始
    • 03 后端篇 (开发中)
    • 04 OneApi 篇
    • 05 生产部署实战
  • 5 写到最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档