当前位置: 首页 > news >正文

乐思 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 拉取代码
# 安装git
sudo apt update
sudo apt install git
git --version# 拉取代码
cd ../home
mkdir -p projects
cd projects
git 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.2
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
# 添加NodeSource的APT源
VERSION=node_16.x
DISTRO=$(lsb_release -s -c)
echo "deb https://deb.nodesource.com/$VERSION $DISTRO main" | sudo tee /etc/apt/sources.list.d/nodesource.list
# 更新APT源并安装Node.js
sudo apt update
sudo apt install nodejs -y# 安装完成后查看版本
node -v
npm -v# 换镜像源
npm config set registry https://mirrors.huaweicloud.com/repository/npm/
安装依赖项并构建
cd ai-recognition-system/Vue3-ai-system-admin
npm install
npm run build
使用Nginx部署

安装Nginx

sudo apt update
sudo 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!
# 检查配置并重启Nginx
sudo nginx -t
sudo systemctl restart nginx
# 服务器开端口,完成!
后端部署

添加Microsoft包管理源

wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo 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 cabextract
wget https://www.freedesktop.org/software/fontconfig/webfonts/webfonts.tar.gz
# 解压
tar -xzf webfonts.tar.gz
cd 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 Service
After=network.target[Service]
WorkingDirectory=/home/projects/ai-recognition-system/Ai-Web-API/WebApi/bin/Release/net8.0
ExecStart=/usr/bin/dotnet ./WebApi.dll --urls http://0.0.0.0:5157
Restart=always
# 如果需要,可以取消注释并设置内存限制或运行用户
# MemoryMax=500M
# User=yourusername
Environment=ASPNETCORE_ENVIRONMENT=Production
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=webapi[Install]
WantedBy=multi-user.target
重新加载配置并启动服务
sudo systemctl daemon-reload
sudo systemctl start webapi.service
#  设置服务开机自启(可选)
sudo systemctl enable webapi.service
# 检查服务状态和日志
# 使用 systemctl status 命令检查服务的状态,并使用 journalctl 命令查看服务的日志输出。
sudo systemctl status webapi.service
sudo journalctl -u webapi.service -f
后续更新
# 更新代码
cd /home/projects/ai-recognition-system
git pull origin master# 前端
cd /home/projects/ai-recognition-system/Vue3-ai-system-admin
npm run build# 后端(systemctl )
sudo systemctl stop webapi.service
cd /home/projects/ai-recognition-system/Ai-Web-API
dotnet build -c Release
sudo 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
http://www.dtcms.com/a/314371.html

相关文章:

  • 【秋招笔试】2025.08.03-拼多多笔试真题-第二题
  • 自然语言理解领域算法模型演进图谱
  • 2025最新、UI媲美豆包、DeepSeek等AI大厂的AIGC系统 - IMYAI源码部署教程
  • 多级表头的导出
  • 人大金仓数据库常见问题(持续更新)
  • SJW-app-1
  • [Sensors]BMI270 FIFO的使用
  • 对于类似std::shared_ptr但有可能空悬的指针使用std::weak_ptr: Effective Modern C++ 条款20
  • Shell 脚本发送信号给 C 应用程序,让 C 应用程序回收线程资源后自行退出。
  • Linux服务器管理MySQL数据库的常见命
  • Spring AI 系列之三十三 - Spring AI Alibaba-Graph框架之人类反馈
  • 区块链基础之Merkle B+树
  • 【Spring】SpringBoot自动注入原理分析,@SpringBootApplication、@EnableAutoConfiguration详解
  • Java类与对象练习题
  • 运动想象 (MI) 分类学习系列 (18) : MSVTNet
  • 一(1)关于单链表中的疑问
  • Spring AI实战:SpringBoot项目结合Spring AI开发——提示词(Prompt)技术与工程实战详解
  • SAP-ABAP:ABAP Open SQL 深度解析:核心特性、性能优化与实践指南
  • 设计模式 -> 策略模式(Strategy Pattern)
  • 2025年8月4日私鱼创作平台v1.0.4公测版更新发布-完成大部分功能包含关注创作者以及发布作品及合集功能优雅草科技
  • 06 基于sklearn的机械学习-欠拟合、过拟合、正则化、逻辑回归
  • 线程互斥锁:守护临界区的关键
  • 可编辑190页PPT | 某科技集团数字化转型SAP解决方案
  • Vue 3 版本的 JWT 单点登录 (SSO) 实现
  • 国家科学技术奖答辩PPT案例_科技进步奖ppt制作_技术发明奖ppt设计美化_自然科学奖ppt模板 | WordinPPT
  • 使用mybatis生成器生成实体类mapper和查询参数文件,实现简单增删改查。使用log4j输出日志到控制台。使用配置文件注册Bean,配置视图解析器
  • 【Java】使用模板方法模式设计EasyExcel批量导入导出
  • Apache Camel 中 ProducerTemplate
  • 刷题日志(7)——二叉树高频习题(下)
  • 高精度实战:YOLOv11交叉口目标行为全透视——轨迹追踪×热力图×滞留分析(附完整代码)