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

【AI开源大模型工具链ModelEngine】【01】应用框架-源码编译运行

ModelEngine提供从数据处理、知识生成,到模型微调和部署,以及RAG(Retrieval Augmented Generation)应用开发的AI训推全流程工具链。

  • GitCode开源地址:https://gitcode.com/ModelEngine
  • Gitee开源地址:https://gitee.com/openeuler/modelengine
  • 开源许可协议:MIT License

这篇文章从 ModelEngine编译环境构建开始验证,逐步介绍如何使用开源的 ModelEngine

Step1: 事前准备

  • 操作系统:MacOS
(base) liumiao@liumiaodeMacBook-Pro modelengine % sw_vers
ProductName:		macOS
ProductVersion:		15.3.2
BuildVersion:		24D81
(base) liumiao@liumiaodeMacBook-Pro modelengine % 
  • 安装brew
(base) liumiao@liumiaodeMacBook-Pro modelengine % brew --version
Homebrew 4.4.25
(base) liumiao@liumiaodeMacBook-Pro modelengine %
  • 安装jdk17
(base) liumiao@liumiaodeMacBook-Pro modelengine % brew install openjdk@17
==> Fetching dependencies for openjdk@17: glib, harfbuzz and xz
==> Fetching glib
...
==> openjdk@17
For the system Java wrappers to find this JDK, symlink it withsudo ln -sfn /usr/local/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdkopenjdk@17 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.If you need to have openjdk@17 first in your PATH, run:echo 'export PATH="/usr/local/opt/openjdk@17/bin:$PATH"' >> ~/.zshrcFor compilers to find openjdk@17 you may need to set:export CPPFLAGS="-I/usr/local/opt/openjdk@17/include"
(base) liumiao@liumiaodeMacBook-Pro modelengine %

配置zshrc文件,并确认java版本

(base) liumiao@liumiaodeMacBook-Pro modelengine % echo 'export PATH="/usr/local/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc
(base) liumiao@liumiaodeMacBook-Pro modelengine % source ~/.zshrc
(base) liumiao@liumiaodeMacBook-Pro modelengine % java --version
openjdk 17.0.14 2025-01-21
OpenJDK Runtime Environment Homebrew (build 17.0.14+0)
OpenJDK 64-Bit Server VM Homebrew (build 17.0.14+0, mixed mode, sharing)
(base) liumiao@liumiaodeMacBook-Pro modelengine % 
  • 安装maven(3.9.9)
liumiaodeMacBook-Pro:local root# pwd
/usr/local
liumiaodeMacBook-Pro:local root# curl https://dlcdn.apache.org/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.tar.gz -o maven3.9.9.tar.gz% Total    % Received % Xferd  Average Speed   Time    Time     Time  CurrentDload  Upload   Total   Spent    Left  Speed
100 8889k  100 8889k    0     0  2684k      0  0:00:03  0:00:03 --:--:-- 2684k
liumiaodeMacBook-Pro:local root# tar xvpf maven3.9.9.tar.gz 
x apache-maven-3.9.9/README.txt
...

环境变量配置与mvn命令行确认

(base) liumiao@liumiaodeMacBook-Pro local % vi ~/.zshrc
(base) liumiao@liumiaodeMacBook-Pro local % tail -n2 ~/.zshrc
export M2_HOME=/usr/local/apache-maven-3.9.9
export PATH=$M2_HOME/bin:$PATH
(base) liumiao@liumiaodeMacBook-Pro local % source ~/.zshrc
(base) liumiao@liumiaodeMacBook-Pro local % mvn --version
Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
Maven home: /usr/local/apache-maven-3.9.9
Java version: 17.0.14, vendor: Homebrew, runtime: /usr/local/Cellar/openjdk@17/17.0.14/libexec/openjdk.jdk/Contents/Home
Default locale: zh_CN_#Hans, platform encoding: UTF-8
OS name: "mac os x", version: "15.3.2", arch: "x86_64", family: "mac"
(base) liumiao@liumiaodeMacBook-Pro local % 

Step 2: 构建

  • 构建命令:mvn clean install
