تمت إضافة chatbot باستخدام الذكاء الاصطناعي التوليدي إلى تطبيق الربيع الشهير petclinic. يستخدم هذا الإصدار مشروع LangChain4J ويدعم حاليًا Openai أو Azure's Openai كمزود LLM . هذا هو شوكة من Spring-Petclinic-AI على أساس الربيع الذكاء الاصطناعي.
توضح هذه العينة كيفية دمج قدرات AI/LLM بسهولة في تطبيق Java باستخدام Langchain4J . يمكن تحقيق ذلك بفضل:
MessageWindowChatMemory في AssistantConfiguration وشرح @MemoryId في الواجهة المساعدة.@AiService في الواجهة المساعدة.@SystemMessage في الواجهة المساعدة.TokenStream ودعم أحداث SPRING Server-Sent . ألق نظرة على وحدة تحكم REST AssistantController@Tool من Langchain4J.EmbeddingModel ، InMemoryEmbeddingStore و EmbeddingStoreContentRetriever Beans ، بينما يتولى فئة inmbeddingstoreinit تناول بيانات البيانات عند بدء التشغيل. يوضح VetqueryRouter كيفية تخطي استرجاع مشروط ، مع اتخاذ القرارات مدفوعة بواسطة LLM.يدمج Spring petclinic chatbot يسمح لك بالتفاعل مع التطبيق بلغة طبيعية. فيما يلي بعض الأمثلة على ما يمكن أن تسأل:

