Chatbot menggunakan AI generatif telah ditambahkan ke aplikasi Petclinic Spring yang terkenal. Versi ini menggunakan proyek Langchain4J dan saat ini mendukung OpenAi atau Azure's Openai sebagai penyedia LLM . Ini adalah garpu dari Spring-Petclinic-AI berdasarkan AI Spring.
Sampel ini menunjukkan cara mengintegrasikan kemampuan AI/LLM dengan mudah ke dalam aplikasi Java menggunakan Langchain4j . Ini bisa dicapai berkat:
MessageWindowChatMemory di AssistantConfiguration dan anotasi @MemoryId di antarmuka asisten.@AiService di antarmuka asisten.@SystemMessage di antarmuka asisten.TokenStream Return Type dan Spring Server-Sent Events mendukung. Lihatlah Pengontrol Asisten Asisten REST@Tool dari langchain4j.EmbeddingModel , InMemoryEmbeddingStore dan EmbeddingStoreContentRetriever kacang sementara kelas embeddingstoreInit menangani konsumsi data dokter hewan saat startup. VetQueryRouter menunjukkan cara melewatkan pengambilan secara kondisional, dengan pengambilan keputusan didorong oleh LLM.Spring Petclinic mengintegrasikan chatbot yang memungkinkan Anda untuk berinteraksi dengan aplikasi dalam bahasa alami. Berikut adalah beberapa contoh dari apa yang bisa Anda tanyakan:

Spring Petclinic saat ini mendukung Openai atau Azure's Openai sebagai penyedia LLM. Untuk memulai spring-petlinic-langchain4j melakukan langkah-langkah berikut:
langchain4j-open-ai-spring-boot-starter diaktifkan. Anda dapat mengubahnya menjadi langchain4j-azure-open-ai-spring-boot-starter di pom.xml atau di build.gradle , tergantung pada alat pembuatan pilihan Anda.demo , yang OpenAi berikan secara gratis untuk tujuan demonstrasi. Kunci demo ini memiliki kuota, terbatas pada model GPT-4O-Mini, dan dimaksudkan semata-mata untuk penggunaan demonstrasi. 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 adalah aplikasi Spring Boot yang dibangun menggunakan Maven atau Gradle. Anda dapat membuat file jar dan menjalankannya dari baris perintah (itu harus berfungsi dengan baik dengan Java 17 atau lebih baru):
git clone https://github.com/spring-petclinic/spring-petclinic-langchain4j.git
cd spring-petclinic
./mvnw package
java -jar target/ * .jarAnda kemudian dapat mengakses Petclinic di http: // localhost: 8080/.

