Чат -бот, использующий генеративный ИИ, был добавлен в знаменитое весеннее Петклиновое приложение. В этой версии используется проект Langchain4J и в настоящее время поддерживает Openai или Azure Openai в качестве поставщика LLM . Это вилка от Spring-Petclinic-AI, основанный на Spring AI.
Этот образец демонстрирует, как легко интегрировать возможности AI/LLM в приложение Java с использованием LangChain4J . Это может быть достигнуто благодаря:
MessageWindowChatMemory в AssistantConfiguration и аннотации @MemoryId в ассистентном интерфейсе.@AiService в ассистентном интерфейсе.@SystemMessage в ассистентном интерфейсе.TokenStream Type и Spring Server-Sent поддерживает. Посмотрите на контроллер REST AssistantController@Tool от LangChain4J.EmbeddingModel , InMemoryEmbeddingStore и EmbeddingStoreContentRetriever Beans, в то время как класс EnvedingStoreInit занимается проглатыванием данных Vets при запуске. VetqueryRouter демонстрирует, как условное пропуск поиска с принятием решений, движимым LLM.Spring Petclinic объединяет чат -бот, который позволяет вам взаимодействовать с приложением на естественном языке. Вот несколько примеров того, что вы могли бы спросить:

Spring Petclinic в настоящее время поддерживает Openai или Azure Openai в качестве поставщика LLM. Чтобы начать spring-petlinic-langchain4j выполните следующие шаги:
langchain4j-open-ai-spring-boot-starter включена. Вы можете изменить его на langchain4j-azure-open-ai-spring-boot-starter в pom.xml или в build.gradle , в зависимости от выбранного инструмента сборки.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 - это приложение Spring Boot, созданное с использованием Maven или Gradle. Вы можете построить файл JAR и запустить его из командной строки (он должен работать так же хорошо с Java 17 или новым):
git clone https://github.com/spring-petclinic/spring-petclinic-langchain4j.git
cd spring-petclinic
./mvnw package
java -jar target/ * .jarЗатем вы можете получить доступ к Petclinic на http: // localhost: 8080/.

Или вы можете запустить его от Maven напрямую, используя плагин Spring Boot Maven. Если вы сделаете это, это сразу же приведет к изменениям в проекте (изменения в исходных файлах Java также требуют компиляции - большинство людей используют IDE для этого):
./mvnw spring-boot:runПримечание. Если вы предпочитаете использовать Gradle, вы можете построить приложение с помощью
./gradlew buildи поиск файла JAR вbuild/libs.
В этом проекте нет Dockerfile . Вы можете построить изображение контейнера (если у вас есть Docker Daemon), используя плагин Spring Boot Build:
./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 для mysql или spring.profiles.active=postgres для postgresql. Смотрите документацию Spring Boot для получения более подробной информации о том, как установить активный профиль.
Вы можете начать MySQL или PostgreSQL локально с любым устройством установщика для вашей ОС или использовать Docker:
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 вы также можете использовать предоставленный файл docker-compose.yml для запуска контейнеров базы данных. У каждого есть профиль, как и пружинный профиль:
docker-compose --profile mysql upили
docker-compose --profile postgres up При разработке мы рекомендуем использовать тестовые приложения, установленные в качестве main() методов в PetClinicIntegrationTests (с использованием базы данных H2 по умолчанию, а также добавление Spring Boot Devtools), MySqlTestApplication и PostgresIntegrationTests . Они настроены так, чтобы вы могли запустить приложения в своей IDE, чтобы получить быструю обратную связь, а также запустить те же классы, что и интеграционные тесты в соответствии с соответствующей базой данных. Интеграционные тесты MySQL используют TestContainers для запуска базы данных в контейнере Docker, а в тестах Postgres используются Docker Compose для того, чтобы сделать то же самое.
Существует petclinic.css в src/main/resources/static/resources/css . Он был сгенерирован из источника petclinic.scss , в сочетании с библиотекой Bootstrap. Если вы внесете изменения в scss или обновите начальную загрузку, вам необходимо будет пересекать ресурсы CSS, используя профиль Maven «CSS», то есть ./mvnw package -P css . Для составления 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 (щелкните правой кнопкой мыши на проекте и Run As -> Maven install ) для генерации CSS. Запустите основной метод приложения, щелкнув правой кнопкой мыши и выбрав Run As -> Java Application .
Inside Intellij Idea:
В главном меню выберите File -> Open и выберите Petclinic pom.xml. Нажмите на кнопку Open .
Файлы CSS генерируются из сборки Maven. Вы можете построить их на командной строке ./mvnw generate-resources или щелкнуть правой кнопкой мыши по проекту spring-petclinic а затем Maven -> Generates sources and Update Folders .
Для вас должна была быть создана конфигурация запуска с именем PetClinicApplication , если вы используете недавнюю конечную версию. В противном случае запустите приложение, щелкнув правой кнопкой мыши по основному классу PetClinicApplication и выбирая Run 'PetClinicApplication' .
Перейти к Петклиническому
Посетите http: // localhost: 8080 в вашем браузере.
| Конфигурация пружинной загрузки | Файлы свойств класса или Java |
|---|---|
| Главный класс | PetclinicApplication |
| Свойства файлы | Application.properties |
| Кэширование | Качеконфигурация |
Весенняя петлиническая «основная» ветвь в пружине-проектах Github Org представляет собой «каноническую» реализацию, основанную на Spring Boot и Thymeleaf. В Github Org Spring-Petclinic есть довольно много вилок. Если вы заинтересованы в использовании другого технологического стека для реализации клиники для домашних животных, присоединяйтесь к сообществу там.
Одной из лучших частей работы над весенним приложением Petclinic является то, что у нас есть возможность работать в прямом контакте со многими проектами с открытым исходным кодом. Мы нашли ошибки/предложенные улучшения по различным темам, таким как пружинные данные, проверка бобов и даже затмение! Во многих случаях они были исправлены/реализованы всего за несколько дней. Вот их список:
| Имя | Проблема |
|---|---|
| Spring JDBC: упростите использование natedParameterJdbctemplate | SPR-10256 и SPR-10257 |
| Валидация фасоли / witrnate valydator: упростите зависимости Maven и обратную совместимость | HV-790 и HV-792 |
| Данные пружины: обеспечить большую гибкость при работе с запросами JPQL | DataJPA-292 |
Проблема Tracker - это предпочтительный канал для отчетов об ошибках, запросов функций и отправки запросов на привлечение.
Для получения запросов на предпочтения редактора доступны в конфигурации редактора для удобного использования в общих текстовых редакторах. Подробнее и скачать плагины по адресу https://editorconfig.org. Если вы ранее не сделали этого, пожалуйста, заполните и отправьте соглашение о лицензии участника.
Приложение Spring Petclinic Sample выпускается в соответствии с версией 2.0 лицензии Apache.