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

【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…...

linux下截图工具的选择

方案一 gnome插件Screenshot Tool(截屏) ksnip(图片标注) gnome setting设置图片的默认打开方式为ksnip就可以快捷的将Screenshot Tool截屏的图片打开进行标记了。 但是最近我发现Screenshot Tool的延迟截图功能是有问题的&…...

每天记录一道Java面试题---day36

事务的基本特性和隔离级别 回答重点 事务基本特性ACID分别是: - 原子性指的是一个事务中的操作要么全部成功,要么全部失败。 - 一致性指的是数据库总是一个一致性的状态转换到另一个一致性的状态。比如A转账给B100块钱,假设A只有 90块&…...

Qt音频采集:QAudioInput详解与示例

1. 简介 QAudioInput是Qt Multimedia模块中用于音频采集的核心类,能够从麦克风等输入设备实时获取原始音频数据(PCM格式)。本文将通过原理讲解和代码示例,帮助开发者快速掌握音频采集的核心技术。 2. 核心功能 支持多种音频格式&…...

rkmpp 解码 精简mpi_dec_test.c例程

rkmpp 解码流程(除 MPP_VIDEO_CodingMJPEG 之外) 源码 输入h264码流 输出nv12文件 /** Copyright 2015 Rockchip Electronics Co. LTD** Licensed under the Apache License, Version 2.0 (the "License");* you may not use this file exce…...

怎么构造思维链数据?思维链提示工程的五大原则

我来为您翻译这篇关于思维链提示工程的文章,采用通俗易懂的中文表达: 思维链(CoT)提示工程是生成式AI(GenAI)中一种强大的方法,它能让模型通过逐步推理来解决复杂任务。通过构建引导模型思考过程的提示,思维链能提高输出的准确性…...

网络安全之-信息收集

域名收集 域名注册信息 站长之家 https://whois.chinaz.com/ whois 查询的相关网站有:中国万网域名WHOIS信息查询地址: https://whois.aliyun.com/西部数码域名WHOIS信息查询地址: https://whois.west.cn/新网域名WHOIS信息查询地址: http://whois.xinnet.com/domain/whois/in…...

JdbcTemplate基本使用

JdbcTemplate概述 它是spring框架中提供的一个对象,是对原始繁琐的JdbcAPI对象的简单封装。spring框架为我们提供了很多的操作模板类。例如:操作关系型数据的JdbcTemplate和MbernateTemplate,操作nosql数据库的RedisTemplate,操作消息队列的…...

pnpm 中 Next.js 模块无法找到问题解决

问题概述 项目在使用 pnpm 管理依赖时,出现了 “Cannot find module ‘next/link’ or its corresponding type declarations” 的错误。这是因为 pnpm 的软链接机制在某些情况下可能导致模块路径解析问题。 问题诊断 通过命令 pnpm list next 确认项目已安装 Next.js 15.2.…...

openEuler24.03 LTS下安装Spark

目录 安装模式介绍 下载Spark 安装Local模式 前提条件 解压安装包 简单使用 安装Standalone模式 前提条件 集群规划 解压安装包 配置Spark 配置Spark-env.sh 配置workers 分发到其他机器 启动集群 简单使用 关闭集群 安装YARN模式 前提条件 解压安装包 配…...

蓝桥杯真题——接龙序列

蓝桥杯2023年第十四届省赛真题-接龙数列 题目描述 对于一个长度为 K 的整数数列:A1, A2, . . . , AK,我们称之为接龙数列当且仅当 Ai 的首位数字恰好等于 Ai−1 的末位数字 (2 ≤ i ≤ K)。 例如 12, 23, 35, 56, 61, 11 是接龙数列;12, 2…...

使用 DeepSeek API 实现新闻文章地理位置检测与地图可视化

使用 DeepSeek API 实现新闻文章地理位置检测与地图可视化 | Implementing News Article Location Detection and Map Visualization with DeepSeek API 作者:zhutoutoutousan | Author: zhutoutoutousan 发布时间:2025-04-08 | Published: 2025-04-08 标…...

如何精准控制大模型的推理深度

论文标题 ThinkEdit: Interpretable Weight Editing to Mitigate Overly Short Thinking in Reasoning Models 论文地址 https://arxiv.org/pdf/2503.22048 代码地址 https://github.com/Trustworthy-ML-Lab/ThinkEdit 作者背景 加州大学圣迭戈分校 动机 链式推理能显…...

【力扣hot100题】(078)跳跃游戏Ⅱ

好难啊,我愿称之为跳崖游戏。 依旧用了两种方法,一种是我一开始想到的,一种是看答案学会的。 我自己用的方法是动态规划,维护一个数组记录到该位置的最少步长,每遍历到一个位置就嵌套循环遍历这个位置能到达的位置&a…...

Leetcode 34.在排序数组中查找元素的第一个和最后一个位置

题目描述 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。 考察二…...

LangChain入门指南:调用DeepSeek api

文章目录 1. 什么是LangChain?2. 核心组件3. 为什么选择LangChain?4. 实战案例安装简单chat案例流式交互Prompt模板 5. 简单总结 1. 什么是LangChain? 定义:LangChain是一个用于构建大语言模型(LLM)应用的…...

WES与WGS数据线粒体DNA数据分析及检测工具

1. 线粒体DNA的异质性 传统的全外显子组测序(WES)和全基因组测序(WGS)的二代测序(SGS) 数据分析流程,能够识别多种类型的基因改变。但大多数用于基因变异分析和注释的工具,在输出文…...

word表格间隔设置

1.怎么解决word表格间隔达不到我们想要的要求 其实很简单, 我们直接在word表格里面, 全选表格中里面的内容。接着,我们选择自动调整---->根据内容自动调整表格,即可达到我们想要的要求...

SpringBoot 接口限流Lua脚本接合Redis 服务熔断 自定义注解 接口保护

介绍 Spring Boot 接口限流是防止接口被频繁请求而导致服务器负载过重或服务崩溃的一种策略。通过限流,我们可以控制单位时间内允许的请求次数,确保系统的稳定性。限流可以帮助防止恶意请求、保护系统资源,并优化 API 的可用性,避…...

设计模式 --- 观察者模式

设计模式 --- 观察者模式 什么是观察者模式观察者模式典型应用 --- C#中的事件使用观察者模式实现事件处理机制 什么是观察者模式 观察者模式(Observer Pattern)是一种行为型设计模式,用于在对象之间建立一对多的依赖关系。当一个对象&#x…...

电商核心指标解析与行业趋势:数据驱动的增长策略【大模型总结】

电商核心指标解析与行业趋势:数据驱动的增长策略 在电商领域,数据是决策的核心。从流量监测到用户行为分析,从价格策略到技术赋能,每一个环节的优化都离不开对核心指标的深度理解。本文结合行业最新趋势与头部平台实践&#xff0…...

I/O进程4

day4 九、信号灯集 1.概念 信号灯(semaphore),也叫信号量。它是不同进程间或一个给定进程内部不同线程间同步的机制;System V的信号灯是一个或者多个信号灯的一个集合。其中的每一个都是单独的计数信号灯。 通过信号灯集实现共享内存的同步操作。 2.编程…...

【语法】C++的list

目录 为什么会有list? 迭代器失效: list和vector的迭代器不同的地方: list的大部分用法和vector都很像,例如push_back,构造,析构,赋值重载这些就不再废话了,本篇主要讲的是和vecto…...

【算法笔记】并查集详解

🚀 并查集(Union-Find)详解:原理、实现与优化 并查集(Union-Find)是一种非常高效的数据结构,用于处理动态连通性问题,即判断若干个元素是否属于同一个集合,并支持集合合…...

【Ai/Agent】Windows11中安装CrewAI过程中的错误解决记录

CrewAi是什么,可以看之下之前写的 《初识CrewAI多智能代理团队协框架》 (注:这篇是基于linux系统下安装实践的) 基于以下记录解决问题后,可以再回到之前的文章继续进行CrewAI的安装 遇到问题 在windows系统中安装 CrewAi 不管是使用 pip 或者…...

OSPF的数据报文格式【复习篇】

OSPF协议是跨层封装的协议(跨四层封装),直接将应用层的数据封装在网络层协议之后,IP协议包中协议号字段对应的数值为89 OSPF的头部信息: 所有的数据共有的信息字段 字段名描述版本当前OSPF进程使用的版本(…...

[leetcode]查询区间内的所有素数

一.暴力求解 #include<iostream> #include<vector> using namespace std; vector<int> result; bool isPrime(int i) { if (i < 2) return false; for (int j 2;j * j < i;j) { if (i % j 0) { …...

【力扣刷题实战】Z字形变换

大家好&#xff0c;我是小卡皮巴拉 文章目录 目录 力扣题目&#xff1a;Z字形变换 题目描述 解题思路 问题理解 算法选择 具体思路 解题要点 完整代码&#xff08;C&#xff09; 兄弟们共勉 &#xff01;&#xff01;&#xff01; 每篇前言 博客主页&#xff1a;小卡…...

【RK3588 嵌入式图形编程】-SDL2-扫雷游戏-添加地雷到网格

添加地雷到网格 文章目录 添加地雷到网格1、概述2、更新Globals.h3、在随机单元格中放置地雷4、更新单元格以接收地雷5、渲染地雷图像6、开发助手7、完整代码8、总结在本文中,我们将更新游戏以在网格中随机放置地雷,并在单元格被清除时渲染它们。 1、概述 在我们扫雷游戏教程…...

Fortran 中读取 MATLAB 生成的数据文件

在 Fortran 中读取 MATLAB 生成的数据文件&#xff0c;可以通过以下几种方法实现&#xff0c;包括使用开源工具和手动解析&#xff1a; 1. 使用开源工具&#xff1a;MATFOR MATFOR 是一个商业/开源混合工具&#xff08;部分功能免费&#xff09;&#xff0c;提供 Fortran 与 M…...