使用JHipster实现 OpenAI API兼容的SpringBoot示例


使用 JHipster 和 llama.cpp(本地 LLM)实现 OpenAI API 兼容服务器的示例

项目结构
生成时需要 Node,开发时建议使用 Node。始终生成 package.json,以便通过更漂亮、提交钩子和脚本等获得更好的开发体验。

在项目根目录中,JHipster 会为 git、prettier、eslint、husky 等工具生成配置文件,这些工具都是众所周知的,你可以在网上找到相关参考资料。

/src/* 结构遵循默认的 Java 结构。

  • .yo-rc.json - Yeoman 配置文件 JHipster 配置存储在此文件中的 generator-jhipster 关键字下。您可以通过 generator-jhipster-* 查看特定蓝图的配置。
  • .yo-resolve (可选) - Yeoman 冲突解决程序 允许在发现冲突时使用特定操作,跳过与模式匹配的文件提示。每一行都应匹配 [pattern] [action],其中 pattern 为 Minimatch 模式,action 为跳过(如果忽略则为默认)或强制。以 # 开头的行被视为注释,会被忽略。
  • .jhipster/*.json - JHipster 实体配置文件
  • /src/main/docker - 应用程序和应用程序所依赖服务的 Docker 配置文件

使用 openapi-generator-cli 进行 API 优先开发
OpenAPI-Generator是为此应用程序配置的。您可以通过运行以下命令从定义文件生成 API 代码src/main/resources/swagger/api.yml:

./mvnw generate-sources

然后用类实现生成的委托类@Service。


要编辑 api.yml 定义文件,可以使用 Swagger-Editor 等工具。使用 docker 启动 swagger-editor 的本地实例,方法是运行:
docker compose -f src/main/docker/swagger-editor.yml up -d
然后就可以通过 http://localhost:7742 访问编辑器了。

参考: Doing API-First developmen

打包为 jar
要构建最终 jar 并优化 myLlmApp 应用程序以用于生产,请运行

./mvnw -Pprod clean verify

java -jar target/*.jar

./mvnw verify

使用 Sonar 分析代码质量
Sonar 用于分析代码质量。您可以通过以下方式启动本地 Sonar 服务器(可通过 http://localhost:9001 访问):

docker compose -f src/main/docker/sonar.yml up -d

您可以使用sonar-scanner o 或 maven 插件运行 Sonar 分析。

然后,运行 Sonar 分析:
./mvnw -Pprod clean verify sonar:sonar -Dsonar.login=admin -Dsonar.password=admin

如果需要重新运行 Sonar 阶段,请确保至少指定初始化阶段,因为 Sonar 属性是从 sonar-project.properties 文件加载的。
./mvnw initialize sonar:sonar -Dsonar.login=admin -Dsonar.password=admin

此外,无需将 sonar.password 和 sonar.login 作为 CLI 参数传递,这些参数可在 sonar-project.properties 中配置,如下所示:
sonar.login=admin
sonar.password=admin

更多: Code quality page.

使用 Docker 简化开发(可选)
你可以使用 Docker 来改善 JHipster 的开发体验。在 src/main/docker 文件夹中提供了许多 docker-compose 配置,用于启动所需的第三方服务。

你也可以将应用程序及其依赖的所有服务完全 docker 化。要做到这一点,首先要为你的应用程序建立一个 docker 镜像,方法如下

npm run java:docker

在 MacOS Big Sur 或更高版本上运行 Docker Desktop 时,请考虑启用实验性使用新的虚拟化框架,以获得更好的处理性能(磁盘访问性能较差)。

持续集成(可选)
要为项目配置 CI,请运行 ci-cd 子生成器(jhipster ci-cd),这样就能为多个持续集成系统生成配置文件。更多信息,请参阅设置持续集成页面:Setting up Continuous Integration