使用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版發布的。