Atau Anda dapat menjalankannya dari Maven secara langsung menggunakan plugin Spring Boot Maven. Jika Anda melakukan ini, itu akan mengambil perubahan yang Anda lakukan di proyek segera (perubahan pada file sumber java memerlukan kompilasi juga - kebanyakan orang menggunakan IDE untuk ini):
./mvnw spring-boot:runCatatan: Jika Anda lebih suka menggunakan Gradle, Anda dapat membangun aplikasi menggunakan
./gradlew builddan mencari file jar dibuild/libs.
Tidak ada Dockerfile dalam proyek ini. Anda dapat membangun gambar kontainer (jika Anda memiliki daemon docker) menggunakan plugin Boot Boot Spring:
./mvnw spring-boot:build-imagePelacak masalah kami tersedia di sini.
Dalam konfigurasi defaultnya, Petclinic menggunakan database dalam memori (H2) yang diisi saat startup dengan data. Konsol H2 diekspos di http://localhost:8080/h2-console , dan dimungkinkan untuk memeriksa konten database menggunakan jdbc:h2:mem:<uuid> url. UUID dicetak saat startup ke konsol.
Pengaturan serupa disediakan untuk MySQL dan PostgreSQL jika konfigurasi database yang persisten diperlukan. Perhatikan bahwa setiap kali jenis database berubah, aplikasi perlu dijalankan dengan profil yang berbeda: spring.profiles.active=mysql untuk mysql atau spring.profiles.active=postgres untuk postgresql. Lihat dokumentasi Spring Boot untuk detail lebih lanjut tentang cara mengatur profil aktif.
Anda dapat memulai MySQL atau PostgreSQL secara lokal dengan penginstal apa pun yang berfungsi untuk OS Anda atau menggunakan 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.4atau
docker run -e POSTGRES_USER=petclinic -e POSTGRES_PASSWORD=petclinic -e POSTGRES_DB=petclinic -p 5432:5432 postgres:16.3Dokumentasi lebih lanjut disediakan untuk MySQL dan PostgreSQL.
Alih-alih Vanilla docker Anda juga dapat menggunakan file docker-compose.yml yang disediakan untuk memulai wadah database. Masing -masing memiliki profil seperti profil Spring:
docker-compose --profile mysql upatau
docker-compose --profile postgres up Pada waktu pengembangan kami menyarankan Anda menggunakan aplikasi pengujian yang diatur sebagai metode main() dalam PetClinicIntegrationTests (menggunakan database H2 default dan juga menambahkan devtool boot spring), MySqlTestApplication dan PostgresIntegrationTests . Ini diatur sehingga Anda dapat menjalankan aplikasi di IDE Anda untuk mendapatkan umpan balik cepat dan juga menjalankan kelas yang sama dengan tes integrasi terhadap database masing -masing. Tes integrasi MySQL menggunakan testContainers untuk memulai database dalam wadah Docker, dan tes Postgres menggunakan Docker Compose untuk melakukan hal yang sama.
Ada petclinic.css di src/main/resources/static/resources/css . Itu dihasilkan dari sumber petclinic.scss , dikombinasikan dengan pustaka bootstrap. Jika Anda melakukan perubahan pada scss , atau meningkatkan bootstrap, Anda perlu mengkompilasi ulang sumber daya CSS menggunakan profil Maven "CSS", yaitu ./mvnw package -P css . Tidak ada profil build untuk Gradle untuk mengkompilasi CSS.
Item berikut harus diinstal di sistem Anda:
Help -> About Dialog. Jika m2e tidak ada, ikuti proses instal di siniPada baris perintah run:
git clone https://github.com/spring-petclinic/spring-petclinic-langchain4j.gitDi dalam Eclipse atau STS:
Buka proyek melalui File -> Import -> Maven -> Existing Maven project , lalu pilih direktori root dari repo yang dikloning.
Kemudian membangun di baris perintah ./mvnw generate-resources atau menggunakan peluncur Eclipse (klik kanan pada proyek dan Run As -> Maven install ) untuk menghasilkan CSS. Jalankan metode utama aplikasi dengan mengklik kanan di atasnya dan memilih Run As -> Java Application .
Di dalam IntelliJ Ide:
Di menu utama, pilih File -> Open dan pilih Petclinic Pom.xml. Klik tombol Open .
File CSS dihasilkan dari build Maven. Anda dapat membangunnya di baris perintah ./mvnw generate-resources atau klik kanan pada proyek spring-petclinic kemudian Maven -> Generates sources and Update Folders .
Konfigurasi yang dijalankan bernama PetClinicApplication seharusnya dibuat untuk Anda jika Anda menggunakan versi Ultimate baru -baru ini. Jika tidak, jalankan aplikasi dengan mengklik kanan di kelas utama PetClinicApplication dan memilih Run 'PetClinicApplication' .
Arahkan ke Petclinic
Kunjungi http: // localhost: 8080 di browser Anda.
| Konfigurasi Boot Musim Semi | File properti kelas atau java |
|---|---|
| Kelas utama | Petclinicapplication |
| File properti | application.properties |
| Caching | Konfigurasi cachec |
Cabang "utama" Petclinic Petclinic di Spring-Projects GitHub Org adalah implementasi "kanonik" berdasarkan boot musim semi dan timeleaf. Ada beberapa garpu di GitHub Org Spring-Petclinic. Jika Anda tertarik menggunakan tumpukan teknologi yang berbeda untuk mengimplementasikan klinik PET, silakan bergabung dengan komunitas di sana.
Salah satu bagian terbaik tentang bekerja pada aplikasi Petclinic Spring adalah bahwa kami memiliki kesempatan untuk bekerja secara langsung dengan banyak proyek open source. Kami menemukan bug/peningkatan yang disarankan pada berbagai topik seperti Spring, Spring Data, Validasi Kacang dan bahkan Eclipse! Dalam banyak kasus, mereka telah diperbaiki/diimplementasikan hanya dalam beberapa hari. Berikut adalah daftar mereka:
| Nama | Masalah |
|---|---|
| Spring JDBC: Sederhanakan Penggunaan bernamaParameterjdbctemplate | SPR-10256 dan SPR-10257 |
| Validasi Kacang / Validator Hibernate: Menyederhanakan dependensi Maven dan kompatibilitas mundur | HV-790 dan HV-792 |
| Data pegas: memberikan lebih banyak fleksibilitas saat bekerja dengan kueri JPQL | DataJPA-292 |
Pelacak masalah adalah saluran yang disukai untuk laporan bug, permintaan fitur dan mengirimkan permintaan tarik.
Untuk permintaan tarik, preferensi editor tersedia di konfigurasi editor agar mudah digunakan pada editor teks umum. Baca lebih lanjut dan unduh plugin di https://editorconfig.org. Jika Anda belum pernah melakukannya sebelumnya, silakan isi dan kirimkan Perjanjian Lisensi Kontributor.
Aplikasi sampel Petclinic Spring dirilis di bawah versi 2.0 dari lisensi Apache.