面向下一代应用程序的统一数据访问层,开源、自主可控的数据处理平台,让数据接口开发更简单、更高效。
- 统一数据访问层:抽象底层数据源差异,屏蔽复杂性。
- API 设计与生成:基于模型定义快速生成标准化接口与代码模板。
- OpenAPI 支持:内置文档与调试入口,便于前后端协作。
- 可插拔模型与存储:支持多种数据库驱动与扩展组件。
- 流式对话能力:提供 Chat Completions SSE 流式输出接口,便于构建智能应用。
- 语言与运行时:Java 21
- 主框架:Quarkus 3(REST、Jackson、Hibernate Validator、Scheduler、Cache)
- 文档与调试:OpenAPI/Swagger UI
- AI 能力:LangChain4j OpenAI 兼容接口(StreamingChatModel,SSE 流式返回)
- 数据库与连接池:SQLite(演示默认)/ 可扩展,HikariCP
- 依赖与构建:Maven,Quarkus Maven Plugin
- 辅助:Lombok、GraphQL Java、Docker(容器镜像构建)、Groovy(代码模板/生成)
- 相关组件:
flexmodel-core
、flexmodel-graphql
、flexmodel-ui
、flexmodel-code-templates
项目采用DDD分层与按职责划分的包结构,便于演进与扩展:
- 接口层(Interfaces):
tech.wetech.flexmodel.interfaces
- 提供 REST API(如
rest.ChatResource
),对外暴露 HTTP 接口与协议适配。
- 提供 REST API(如
- 应用层(Application):
tech.wetech.flexmodel.application
- 编排领域用例与服务,处理事务脚本、DTO/Assembler、流程处理器等。
- 领域层(Domain):
tech.wetech.flexmodel.domain
- 核心领域模型与领域服务,聚合根、实体、值对象、仓储接口等。
- 基础设施层(Infrastructure):
tech.wetech.flexmodel.infrastructrue
- 外部资源适配与实现,如持久化、会话、消息消费、任务调度等。
- 公共与工具(shared):
tech.wetech.flexmodel.shared
- 公共工具与通用能力(JSON、字符串、路径匹配等)。
说明:REST 基础路径为 /api
;OpenAPI/Swagger UI 位于 /q/swagger-ui
;SSE 流式聊天接口在 chat
资源下提供。
-
准备环境:
- JDK 21+
- Maven 3.9+
-
克隆并启动(Windows):
mvnw.cmd quarkus:dev
首次启动会生成/下载依赖,并在开发模式下热加载。
- 访问入口:
- OpenAPI/Swagger UI:
http://localhost:8080/q/swagger-ui
- REST 基础路径:
/api
- 首页(如内置前端资源存在):
http://localhost:8080/
项目默认使用 SQLite 作为演示数据源,核心配置位于 src/main/resources/application.properties
。
- REST 前缀:
quarkus.rest.path=/api
- OpenAPI UI:
quarkus.swagger-ui.always-include=true
如需集成大模型服务,请按需配置相应供应商的 base-url
与 api-key
(建议使用环境变量或本地不提交的配置文件覆盖,不要在公共仓库中明文提交密钥)。
- 运行单元测试并打包:
mvnw.cmd clean package
- 以可执行 JAR 运行(示例):
java -jar target/flexmodel-server-dev.jar
src/main/java/tech/wetech/flexmodel
:核心代码与 REST 接口src/main/resources
:应用配置、OpenAPI、静态资源src/test/java
:测试用例
本项目采用开源许可,详见仓库根目录中的许可证文件(如有)。