1.背景
随着文本生成图像的语言模型兴起,SolidUI想帮人们快速构建可视化工具,可视化内容包括2D,3D,3D场景,从而快速构三维数据演示场景。SolidUI 是一个创新的项目,旨在将自然语言处理(NLP)与计算机图形学相结合,实现文生图功能。通过构建自研的文生图语言模型,SolidUI 利用 RLHF (Reinforcement Learning Human Feedback) 流程实现从文本描述到图形生成的过程。
2. 架构总览
Entrance:API接口层,主要负责前端UI层的请求,该服务统一提供RESTful api向外部提供请求服务
3.模块功能
-
solidui-bom: BOM(Bill of Materials)通常用于管理项目中的依赖版本,以确保所有模块都使用相同版本的依赖。
-
solidui-common: 这个模块包含整个项目中使用的通用代码和工具。
-
solidui-dao: DAO(Data Access Object)模块包含所有与数据库交互的代码。
-
solidui-datasource-plugin: 这个模块提供一种方式来扩展数据源,以便可以从多种不同类型的数据源获取数据。
-
solidui-dist: 这个模块负责项目的构建和分发。
-
solidui-entrance: 这个模块是项目的主入口点,包含启动和初始化应用程序的代码。
-
solidui-service: 这个模块包含业务逻辑代码。
-
solidui-spi: SPI(Service Provider Interface)模块提供一种方式来扩展项目的功能。
-
solidui-web: 这个模块包含前端代码,用于显示用户界面,聊天界面。
-
soliduimodelui: 这个模块模型代理层,用于前端UI层的数据模型转换。
4.源码讲解
4.1 solidui-bom
这是一个 Maven 的项目对象模型(POM)文件,它是基于 XML 的项目配置文件,用于描述构建项目的信息,如项目依赖、构建插件、项目属性等。
此 POM 文件定义的是一个名为 solidui-bom 的项目,该项目的父项目是 solidui。
在这个 POM 文件中,主要有以下三个部分:
-
Properties: 定义了各种依赖库的版本号。这是一种常见的管理项目中所有依赖库版本的方法,可以在一个地方定义和更新所有依赖的版本。
-
Parent: 定义了这个项目的父项目。在 Maven 中,可以通过定义父项目来继承一些通用的配置,如依赖管理、插件管理等。
-
De