乐思 AI 智能识别平台(基于 YOLO,.NET+Vue3 开发)开源指南
目录
项目概述
项目地址
功能模块
框架与技术栈
单体应用版本
微服务版本
安装教程
单体应用与微服务应用部署说明大纲
单体应用部署说明
安装git 拉取代码
前端部署
安装Node.js 和 npm
安装依赖项并构建
使用Nginx部署
后端部署
原始构建运行
使用systemd来启动服务(应用崩溃时自动重启)
重新加载配置并启动服务
后续更新
数据库部署
微服务应用部署说明
本地构建打包形式
远程仓库部署
项目概述
乐思平台是一款集成多种功能的综合性应用平台,涵盖用户管理、学习答题与 AI 图像识别场景。用户可通过 QQ 邮箱注册、登录,便捷管理个人账号;内置练题系统,支持在线答题,答题成绩实时记录于后台成绩中心,还能按需导出作答情况 Word 文档,方便复盘总结。集成先进 AI 模块,依托 YOLOv8 技术,允许用户上传图片识别,识别后的图片自动存储,随时查看详情。系统界面配备直观数据大屏,精准呈现识别次数、用户注册量等关键指标。
平台经历了从单体应用到微服务架构的演进,不断优化性能与扩展性,以满足日益增长的用户需求和复杂的业务场景。
项目地址
单体应用版本
https://gitee.com/libihao520/ai-recognition-system
微服务版本
1. (前端) LeSi-Platform-Web
2. (网关/聚合层) LeSi-Platform-Api
3. (管理后台核心) LeSi-Admin-Api
4. (AI处理核心) LeSi-AI-Api
该平台拥有演示地址:http://47.107.226.106:8080/login,用户可使用账号 “lbhlbh”、密码 “123456” 登录体验。
功能模块
无论是单体应用版本还是微服务版本,功能模块基本一致,以下是部分功能截图:
登录注册:
数据大屏:
题库系统:
在线识别:
AI 大模型:
用户管理:
框架与技术栈
单体应用版本
- 基于微软.NetCore8.0、C#12.0 开发,采用主流数据库 MySQL、Redis,ORM 框架为 EFCore。
- 后端:asp.net Core Api、JWT、QRCode、YoloDotNet、Autofac、AutoMapper、EPPlus、word 模板引擎 SharpDocx、YOLOv8、ONNX。
- 前端:vue3、nodejs、vuex、axios 请求、promise、element ui、element plus、pinia 用户仓库与 token 持久化。
微服务版本
- 基于微软.NetCore8.0、.NetCore9.0 开发,采用主流数据库 MySQL、Redis,ORM 框架为 EFCore、Dapper。
- 后端:
-
- Platform-Api (网关 / 聚合层):.NET 8 MVC, EFCore, SignalR, Autofac, AutoMapper, EPPlus, SharpDocx, QRCode。
-
- AI Server (AI 处理核心):.NET 8, Dapper, RabbitMQ/Kafka, YoloDotNet, ONNX。
-
- Admin Server (管理后台核心):.NET 8, DDD, 中介者模式,CQRS, EFCore 仓储,动态密钥,gRPC。
- 前端:vue3、nodejs、vuex、axios 请求、promise、element ui、element plus、pinia 用户仓库与 token 持久化。
- 服务通讯:gRPC (内部), 消息队列 (异步解耦), SignalR (前后端实时)。
- 运维部署:Kubernetes (k8s), Docker, Jenkins CI/CD。
安装教程
模型合并:由于演示模型过大,单独上传到了百度云网盘,需要的用户可自行下载。通过网盘分享的文件:Model,链接: https://pan.baidu.com/s/1sTZ8uQLpyrl3hygkZ3VmvA?pwd=ewfk 提取码: ewfk。模型下载下来后放到路径 ai-recognition-system\\Ai-Web-API\\WebApi\\Model 下。
单体应用与微服务应用部署说明大纲
单体应用部署说明
安装git 拉取代码
# 安装gitsudo apt updatesudo apt install gitgit --version# 拉取代码cd ../homemkdir -p projectscd projectsgit clone https://gitee.com/libihao520/ai-recognition-system.git
前端部署
安装Node.js 和 npm
安装Node.js 和 npm(Node Package Manager)。这些工具通常一起安装,因为 npm 是 Node.js 的包管理器。
# node建议v16.20.2# 若使用sudo apt install nodejs npm命令安装Node.js和npm时# 通常安装的是Ubuntu官方软件仓库中提供的版本。这些版本可能是稳定的,但不一定是最新的# 如果要指定版本,通过其他方式安装#方法一 使用NodeSource的安装脚本指定安装 node v16.20.2curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -# 添加NodeSource的APT源VERSION=node_16.xDISTRO=$(lsb_release -s -c)echo \"deb https://deb.nodesource.com/$VERSION $DISTRO main\" | sudo tee /etc/apt/sources.list.d/nodesource.list# 更新APT源并安装Node.jssudo apt updatesudo apt install nodejs -y# 安装完成后查看版本node -vnpm -v# 换镜像源npm config set registry https://mirrors.huaweicloud.com/repository/npm/
安装依赖项并构建
cd ai-recognition-system/Vue3-ai-system-adminnpm installnpm run build
使用Nginx部署
安装Nginx
sudo apt updatesudo apt install nginxvim /etc/nginx/nginx.conf# 找到http包裹部分,修改为如下部分# listen : 监听的端口# server_name : 你当前服务器的 IP 或者 域名http { server { listen 8080; server_name 47.107.226.106; root /home/projects/ai-recognition-system/Vue3-ai-system-admin/dist; index index.html; location / { try_files $uri $uri/ /index.html; } } }# 退出编辑:wq!# 检查配置并重启Nginxsudo nginx -tsudo systemctl restart nginx# 服务器开端口,完成!
后端部署
添加Microsoft包管理源
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.debsudo dpkg -i packages-microsoft-prod.debsudo apt-get update
安装.Net 8.0SDK
sudo apt-get install -y dotnet-sdk-8.0# 查看版本是否安装成功dotnet --version
字体安装
cd /usr/share/fonts/truetype/msttcorefonts/sudo apt install cabextractwget https://www.freedesktop.org/software/fontconfig/webfonts/webfonts.tar.gz# 解压tar -xzf webfonts.tar.gzcd msfonts/cabextract *.exe# 移动字体cp *.ttf *.TTF ~ /usr/share/fonts/truetype/msttcorefonts/
原始构建运行
cd /home/projects/ai-recognition-system/Ai-Web-API# 构建dotnet build -c Release# 运行项目dotnet /home/projects/ai-recognition-system/Ai-Web-API/WebApi/bin/Release/net8.0/WebApi.dll --urls http://0.0.0.0:5157
使用systemd来启动服务(应用崩溃时自动重启)
sudo vim /etc/systemd/system/webapi.service
在文件中添加如下内容
[Unit]Description=Ai Web API ServiceAfter=network.target[Service]WorkingDirectory=/home/projects/ai-recognition-system/Ai-Web-API/WebApi/bin/Release/net8.0ExecStart=/usr/bin/dotnet ./WebApi.dll --urls http://0.0.0.0:5157Restart=always# 如果需要,可以取消注释并设置内存限制或运行用户# MemoryMax=500M# User=yourusernameEnvironment=ASPNETCORE_ENVIRONMENT=ProductionStandardOutput=syslogStandardError=syslogSyslogIdentifier=webapi[Install]WantedBy=multi-user.target
重新加载配置并启动服务
sudo systemctl daemon-reloadsudo systemctl start webapi.service# 设置服务开机自启(可选)sudo systemctl enable webapi.service# 检查服务状态和日志# 使用 systemctl status 命令检查服务的状态,并使用 journalctl 命令查看服务的日志输出。sudo systemctl status webapi.servicesudo journalctl -u webapi.service -f
后续更新
# 更新代码cd /home/projects/ai-recognition-systemgit pull origin master# 前端cd /home/projects/ai-recognition-system/Vue3-ai-system-adminnpm run build# 后端(systemctl )sudo systemctl stop webapi.servicecd /home/projects/ai-recognition-system/Ai-Web-APIdotnet build -c Releasesudo systemctl start webapi.service# 查看日志sudo journalctl -u webapi.service -f
数据库部署
自行安装mysql与redis
微服务应用部署说明
本地构建打包形式
1. (前端) LeSi-Platform-Web
2. (网关/聚合层) LeSi-Platform-Api
3. (管理后台核心) LeSi-Admin-Api
4. (AI处理核心) LeSi-AI-Api
每个项目依次拉取代码
每个项目的根目录下都有一个Dockerfile文件
如下图在每个项目下面分别执行dockerfile文件
命令:
docker build -t lesi-platform-web .docker build -t lesi-platform-api .docker build -t lesi-ai-api .docker build -t lesi-admin-api .
等镜像全部构建完成之后,最后执行
docker-compose -f docker-compose.local.yml up -d
所有的项目启动了,访问http://127.0.0.1:8080/login查看服务是否正常
远程仓库部署
所有的项目服务我都已经已经上传到阿里云镜像平台了,因此不需要改动代码,只需要快速搭建的话,只要拉取 (网关/聚合层) LeSi-Platform-Api 代码,在根目录下执行
docker-compose -f docker-compose.aliyun.yml up -d