(base) liumiao@liumiaodeMacBook-Pro modelengine % ls
agent		app-platform	doc		fit-framework
(base) liumiao@liumiaodeMacBook-Pro modelengine % cd fit-framework 
(base) liumiao@liumiaodeMacBook-Pro fit-framework % ls
CONTRIBUTING.md			examples
CodeFormatterFromIdea.xml	framework
License.txt			git-hooks
README.md			pom.xml
docs
(base) liumiao@liumiaodeMacBook-Pro fit-framework % mvn clean install
[INFO] Scanning for projects...
Downloading from central: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-parent/3.4.2/spring-boot-starter-parent-3.4.2.pom
...
[INFO] Reactor Summary:
[INFO] 
[INFO] fitframework-parent 3.6.0-SNAPSHOT ................. SUCCESS [  0.915 s]
[INFO] fit-protocol-nestable-jar 3.6.0-SNAPSHOT ........... SUCCESS [  7.835 s]
[INFO] fit-maven-plugin 3.6.0-SNAPSHOT .................... SUCCESS [  0.009 s]
[INFO] fit-dependency-maven-plugin 3.6.0-SNAPSHOT ......... SUCCESS [ 19.448 s]
[INFO] fit-util 3.6.0-SNAPSHOT ............................ SUCCESS [ 23.764 s]
[INFO] fit-api 3.6.0-SNAPSHOT ............................. SUCCESS [  9.935 s]
[INFO] fit-conf-parent 3.6.0-SNAPSHOT ..................... SUCCESS [  0.008 s]
[INFO] fit-conf 3.6.0-SNAPSHOT ............................ SUCCESS [  3.986 s]
[INFO] fit-ioc-parent 3.6.0-SNAPSHOT ...................... SUCCESS [  0.008 s]
[INFO] fit-ioc 3.6.0-SNAPSHOT ............................. SUCCESS [  7.981 s]
[INFO] fit-aop-parent 3.6.0-SNAPSHOT ...................... SUCCESS [  0.005 s]
[INFO] fit-aop 3.6.0-SNAPSHOT ............................. SUCCESS [  5.086 s]
[INFO] fit-plugin 3.6.0-SNAPSHOT .......................... SUCCESS [  4.074 s]
[INFO] fit-reactor 3.6.0-SNAPSHOT ......................... SUCCESS [  3.674 s]
[INFO] fit-builtin-parent 3.6.0-SNAPSHOT .................. SUCCESS [  0.005 s]
[INFO] fit-maven-plugin-util 3.6.0-SNAPSHOT ............... SUCCESS [  2.000 s]
[INFO] fit-build-maven-plugin 3.6.0-SNAPSHOT .............. SUCCESS [  6.143 s]
[INFO] fit-service-parent 3.6.0-SNAPSHOT .................. SUCCESS [  0.022 s]
[INFO] fit-http-protocol-parent 3.6.0-SNAPSHOT ............ SUCCESS [  0.005 s]
[INFO] fit-http-protocol 3.6.0-SNAPSHOT ................... SUCCESS [  3.758 s]
[INFO] fit-http-classic-parent 3.6.0-SNAPSHOT ............. SUCCESS [  0.005 s]
[INFO] fit-http-classic 3.6.0-SNAPSHOT .................... SUCCESS [ 11.581 s]
[INFO] fit-message-serializer-parent 3.6.0-SNAPSHOT ....... SUCCESS [  0.006 s]
[INFO] fit-message-serializer 3.6.0-SNAPSHOT .............. SUCCESS [  2.288 s]
[INFO] fit-server-parent 3.6.0-SNAPSHOT ................... SUCCESS [  0.005 s]
[INFO] fit-server 3.6.0-SNAPSHOT .......................... SUCCESS [  1.039 s]
[INFO] fit-service-registry-and-discovery-parent 3.6.0-SNAPSHOT SUCCESS [  0.006 s]
[INFO] fit-service-registry-and-discovery 3.6.0-SNAPSHOT .. SUCCESS [  1.601 s]
[INFO] fit-client-parent 3.6.0-SNAPSHOT ................... SUCCESS [  0.005 s]
[INFO] fit-client 3.6.0-SNAPSHOT .......................... SUCCESS [  1.293 s]
[INFO] fit-broker 3.6.0-SNAPSHOT .......................... SUCCESS [ 19.414 s]
[INFO] fit-conf-yaml 3.6.0-SNAPSHOT ....................... SUCCESS [  3.997 s]
[INFO] fit-runtime 3.6.0-SNAPSHOT ......................... SUCCESS [  4.406 s]
[INFO] fit-log-parent 3.6.0-SNAPSHOT ...................... SUCCESS [  0.004 s]
[INFO] fit-log-console 3.6.0-SNAPSHOT ..................... SUCCESS [  3.590 s]
[INFO] fit-starter-parent 3.6.0-SNAPSHOT .................. SUCCESS [  0.004 s]
[INFO] fit-starter 3.6.0-SNAPSHOT ......................... SUCCESS [  0.016 s]
[INFO] fit-plugin-parent 3.6.0-SNAPSHOT ................... SUCCESS [  0.010 s]
[INFO] fit-http-handler-registry 3.6.0-SNAPSHOT ........... SUCCESS [  6.390 s]
[INFO] fit-server-http 3.6.0-SNAPSHOT ..................... SUCCESS [  2.449 s]
[INFO] fit-security-parent 3.6.0-SNAPSHOT ................. SUCCESS [  0.004 s]
[INFO] fit-security 3.6.0-SNAPSHOT ........................ SUCCESS [  4.310 s]
[INFO] fit-http-server-netty 3.6.0-SNAPSHOT ............... SUCCESS [ 13.010 s]
[INFO] fit-test-parent 3.6.0-SNAPSHOT ..................... SUCCESS [  0.004 s]
[INFO] fit-service-test-util 3.6.0-SNAPSHOT ............... SUCCESS [  1.109 s]
[INFO] fit-message-serializer-test 3.6.0-SNAPSHOT ......... SUCCESS [  1.333 s]
[INFO] fit-value-fastjson 3.6.0-SNAPSHOT .................. SUCCESS [  2.977 s]
[INFO] fit-message-serializer-json-jackson 3.6.0-SNAPSHOT . SUCCESS [  4.017 s]
[INFO] fit-starter-web 3.6.0-SNAPSHOT ..................... SUCCESS [  0.004 s]
[INFO] fit-plugins-starter-web 3.6.0-SNAPSHOT ............. SUCCESS [  0.017 s]
[INFO] fit-http-client-okhttp 3.6.0-SNAPSHOT .............. SUCCESS [  6.091 s]
[INFO] fel-parent 1.0.0-SNAPSHOT .......................... SUCCESS [  0.128 s]
[INFO] fel-core 1.0.0-SNAPSHOT ............................ SUCCESS [  7.477 s]
[INFO] fel-community-parent 1.0.0-SNAPSHOT ................ SUCCESS [  0.003 s]
[INFO] fel-model-openai-plugin 1.0.0-SNAPSHOT ............. SUCCESS [  2.352 s]
[INFO] fel-example-parent 1.0.0-SNAPSHOT .................. SUCCESS [  0.003 s]
[INFO] chat-model-example 1.0.0-SNAPSHOT .................. SUCCESS [  5.044 s]
[INFO] chat-template-example 1.0.0-SNAPSHOT ............... SUCCESS [  0.537 s]
[INFO] chat-memory-example 1.0.0-SNAPSHOT ................. SUCCESS [  0.527 s]
[INFO] output-parser-example 1.0.0-SNAPSHOT ............... SUCCESS [  0.527 s]
[INFO] fel-services-parent 1.0.0-SNAPSHOT ................. SUCCESS [  0.003 s]
[INFO] tool-service 1.0.0-SNAPSHOT ........................ SUCCESS [  7.615 s]
[INFO] waterflow-parent 1.0.0-SNAPSHOT .................... SUCCESS [  0.004 s]
[INFO] waterflow-genericable 1.0.0-SNAPSHOT ............... SUCCESS [  0.054 s]
[INFO] waterflow-core 1.0.0-SNAPSHOT ...................... SUCCESS [ 20.682 s]
[INFO] waterflow-bridge-fit-reactor 1.0.0-SNAPSHOT ........ SUCCESS [  2.571 s]
[INFO] fel-flow 1.0.0-SNAPSHOT ............................ SUCCESS [  3.559 s]
[INFO] retrieval-example 1.0.0-SNAPSHOT ................... SUCCESS [  0.618 s]
[INFO] fel-plugin-parent 1.0.0-SNAPSHOT ................... SUCCESS [  0.003 s]
[INFO] fel-tool-discoverer 1.0.0-SNAPSHOT ................. SUCCESS [  3.391 s]
[INFO] fel-tool-executor 1.0.0-SNAPSHOT ................... SUCCESS [  3.569 s]
[INFO] fel-tool-factory-repository 1.0.0-SNAPSHOT ......... SUCCESS [  0.110 s]
[INFO] fel-tool-repository-simple 1.0.0-SNAPSHOT .......... SUCCESS [  0.103 s]
[INFO] fel-maven-plugin-parent 1.0.0-SNAPSHOT ............. SUCCESS [  0.003 s]
[INFO] tool-maven-plugin 1.0.0-SNAPSHOT ................... SUCCESS [  3.266 s]
[INFO] agent-example 1.0.0-SNAPSHOT ....................... SUCCESS [  0.864 s]
[INFO] simple-web-app 1.0-SNAPSHOT ........................ SUCCESS [  0.475 s]
[INFO] weather-for-static 1.0-SNAPSHOT .................... SUCCESS [  0.026 s]
[INFO] default-weather-for-static 1.0-SNAPSHOT ............ SUCCESS [  0.042 s]
[INFO] assistant-for-static 1.0-SNAPSHOT .................. SUCCESS [  0.498 s]
[INFO] other-weather-for-static 1.0-SNAPSHOT .............. SUCCESS [  0.040 s]
[INFO] static-plugin 1.0-SNAPSHOT ......................... SUCCESS [  0.003 s]
[INFO] fit-services-starter-web 3.6.0-SNAPSHOT ............ SUCCESS [  0.012 s]
[INFO] weather-for-dynamic 1.0-SNAPSHOT ................... SUCCESS [  0.027 s]
[INFO] assistant-for-dynamic 1.0-SNAPSHOT ................. SUCCESS [  0.059 s]
[INFO] default-weather-for-dynamic 1.0-SNAPSHOT ........... SUCCESS [  0.039 s]
[INFO] other-weather-for-dynamic 1.0-SNAPSHOT ............. SUCCESS [  0.038 s]
[INFO] dynamic-plugin 1.0-SNAPSHOT ........................ SUCCESS [  0.002 s]
[INFO] weather-for-complicated 1.0-SNAPSHOT ............... SUCCESS [  0.029 s]
[INFO] fit-client-http 3.6.0-SNAPSHOT ..................... SUCCESS [  4.374 s]
[INFO] fit-heartbeat-parent 3.6.0-SNAPSHOT ................ SUCCESS [  0.005 s]
[INFO] fit-heartbeat 3.6.0-SNAPSHOT ....................... SUCCESS [  1.075 s]
[INFO] fit-heartbeat-client 3.6.0-SNAPSHOT ................ SUCCESS [  3.959 s]
[INFO] fit-service-registry 3.6.0-SNAPSHOT ................ SUCCESS [  7.452 s]
[INFO] fit-service-discovery 3.6.0-SNAPSHOT ............... SUCCESS [  4.245 s]
[INFO] fit-service-coordination-locator 3.6.0-SNAPSHOT .... SUCCESS [  1.147 s]
[INFO] assistant-for-complicated 1.0-SNAPSHOT ............. SUCCESS [  0.511 s]
[INFO] default-weather-for-complicated 1.0-SNAPSHOT ....... SUCCESS [  0.546 s]
[INFO] fit-service-coordination-simple 3.6.0-SNAPSHOT ..... SUCCESS [  3.695 s]
[INFO] registry-center-for-complicated 1.0-SNAPSHOT ....... SUCCESS [  0.499 s]
[INFO] complicated-apps 1.0-SNAPSHOT ...................... SUCCESS [  0.003 s]
[INFO] aop-log 1.0-SNAPSHOT ............................... SUCCESS [  0.003 s]
[INFO] aop-log-plugins 1.0-SNAPSHOT ....................... SUCCESS [  0.002 s]
[INFO] plugin-simple-mvc 1.0-SNAPSHOT ..................... SUCCESS [  0.067 s]
[INFO] plugin-log 1.0-SNAPSHOT ............................ SUCCESS [  0.039 s]
[INFO] fit-aop-bytebuddy 3.6.0-SNAPSHOT ................... SUCCESS [  3.705 s]
[INFO] fit-dynamic-plugin-directory 3.6.0-SNAPSHOT ........ SUCCESS [  1.171 s]
[INFO] fit-spring-boot-starter 3.6.0-SNAPSHOT ............. SUCCESS [ 13.361 s]
[INFO] weather-for-spring 1.0-SNAPSHOT .................... SUCCESS [  0.037 s]
[INFO] demo-spring-app 1.0-SNAPSHOT ....................... SUCCESS [  9.785 s]
[INFO] default-weather-for-spring 1.0-SNAPSHOT ............ SUCCESS [  0.041 s]
[INFO] spring-boot-starter 1.0-SNAPSHOT ................... SUCCESS [  0.003 s]
[INFO] fit-example-parent 1.0.0-SNAPSHOT .................. SUCCESS [  0.002 s]
[INFO] parent 1.0.0-SNAPSHOT .............................. SUCCESS [  0.005 s]
[INFO] example-parent 1.0.0-SNAPSHOT ...................... SUCCESS [  0.003 s]
[INFO] fit-aop-aspect 3.6.0-SNAPSHOT ...................... SUCCESS [  5.800 s]
[INFO] fit-actuator 3.6.0-SNAPSHOT ........................ SUCCESS [  4.348 s]
[INFO] fit-dynamic-plugin-mvn 3.6.0-SNAPSHOT .............. SUCCESS [  1.240 s]
[INFO] fit-http-openapi3-swagger 3.6.0-SNAPSHOT ........... SUCCESS [  4.620 s]
[INFO] fit-logger 3.6.0-SNAPSHOT .......................... SUCCESS [  2.353 s]
[INFO] fit-message-serializer-cbor 3.6.0-SNAPSHOT ......... SUCCESS [  3.162 s]
[INFO] fit-data-repository-service-parent 3.6.0-SNAPSHOT .. SUCCESS [  0.005 s]
[INFO] fit-data-repository-service 3.6.0-SNAPSHOT ......... SUCCESS [  1.295 s]
[INFO] fit-dependency 3.6.0-SNAPSHOT ...................... SUCCESS [  0.004 s]
[INFO] fit-extension-parent 3.6.0-SNAPSHOT ................ SUCCESS [  0.004 s]
[INFO] fit-retry 3.6.0-SNAPSHOT ........................... SUCCESS [  4.367 s]
[INFO] fit-schedule 3.6.0-SNAPSHOT ........................ SUCCESS [  1.167 s]
[INFO] fit-transaction 3.6.0-SNAPSHOT ..................... SUCCESS [  7.365 s]
[INFO] fit-test-framework 3.6.0-SNAPSHOT .................. SUCCESS [  7.947 s]
[INFO] fit-validation 3.6.0-SNAPSHOT ...................... SUCCESS [  8.582 s]
[INFO] fit-validation-hibernate 3.6.0-SNAPSHOT ............ SUCCESS [  6.101 s]
[INFO] fit-discrete-launcher 3.6.0-SNAPSHOT ............... SUCCESS [  1.489 s]
[INFO] fit-log-log4j2 3.6.0-SNAPSHOT ...................... SUCCESS [  1.383 s]
[INFO] fit-http-starter 3.6.0-SNAPSHOT .................... SUCCESS [  0.026 s]
[INFO] integration-parent 3.6.0-SNAPSHOT .................. SUCCESS [  0.005 s]
[INFO] fit-druid 3.6.0-SNAPSHOT ........................... SUCCESS [  5.808 s]
[INFO] fit-mybatis-common 3.6.0-SNAPSHOT .................. SUCCESS [  4.647 s]
[INFO] fit-mybatis 3.6.0-SNAPSHOT ......................... SUCCESS [  4.651 s]
[INFO] jacoco-aggregator 3.6.0-SNAPSHOT ................... SUCCESS [  2.750 s]
[INFO] OhScript 0.0.3.6-SNAPSHOT .......................... SUCCESS [ 27.548 s]
[INFO] waterflow-dependency 1.0.0-SNAPSHOT ................ SUCCESS [  0.005 s]
[INFO] framework-parent 1.0.0-SNAPSHOT .................... SUCCESS [  0.007 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  06:57 min
[INFO] Finished at: 2025-04-08T16:50:32+08:00
[INFO] ------------------------------------------------------------------------
(base) liumiao@liumiaodeMacBook-Pro fit-framework % 
  • 代码总量
(base) liumiao@liumiaodeMacBook-Pro fit-framework % pwd
/Users/liumiao/liumiaocn/modelengine/fit-framework
(base) liumiao@liumiaodeMacBook-Pro fit-framework % cloc .17356 text files.15877 unique files.                                          6525 files ignored.github.com/AlDanial/cloc v 2.04  T=15.20 s (1044.6 files/s, 93579.1 lines/s)
--------------------------------------------------------------------------------
Language                      files          blank        comment           code
--------------------------------------------------------------------------------
HTML                           8898          15435          24878         890079
Java                           2746          29536          79718         147654
XML                            1450             18             17          89051
JavaScript                      411           5092          10004          36985
JSX                             255           2276           6542          18723
Markdown                         96           4853             50          16701
Text                           1439              9              0           9456
Python                          140           2929           2978           9044
Maven                           142            754            294           8740
CSS                              37            470            252           3443
CSV                               2              0              0           1784
JSON                             20              1              0           1781
SVG                              72              0              0           1175
YAML                             56             32             23           1050
Properties                      107              0              4            349
Bourne Again Shell                1              9              8             57
Bourne Shell                      2              9              6             29
SQL                               1              0              0              7
DOS Batch                         1              0              0              2
DTD                               1              0              0              2
--------------------------------------------------------------------------------
SUM:                          15877          61423         124774        1236112
--------------------------------------------------------------------------------
(base) liumiao@liumiaodeMacBook-Pro fit-framework %

Step 3: 运行验证

设定可执行文件权限

(base) liumiao@liumiaodeMacBook-Pro fit-framework % cd framework/fit/java/target
(base) liumiao@liumiaodeMacBook-Pro target % ls
bin
conf
fit-discrete-launcher-3.6.0-SNAPSHOT.jar
lib
plugins
shared
third-party
(base) liumiao@liumiaodeMacBook-Pro target % chmod 755 bin/fit
(base) liumiao@liumiaodeMacBook-Pro target %

执行并确认结果输出

(base) liumiao@liumiaodeMacBook-Pro target % cd bin
(base) liumiao@liumiaodeMacBook-Pro bin % ls
fit	fit.bat
(base) liumiao@liumiaodeMacBook-Pro bin % ./fit start
Running command: java -D"sun.io.useCanonCaches=true" -D"plugin.fit.dynamic.plugin.directory=/Users/liumiao/liumiaocn/modelengine/fit-framework/framework/fit/java/target/bin" -jar fit-discrete-launcher-3.6.0-SNAPSHOT.jar
[2025-04-08 23:42:01.139] [INFO ] [main] [modelengine.fitframework.runtime.discrete.DiscreteFitRuntime] Prepare to start FIT application... [version=3.6.0-SNAPSHOT]
[2025-04-08 23:42:04.169] [INFO ] [main] [modelengine.fel.tool.support.DefaultToolFactoryRepository] Register factory[type=FIT] success.
[2025-04-08 23:42:04.171] [INFO ] [main] [modelengine.fel.tool.support.DefaultToolFactoryRepository] Register factory[type=HTTP] success.
[2025-04-08 23:42:04.702] [INFO ] [main] [modelengine.fit.http.server.handler.ReflectibleHttpHandlerRegistry] Register http handler group successfully. [group=modelengine.fit.actuator.ActuatorController]
[2025-04-08 23:42:04.944] [INFO ] [main] [modelengine.fit.http.server.handler.ReflectibleHttpHandlerRegistry] Register http handler group successfully. [group=modelengine.fit.http.openapi3.swagger.DocumentController]
[2025-04-08 23:42:05.085] [INFO ] [main] [modelengine.fit.http.server.handler.ReflectibleHttpHandlerRegistry] Register http handler group successfully. [group=modelengine.fit.service.RegistryListener]
[2025-04-08 23:42:05.095] [INFO ] [main] [modelengine.fit.http.server.handler.ReflectibleHttpHandlerRegistry] Register http handler group successfully. [group=modelengine.fit.http.server.handler.StaticResourceHttpHandler]
[2025-04-08 23:42:05.096] [INFO ] [main] [modelengine.fit.http.server.handler.ReflectibleHttpHandlerRegistry] Register http handler group successfully. [group=modelengine.fit.http.server.handler.OptionsHttpHandler]
[2025-04-08 23:42:05.144] [INFO ] [main] [modelengine.fit.http.server.handler.ReflectibleHttpHandlerRegistry] Register http handler group successfully. [group=modelengine.fit.log.LoggerController]
[2025-04-08 23:42:05.182] [INFO ] [main] [modelengine.fit.http.server.handler.ReflectibleHttpHandlerRegistry] Register http handler group successfully. [group=modelengine.fit.service.CheckController]
[2025-04-08 23:42:05.384] [INFO ] [main] [modelengine.fitframework.runtime.discrete.DiscreteFitRuntime] FIT application started. [version=3.6.0-SNAPSHOT]
[2025-04-08 23:42:05.404] [INFO ] [registry-client-thread-0] [modelengine.fit.service.RegistryClient] Register fitables successfully. All fitable services are ready.
[2025-04-08 23:42:05.723] [INFO ] [netty-http-server-thread-0] [modelengine.fit.http.server.netty.NettyHttpClassicServer] Start netty http server successfully. [httpPort=8080]

总结

依赖为java17+ (LTS的Java 17和21),maven版本3.8.8以上,14万行框架代码(含测试用例)全部跑完大概7分钟。

相关文章:

【AI开源大模型工具链ModelEngine】【01】应用框架-源码编译运行

ModelEngine提供从数据处理、知识生成,到模型微调和部署,以及RAG(Retrieval Augmented Generation)应用开发的AI训推全流程工具链。 GitCode开源地址:https://gitcode.com/ModelEngineGitee开源地址:https…...

一文掌握 google浏览器插件爬虫 的制作

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、技术栈1. 前端技术(浏览器插件开发)2. 爬虫技术3. 后端(可选)4. 整体技术栈组成二、开发步骤1. 创建 Chrome 插件基础结构(1)`manifest.json` 配置(2)前端页面(`popup.html`)(3)前端逻辑(`popup.js`)…...

【leetcode 100】贪心Java版本

划分字母区间 题目 我的思路&#xff1a;第一次没有一点思路&#xff0c;第二次看了官网思路后&#xff0c;写的以下答案&#xff0c;没有搞明白循环遍历&#xff0c; //是不对的以下&#xff1a; class Solution {public List<Integer> partitionLabels(String s) {Li…...

Linux用Wireshark进行Thread网络抓包关键步骤

用Nordic nRF52840 Dongle作为RCP配合Wireshark进行Thread网络抓包是debug Thread网络的有效工具之一&#xff0c;主要流程在这里&#xff0c;不再赘述&#xff1a;官方流程 但是按官方流程会卡在一个地方&#xff0c;第一次费劲解决后&#xff0c;今天在另一台机器重新配的时…...

项目管理中客户拒绝签字验收?如何处理和预防

客户拒绝签字验收&#xff1f;如何处理和预防&#xff1f;核心在于&#xff1a;正面沟通、证据留存、灵活应对、合同条款明确、阶段验收机制。其中正面沟通格外关键&#xff0c;如果在发现客户迟迟不愿签字时能够主动沟通&#xff0c;了解其顾虑或不满并迅速针对性解决&#xf…...

docker 修改镜像源教程

当在拉取镜像时报以下错误时&#xff0c;可以通过更换镜像源解决 rootlocalhost:/etc/docker# docker pull mysql Using default tag: latest Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for …...

【JAVA】十、基础知识“类和对象”干货分享~(三)

目录 1. 封装 1.1 封装的概念 1.2 访问限定符 public&#xff08;公开访问&#xff09; private&#xff08;私有访问&#xff09; 1.3 包 1.3.1 包的概念 1.3.2 导入包中的类 1.3.3 自定义包 2. static成员 2.1 static变量&#xff08;类变量&#xff09; 2.1.1 sta…...

Open GL ES -> SurfaceView + 自定义EGL实现OpenGL渲染框架

SurfaceView 自定义EGL实现OpenGL渲染 在Android开发中&#xff0c;当需要灵活控制OpenGL渲染或在多个Surface间共享EGL上下文时&#xff0c;自定义EGL环境是必要的选择 核心实现流程 -------------------- -------------------- -------------------- | 1. 创建Su…...

Solidity入门实战—web3

项目介绍 在这个项目中&#xff0c;我们建立一个小型智能合约应用&#xff0c;他允许用户向合约地址捐赠&#xff0c;允许合约所有者从合约中提取余额&#xff1b;并且还设定了捐赠的金额门槛&#xff1b;针对直接对地址进行的捐赠行为&#xff0c;我们也予以记录 源代码 ht…...

Open Scene Graph动画系统

OSG 提供了强大的动画功能&#xff0c;支持多种动画实现方式&#xff0c;从简单的变换动画到复杂的骨骼动画。以下是 OSG 动画系统的全面介绍&#xff1a; 1. 基本动画类型 1.1 变换动画 (Transform Animation) // 创建动画路径 osg::AnimationPath* createAnimationPath(co…...

无需libpacp库,BPF指令高效捕获指定数据包

【环境】无libpacp库的Linux服务器 【要求】高效率读取数据包&#xff0c;并过滤指定端口和ip 目前遇到两个问题 一是手写BPF&#xff0c;难以兼容&#xff0c;有些无法正常过滤二是性能消耗问题&#xff0c;尽可能控制到1% 大方向&#xff1a;过滤数据包要在内核层处理&…...

重回全面发展亲自操刀

项目场景&#xff1a; 今年工作变动&#xff0c;优化后在一家做国有项目的私人公司安顿下来了。公司环境不如以前&#xff0c;但是好在瑞欣依然可以每天方便的买到。人文氛围挺好&#xff0c;就是工时感觉有点紧&#xff0c;可能长期从事产品迭代开发&#xff0c;一下子转变做项…...

DimensionX

旨在通过可控的视频扩散模型从单张图像生成高质量的3D和4D场景。 1. 背景与问题 3D和4D生成的目标 3D生成&#xff1a;从单张或多张2D图像中重建出三维场景或物体&#xff0c;包含空间信息&#xff08;长、宽、高&#xff09;。4D生成&#xff1a;在3D的基础上加入时间维度&a…...

2025年04月08日Github流行趋势

项目名称&#xff1a;markitdown 项目地址url&#xff1a;https://github.com/microsoft/markitdown项目语言&#xff1a;Python历史star数&#xff1a;44895今日star数&#xff1a;1039项目维护者&#xff1a;afourney, gagb, sugatoray, PetrAPConsulting, l-lumin项目简介&a…...

数据结构与算法-数学-容斥原理,高斯消元解线性方程组

容斥原理 容斥原理用于计算多个集合的并集元素个数&#xff0c;公式为 ∣A1∪A2∪⋯∪An∣∑i1n∣Ai∣−∑1≤i<j≤n∣Ai∩Aj∣∑1≤i<j<k≤n∣Ai∩Aj∩Ak∣−⋯(−1)n−1∣A1∩A2∩⋯∩An∣ 举一个例题&#xff1a; 给定一个整数 nn 和 mm 个不同的质数 p1,p2,…,p…...

告别运动控制不同步:某车企用异构PLC实现99.98%焊接合格率

在长三角某新能源汽车电池工厂&#xff0c;工程师们正面临棘手的生产难题&#xff1a;随着产线速度提升到每分钟12个电芯&#xff0c;原有PLC系统开始频繁出现运动控制不同步现象。这直接导致极片焊接合格率从99.2%骤降至94.7%&#xff0c;每条产线日均损失超23万元。这个场景折…...

BetaFlight参数配置解读

BetaFlight参数配置解读 &#x1f4cc;相关篇《Betaflight固件编译和烧录说明》&#x1f955;各型号已编译好的配置文件资源&#xff08;.config&#xff09;&#xff1a;https://github.com/betaflight/unified-targets/tree/master/configs/default&#x1f33f;各型号配置头…...

PowerBI累计分析

累计分析 累计分析主要有三种&#xff1a;年初至今&#xff08;YTD&#xff09;、季初至今&#xff08;QTD&#xff09;、月初至今&#xff08;MTD&#xff09;。DAX中计算累计的函数有两类&#xff1a;一类是datesytd、datesqtd、datesmtd&#xff0c;该类返回一个单列日期表…...

最新 OpenHarmony 系统一二级目录整理

我们在学习 OpenHarmony 的时候&#xff0c;如果对系统的目录结构了解&#xff0c;那么无疑会提升自己对 OpenHarmony 更深层次的认识。 于是就有了今天的整理。 首先在此之前&#xff0c;我们要获取源码 获取源码的方式 OpenHarmony 主干代码获取 方式一&#xff08;推荐&am…...

多模态大语言模型arxiv论文略读(七)

MLLM-DataEngine: An Iterative Refinement Approach for MLLM ➡️ 论文标题&#xff1a;MLLM-DataEngine: An Iterative Refinement Approach for MLLM ➡️ 论文作者&#xff1a;Zhiyuan Zhao, Linke Ouyang, Bin Wang, Siyuan Huang, Pan Zhang, Xiaoyi Dong, Jiaqi Wang,…...

STM32单片机入门学习——第27节: [9-3] USART串口发送串口发送+接收

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难&#xff0c;但我还是想去做&#xff01; 本文写于&#xff1a;2025.04.08 STM32开发板学习——第27节: [9-3] USART串口发送&串口发送接收 前言开发板说…...

【元表 vs 元方法】

元表 vs 元方法 —— 就像“魔法书”和“咒语”的关系 1. 元表&#xff08;Metatable&#xff09;&#xff1a;魔法书 是什么&#xff1f; 元表是一本**“规则说明书”**&#xff0c;它本身是一个普通的 Lua 表&#xff0c;但可以绑定到其他表上&#xff0c;用来定义这个表应该…...

小型园区网实验

划分VLAN SW3 [sw3]vlan batch 2 3 20 30 [sw3]interface GigabitEthernet 0/0/1 [sw3-GigabitEthernet0/0/1]port link-type access [sw3-GigabitEthernet0/0/1]port default vlan 2 [sw3-GigabitEthernet0/0/1]int g0/0/2 [sw3-GigabitEthernet0/0/2]port link-type acces…...

python 数组append数组

在Python中&#xff0c;可以通过多种方式将一个数组&#xff08;列表&#xff09;添加到另一个数组&#xff08;列表&#xff09;中。以下是几种常见的方法&#xff1a; 1. 使用 append() 方法 append() 方法将一个数组作为整体添加到另一个数组的末尾。 list1 [1, 2, 3] l…...

从0到1:STM32 RTC定时器配置全流程

1. 什么是RTC&#xff1f; RTC&#xff08;Real-Time Clock&#xff09; 是嵌入式系统中用于提供独立计时功能的硬件模块&#xff0c;具有以下特点&#xff1a; 独立于主系统时钟&#xff08;即使MCU进入低功耗模式仍可运行&#xff09;提供日历功能&#xff08;年/月/日/时/…...

(学习总结33)Linux Ext2 文件系统与软硬链接

Linux Ext2 文件系统与软硬链接 理解硬件磁盘、服务器、机柜、机房磁盘物理结构磁盘的逻辑结构实际过程 CHS 与 LBA 地址转换 引入文件系统引入 " 块 " 概念引入 " 分区 " 概念引入 " inode " 概念 ext2 文件系统宏观认识Block Group 块组与其内…...

LeetCode算法题(Go语言实现)_36

题目 给定一个二叉树的根节点 root &#xff0c;和一个整数 targetSum &#xff0c;求该二叉树里节点值之和等于 targetSum 的 路径 的数目。 路径 不需要从根节点开始&#xff0c;也不需要在叶子节点结束&#xff0c;但是路径方向必须是向下的&#xff08;只能从父节点到子节点…...

牛客华为机试--HJ48 从单向链表中删除指定值的节点C++

题目描述 示例1 示例2 该题的核心是每来一组数据&#xff0c;都要从头开始找&#xff0c;找到数据后再插入。而不是直接在尾部插入数据。 上代码 #include <iostream> using namespace std;struct ListNode {int val;ListNode *next;ListNode(int x) : val(x), next(nu…...

Jmeter 插件【性能测试监控搭建】

1. 安装Plugins Manager 1.1 下载路径&#xff1a; Install :: JMeter-Plugins.org 1.2 放在lib/ext目录下 1.3 重启Jmeter&#xff0c;会在菜单-选项下多一个 Plugins Manager菜单&#xff0c;打开即可对插件进行安装、升级。 2. 客户端(Jmeter端) 2.1 安装plugins manager…...

从攻防演练到AI防护:网络安全服务厂商F5的全方位安全策略

随着AI和云原生技术的蓬勃兴起&#xff0c;多云架构的广泛采用&#xff0c;企业内部IT系统正经历着翻天覆地的变化。在这个转型期&#xff0c;传统的攻击手段和防守策略正面临着巨大的挑战。基于此&#xff0c;用户需要跳出传统的思维模式&#xff0c;采取新的视角&#xff0c;…...

【Introduction to Reinforcement Learning】翻译解读5

4 核心算法 我们将算法分为三类&#xff1a;基于价值的方法、基于策略的方法和混合算法。 4.1 基于价值的方法Value-based 一个重要的突破是Q-learning的引入&#xff0c;它是一种无模型算法&#xff0c;被视为off-policy时间差分&#xff08;TD&#xff09;学习。TD学习无疑…...

Jmeter中的bzm-concurrency thread group 与普通线程组的区别

在 JMeter 中,bzm - Concurrency Thread Group(由 BlazeMeter 提供)和标准的 Thread Group 是两种不同的线程组实现,主要区别在于 并发控制模型 和 负载调节方式。以下是详细对比: 1. 核心区别 特性bzm - Concurrency Thread Group标准 Thread Group负载模型基于并发数(C…...

VBA将Word文档内容逐行写入Excel

如果你需要将Word文档的内容导入Excel工作表来进行数据加工&#xff0c;使用下面的代码可以实现&#xff1a; Sub ImportWordToExcel()Dim wordApp As Word.ApplicationDim wordDoc As Word.DocumentDim excelSheet As WorksheetDim filePath As VariantDim i As LongDim para…...

ubuntu22部署 3d-tiles-tools

安装fnm curl -fsSL https://fnm.vercel.app/install | bash安装nodejs 20.17.0LTS版本 https://nodejs.org/zh-cn/download/package-manager安装依赖包 # Download and install nvm: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash# in…...

WebStrom关闭模板字符串自动转换

WebStrom关闭模板字符串自动转换 Editor > General > smart Keys > JavaScript > Automatically replace string literal with template string on typing "${"...

【零基础入门unity游戏开发——动画篇】新动画Animator的使用 —— AnimatorController和Animator的使用

考虑到每个人基础可能不一样&#xff0c;且并不是所有人都有同时做2D、3D开发的需求&#xff0c;所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】&#xff1a;主要讲解C#的基础语法&#xff0c;包括变量、数据类型、运算符、…...

npx vite 可以成功运行,但 npm run dev 仍然报错 Missing script: “dev“

npx vite 可以成功运行,但 npm run dev 仍然报错 Missing script: "dev",说明问题可能出在 npm 的脚本解析 或 项目配置 上。以下是具体解决方案: 1. 检查 package.json 的物理位置 可能原因: 你当前运行的目录下可能有一个 无效的 package.json,而真正的 packa…...

Java 泛型的逆变与协变:深入理解类型安全与灵活性

泛型是 Java 中强大的特性之一&#xff0c;它提供了类型安全的集合操作。然而&#xff0c;泛型的类型关系&#xff08;如逆变与协变&#xff09;常常让人感到困惑。 本文将深入探讨 Java 泛型中的逆变与协变&#xff0c;帮助你更好地理解其原理和应用场景。 一、什么是协变与…...

C语言核心知识点整理:结构体对齐、预处理、文件操作与Makefile

目录 结构体的字节对齐预处理指令详解文件操作基础Makefile自动化构建总结 1. 结构体的字节对齐 字节对齐原理 内存对齐&#xff1a;CPU访问内存时&#xff0c;对齐的地址能提高效率。操作系统要求变量按类型大小对齐。对齐规则&#xff1a; 每个成员的起始地址必须是min(成…...

深度学习|注意力机制

一、注意力提示 随意&#xff1a;跟随主观意识&#xff0c;也就是指有意识。 注意力机制&#xff1a;考虑“随意线索”&#xff0c;有一个注意力池化层&#xff0c;将会最终选择考虑到“随意线索”的那个值 二、注意力汇聚 这一部分也就是讲第一大点中“注意力汇聚”那个池化…...

特权FPGA之乘法器

完整代码如下&#xff1a; timescale 1ns / 1ps// Company: // Engineer: // // Create Date: 23:08:36 04/21/08 // Design Name: // Module Name: mux_16bit // Project Name: // Target Device: // Tool versions: // Description: // // Dependencies: …...

安全的企业局域网聊天工具哪个好用?

在当今数字化时代&#xff0c;企业对于局域网聊天工具的需求日益增长&#xff0c;尤其是在对数据安全和定制化服务有较高要求的大中型政企单位中。安全的企业局域网聊天工具哪个好用&#xff1f;虽然市面上有很多即时通讯软件&#xff0c;今天来介绍一下已经拥有十年行业经验的…...

如何应对客户频繁变更需求

如何应对客户频繁变更需求&#xff1f;要点包括&#xff1a; 快速响应、深入沟通、灵活规划、过程记录、风险管控。这些策略既能降低项目失控风险&#xff0c;也能帮助团队在变动环境中保持高效率。其中深入沟通尤为关键&#xff0c;它不仅能够让团队第一时间了解客户意图&…...

R语言进行聚类分析

目录 简述6种系统聚类法 实验实例和数据资料&#xff1a; 上机实验步骤&#xff1a; 进行最短距离聚类&#xff1a; 进行最长距离聚类&#xff1a; 进行中间距离聚类&#xff1a; 进行类平均法聚类&#xff1a; 进行重心法聚类&#xff1a; 进行ward.D聚类&#xff1a;…...

1.6-抓包技术(Burp Suite\Yakit抓包\Web、APP、小程序)

1.6-抓包技术&#xff08;Burp Suite\Yakit抓包\Web、APP、小程序&#xff09; 如果要使用抓包软件&#xff0c;基本上第一步都是要安装证书的。原因如下&#xff1a; 客户端&#xff08;浏览器或应用&#xff09;会检测到证书不受信任&#xff0c;并弹出 证书错误&#xff0…...

DAPP实战篇:使用web3.js连接合约

说明 本系列内容目录:专栏:区块链入门到放弃查看目录 如果你还没有创建好项目请先查看:《DApp实战篇:先用前端起个项目》,如果你还不知道web3.js是什么请先查看:《DApp实战篇:前端技术栈一览》。 安装 点此查看web3.js官方文档 打开项目根目录,并唤起终端: 键入w…...

用 Python 构建一个简单的本地视频流媒体服务器

你是否曾经想过在本地网络上轻松地将电脑上的视频分享给手机或平板电脑观看&#xff1f;也许你下载了一部电影&#xff0c;想在客厅的智能电视上播放&#xff0c;却不想费力地拷贝文件。今天&#xff0c;我们将深入分析一个 Python 脚本&#xff0c;它使用 wxPython 创建图形用…...

汇丰xxx

1. Spring Boot 的了解&#xff0c;解决什么问题&#xff1f; 我的理解&#xff1a; Spring Boot 是一个基于 Spring 框架的快速开发脚手架&#xff0c;它简化了 Spring 应用的初始搭建和开发过程。解决的问题&#xff1a; 简化配置&#xff1a; 传统的 Spring 应用需要大量的…...

ruby基础语法

以下是 Ruby 基础语法的简明总结&#xff0c;适合快速入门&#xff1a; 一、变量与常量 局部变量 小写字母或下划线开头&#xff0c;作用域为当前代码块。 name "Alice" _age 20实例变量 以 开头&#xff0c;属于对象实例。 name "Bob"类变量 以 开头…...

智体OS-V3.1版:新增了rt-datalink底层数据链通讯,实现【无网络】本机使用

##智体OS-V3.1版本发布 更新简介 dtns.os智体OS-V3.1版&#xff1a;新增了rt-datalink底层数据链通讯&#xff08;使用本地局域网的websocket端口通讯&#xff09;&#xff0c;解决了本机【无网络】正常使用的问题。 更新内容 dtns.connector支持使用新的rt-datalink与智体…...