使用Generative AI的聊天机器人已添加到著名的Spring Petclinic应用程序中。此版本使用Langchain4J项目,目前支持OpenAI或Azure的Openai作为LLM提供商。这是基于春季AI的春季酸酸-AI的叉子。
该样本演示了如何使用langchain4j轻松地将AI/LLM功能集成到Java应用程序中。这可以多亏:
MessageWindowChatMemory类的使用,在助手接口中使用@MemoryId注释。@AiService注释的使用。@SystemMessage注释用法。TokenStream返回类型和Spring Server-Sent事件时,流响应逐字表示支持。看一下助手控制器REST控制器@Tool注释声明功能。EmbeddingModel , InMemoryEmbeddingStore和EmbeddingStoreContentRetriever bean,而嵌入式店主类也在启动时处理VETS数据摄入。 VetqueryRouter演示了如何通过LLM驱动的决策来有条件跳过检索。Spring Petclinic集成了一个聊天机器人,该聊天机器人使您可以以自然语言与应用程序进行交互。以下是您可以问的一些示例:

Spring Petclinic目前支持OpenAI或Azure的Openai作为LLM提供商。为了启动spring-petlinic-langchain4j执行以下步骤:
langchain4j-open-ai-spring-boot-starter依赖性。您可以根据您选择的构建工具,将其更改为pom.xml或build.gradle中的langchain4j-azure-open-ai-spring-boot-starter 。demo键,OpenAI为演示目的免费提供该键。该demo密钥具有配额,仅限于GPT-4O-MINI模型,仅用于演示使用。 export OPENAI_API_KEY= " your_api_key_here " export AZURE_OPENAI_ENDPOINT= " https://your_resource.openai.azure.com "
export AZURE_OPENAI_KEY= " your_api_key_here "Spring Petclinic是使用Maven或Gradle构建的Spring Boot应用程序。您可以构建一个JAR文件并从命令行运行(它应该与Java 17或更新的情况下使用):
git clone https://github.com/spring-petclinic/spring-petclinic-langchain4j.git
cd spring-petclinic
./mvnw package
java -jar target/ * .jar然后,您可以在http:// localhost:8080/。

或者,您可以使用Spring Boot Maven插件直接从Maven运行它。如果执行此操作,它将立即在项目中进行的更改(更改Java源文件也需要编译 - 大多数人为此使用IDE):
./mvnw spring-boot:run注意:如果您喜欢使用Gradle,则可以使用
./gradlew build构建应用程序,并在build/libs中查找JAR文件。
这个项目中没有Dockerfile 。您可以使用Spring Boot Build插件构建容器映像(如果您有Docker守护程序):
./mvnw spring-boot:build-image我们的问题跟踪器可在此处提供。
Petclinic在默认配置中使用了内存数据库(H2),该数据库在启动时填充了数据。 H2控制台以http://localhost:8080/h2-console暴露,可以使用jdbc:h2:mem:<uuid> url检查数据库的内容。 UUID在启动时打印到控制台。
如果需要持续的数据库配置,则为MySQL和PostgreSQL提供类似的设置。请注意,每当数据库类型更改时,应用都需要使用不同的配置文件运行: spring.profiles.active=mysql for mysql或spring.profiles.active=postgres for PostgreSQL。有关如何设置活动配置文件的更多详细信息,请参见Spring Boot文档。
您可以使用适用于操作系统的任何安装程序或使用Docker的任何安装程序在本地启动MySQL或PostgreSQL:
docker run -e MYSQL_USER=petclinic -e MYSQL_PASSWORD=petclinic -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=petclinic -p 3306:3306 mysql:8.4或者
docker run -e POSTGRES_USER=petclinic -e POSTGRES_PASSWORD=petclinic -e POSTGRES_DB=petclinic -p 5432:5432 postgres:16.3为MySQL和PostgreSQL提供了进一步的文档。
您还可以使用提供的docker-compose.yml docker来启动数据库容器。每个人都有一个像春季配置文件的配置文件:
docker-compose --profile mysql up或者
docker-compose --profile postgres up在开发时,我们建议您将设置的测试应用程序作为PetClinicIntegrationTests中的main()方法(使用默认的H2数据库,还添加Spring Boot DevTools), MySqlTestApplication和PostgresIntegrationTests 。设置这些设置,以便您可以在IDE中运行应用程序以获取快速反馈,并且还可以与针对相应数据库的集成测试相同的类。 MySQL集成测试使用TestContainers在Docker容器中启动数据库,Postgres测试使用Docker撰写同一件事。
src/main/resources/static/resources/css中有一个petclinic.css 。它是由petclinic.scss源生成的,结合了引导库。如果您更改scss或升级Bootstrap,则需要使用Maven配置文件“ CSS”(即./mvnw package -P css重新编译CSS资源。 Gradle没有构建轮廓来编译CSS。
以下项目应安装在系统中:
Help -> About对话框。如果不存在M2E,请在此处遵循安装过程在命令行运行:
git clone https://github.com/spring-petclinic/spring-petclinic-langchain4j.git在日食或sts中:
通过File -> Import -> Maven -> Existing Maven project打开项目,然后选择克隆回购的根目录。
然后在命令行中构建./mvnw generate-resources ,或使用Eclipse Launcher(右键单击项目,并Run As -> Maven install )来生成CSS。通过右键单击它并选择Run As -> Java Application来运行应用程序的主要方法。
内部Intellij Idea:
在主菜单中,选择File -> Open ,然后选择petclinic pom.xml。单击Open按钮。
CSS文件是由Maven构建生成的。您可以在命令行中构建它们./mvnw generate-resources或右键单击spring-petclinic项目,然后Maven -> Generates sources and Update Folders 。
如果您使用的是最近的终极版本,则应为您创建一个名为PetClinicApplication的运行配置。否则,通过右键单击PetClinicApplication Main类并选择Run 'PetClinicApplication'来运行应用程序。
导航到丁香糖
访问http:// localhost:8080在您的浏览器中。
| 春季启动配置 | 类或Java属性文件 |
|---|---|
| 主要班级 | Petclinicapplication |
| 属性文件 | application.properties |
| 缓存 | cacheconfiguration |
Spring-Projects Github组织中的春季petclinic“主”分支是基于弹簧靴和胸腺的“规范”实现。 github org spring-petclinic中有很多叉子。如果您有兴趣使用其他技术堆栈实施宠物诊所,请加入那里的社区。
在春季petclinic应用程序上工作的最佳部分之一是,我们有机会直接与许多开源项目联系。我们发现了有关春季,春季数据,豆类验证甚至Eclipse等各种主题的错误/建议的改进!在许多情况下,它们在短短几天内就已固定/实施。这是其中的清单:
| 姓名 | 问题 |
|---|---|
| Spring JDBC:简化命名Parameterjdbctemplate的用法 | SPR-10256和SPR-10257 |
| Bean验证 /休眠验证器:简化Maven依赖性和向后兼容性 | HV-790和HV-792 |
| 春季数据:使用JPQL查询时提供更大的灵活性 | DataJPA-292 |
问题跟踪器是错误报告,功能请求和提交拉请请求的首选渠道。
对于拉动请求,编辑器首选项可在编辑器配置中可用,以便在常见的文本编辑器中轻松使用。在https://editorconfig.org上阅读更多并下载插件。如果您以前没有这样做,请填写并提交贡献者许可协议。
Spring Petclinic样本应用程序是根据Apache许可证的2.0版发布的。