يدعم Spring Petclinic حاليًا Openai أو Azure's 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 هو تطبيق Boot Spring تم تصميمه باستخدام Maven أو Gradle. يمكنك إنشاء ملف جرة وتشغيله من سطر الأوامر (يجب أن يعمل أيضًا مع 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 مباشرة باستخدام البرنامج المساعد Maven Spring Boot Maven. إذا قمت بذلك ، فسيتم اختيار التغييرات التي تقوم بها في المشروع على الفور (تتطلب التغييرات على ملفات مصدر Java تجميعًا أيضًا - معظم الأشخاص يستخدمون IDE لهذا الغرض):
./mvnw spring-boot:runملاحظة:
build/libsكنت تفضل استخدام Gradle ، فيمكنك إنشاء التطبيق باستخدام./gradlew build
لا يوجد Dockerfile في هذا المشروع. يمكنك إنشاء صورة حاوية (إذا كان لديك Docker Daemon) باستخدام البرنامج المساعد Boot Boot:
./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 for postgresql. راجع وثائق Boot Spring لمزيد من التفاصيل حول كيفية تعيين ملف التعريف النشط.
يمكنك بدء تشغيل 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.
بدلاً من Vanilla docker يمكنك أيضًا استخدام ملف docker-compose.yml المتوفر لبدء حاويات قاعدة البيانات. كل واحد لديه ملف تعريف مثل ملف تعريف الربيع:
docker-compose --profile mysql upأو
docker-compose --profile postgres up في وقت التطوير ، نوصيك باستخدام تطبيقات الاختبار التي تم إعدادها كطرق main() في PetClinicIntegrationTests (باستخدام قاعدة بيانات H2 الافتراضية وأيضًا إضافة devtools Spring Boot) ، و MySqlTestApplication و PostgresIntegrationTests . يتم إعدادها حتى تتمكن من تشغيل التطبيقات في IDE للحصول على ردود فعل سريعة وأيضًا تشغيل نفس الفئات مثل اختبارات التكامل مقابل قاعدة البيانات المعنية. تستخدم اختبارات تكامل MySQL TestContainers لبدء قاعدة البيانات في حاوية Docker ، وتستخدم اختبارات Postgres Docker لفعل الشيء نفسه.
هناك petclinic.css في src/main/resources/static/resources/css . تم إنشاؤه من مصدر petclinic.scss ، جنبا إلى جنب مع مكتبة bootstrap. إذا قمت بإجراء تغييرات على scss ، أو ترقية Bootstrap ، فستحتاج إلى إعادة تجميع موارد CSS باستخدام ./mvnw package -P css تعريف Maven "CSS" ، أي. لا يوجد ملف تعريف بناء لتجميع Gradle لتجميع CSS.
يجب تثبيت العناصر التالية في نظامك:
Help -> About الحوار. إذا لم يكن M2E موجودًا ، فاتبع عملية التثبيت هنافي تشغيل سطر الأوامر:
git clone https://github.com/spring-petclinic/spring-petclinic-langchain4j.gitداخل الكسوف أو STS:
افتح المشروع عبر File -> Import -> Maven -> Existing Maven project ، ثم حدد الدليل الجذري لإعادة الاستنساخ.
Run As -> Maven install إما بناء على سطر الأوامر ./mvnw generate-resources قم بتشغيل الطريقة الرئيسية للتطبيق من خلال النقر بزر الماوس الأيمن على ذلك واختيار Run As -> Java Application .
فكرة Intellij:
في القائمة الرئيسية ، اختر File -> Open وحدد pom.xml petclinic. انقر على الزر Open .
يتم إنشاء ملفات CSS من Build Maven. spring-petclinic إنشاءها Maven -> Generates sources and Update Folders سطر الأوامر ./mvnw generate-resources
يجب إنشاء تكوين تشغيل يدعى PetClinicApplication لك إذا كنت تستخدم إصدارًا نهائيًا حديثًا. خلاف ذلك ، قم بتشغيل التطبيق بالنقر بزر الماوس الأيمن على الفئة الرئيسية PetClinicApplication واختيار Run 'PetClinicApplication' .
انتقل إلى petclinic
تفضل بزيارة http: // localhost: 8080 في متصفحك.
| تكوين الحذاء الربيعي | ملفات فئة أو جافا |
|---|---|
| الطبقة الرئيسية | petclinicapplication |
| خصائص ملفات | application.properties |
| التخزين المؤقت | تكوين cacheconfiguration |
إن الفرع الربيعي "الرئيسي" الرئيسي في الربيع GitHub Org هو التنفيذ "الكنسي" استنادًا إلى الحذاء الربيعي والثني. هناك عدد غير قليل من الشوكات في github org spring-petclinic. إذا كنت مهتمًا باستخدام مكدس تقني مختلف لتنفيذ عيادة الحيوانات الأليفة ، فيرجى الانضمام إلى المجتمع هناك.
واحدة من أفضل الأجزاء حول العمل في تطبيق الربيع Petclinic هو أن لدينا الفرصة للعمل على اتصال مباشر مع العديد من المشاريع مفتوحة المصدر. لقد وجدنا الأخطاء/التحسينات المقترحة على مواضيع مختلفة مثل الربيع وبيانات الربيع والتحقق من صحة الفاصوليا وحتى الكسوف! في كثير من الحالات ، تم إصلاحها/تنفيذها في غضون أيام قليلة. هذه قائمة منهم:
| اسم | مشكلة |
|---|---|
| Spring JDBC: تبسيط استخدام nameparameterjdbctemplate | SPR-10256 و SPR-10257 |
| التحقق من صحة الفاصوليا / صحة السبات: تبسيط تبعيات Maven والتوافق الخلفي | HV-790 و HV-792 |
| بيانات الربيع: توفير المزيد من المرونة عند العمل مع استعلامات JPQL | DataJPA-292 |
تعقب المشكلات هو القناة المفضلة لتقارير الأخطاء وطلبات الميزات وتقديم طلبات السحب.
لطلبات السحب ، تتوفر تفضيلات المحرر في تكوين المحرر لسهولة الاستخدام في محرري النص المشترك. اقرأ المزيد وقم بتنزيل الإضافات على https://editorconfig.org. إذا لم تكن قد قمت بذلك من قبل ، فيرجى ملء اتفاقية ترخيص المساهم وتقديمها.
يتم إصدار تطبيق عينة الربيع petclinic ضمن الإصدار 2.0 من ترخيص Apache.