Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Spring PetClinic minta egy klasszikus referenciaalkalmazás, amely bemutatja a Spring Boot és a Java használatát. Ez az oktatóanyag az Azure Container Appsre épülő AI-továbbfejlesztett verzióval rendelkezik, amely a hagyományos PetClinic felügyeleti rendszert modern AI-képességekkel bővíti.
Az oktatóanyagban szereplő alkalmazás egy AI-csevegősegéd, amely a Retrieveal Augmented Generation (RAG) szolgáltatást használja. Az Azure OpenAI Szolgáltatáshoz való csatlakozáshoz az alkalmazás Spring AI SDK-kkal támogatja a webalkalmazást. További információért a RAG-ról lásd az Azure OpenAI szolgáltatással megvalósított retrieval augmented generation (RAG) implementálása című részben.
Az alkalmazás számos különböző szolgáltatást tartalmaz, amelyek együttműködve mutatják be az AI-hoz kapcsolódó funkciókat a Spring PetClinic-mintában.
Az AI-alkalmazás architektúrája az Azure Container Appsben
Az alábbi ábra az AI-alkalmazás architektúráját mutatja be az Azure Container Appsben:
Az alkalmazás AZURE Container Apps-környezetben üzemeltetett API-átjárója az összes külső kérés központi belépési pontja.
Ez az átjáró a következő funkciókat hajtja végre:
- Az alkalmazásösszetevők közötti kommunikáció irányítása és kezelése.
- A felhasználók hitelesítése a Microsoft Entra-azonosítón keresztül.
- Felügyelt identitásokkal biztosítja az Azure Container Registryhez és a kognitív szolgáltatásokhoz való hozzáférést.
- Kezeli az összes bejövő külső felhasználói kérést.
Az átjáró egy dedikált virtuális hálózaton belül működik, biztosítva az alkalmazás és a külső rendszerek közötti biztonságos és elszigetelt kommunikációt.
Az alábbi táblázat az alkalmazásban kiemelt főbb összetevőket és szolgáltatásokat ismerteti:
| Szolgáltatás vagy funkció | Leírás |
|---|---|
| Azure Konténer Alkalmazások | Teljes mértékben felügyelt, kiszolgáló nélküli tárolóplatform modern alkalmazások létrehozásához és üzembe helyezéséhez. Kezeli a tárolóalapú alkalmazások automatikus skálázását, a forgalom felosztását és a változatkezelést. |
| Azure Container Apps-környezet | Biztonságos határ a hálózatkezelési, skálázási és felügyeleti konfigurációkat megosztó tárolóalkalmazások csoportja körül. A tárolóalkalmazások központi telepítésének alapvető futtatókörnyezetét biztosítja. |
| Azure OpenAI szolgáltatás | REST API-hozzáférést biztosít az OpenAI ChatGPT-hez, beágyazásokhoz és olyan hatékony nyelvi modellekhez, mint a GPT-4. Nagyvállalati szintű biztonsági és megfelelőségi funkciókkal teszi lehetővé az AI-képességeket. |
| Azure Container Registry | Privát Docker-beállításjegyzék-szolgáltatás tárolólemezképek tárolására és kezelésére. Támogatja az automatizált tárolók összeállítását, a biztonsági rések vizsgálatát és a georeplikálást. |
| Felügyelt identitások | Azure-szolgáltatásokat biztosít automatikusan felügyelt identitásokkal az Azure AD-ben. Szükségtelenné teszi a hitelesítő adatok kezelését azáltal, hogy lehetővé teszi a biztonságos szolgáltatásközi hitelesítést anélkül, hogy hitelesítő adatokat tárol a kódban. |
| Tavaszi AI | Spring-keretrendszer az AI-tervezéshez, amely az AI tervezési alapelveit alkalmazza a Spring-ökoszisztémára. Másik lehetőségként a Langchain4j egy másik AI-keretrendszer, amelynek saját PetClinic-mintája van a spring-petclinic-langchain4j-ben. További információ: Csevegőügyfél API. |
Az alkalmazás infrastruktúra mint kód elemeivel kapcsolatos további információkért tekintse meg a Bring your first AI app in Azure Container Apps adattár bicep szkriptjeit.
Kód implementálása
Az alábbi szakaszok bemutatja a kódot, amely segít megérteni az első AI-alkalmazás folyamatát.
REST-hívások indítása
A ChatClient vezérlő felelős a csevegőügyfél végpontjával való kommunikációért. A kérések PetclinicChatClient.java való elküldésének szintaxisa tartalmazza a felhasználói bemenet elküldéséhez szükséges objektumot chatClient .
return this.chatClient.prompt().user(u -> u.text(query)).call().content();
Chat funkciók testreszabása
Az ChatConfiguration osztály testre szabja a címzettnek chatClientküldött kéréseket. Az alábbi lista a következő kulcskonfigurációs chatClientbeállításokat ismerteti:
- Kapcsolatok hitelesítése: Az ügyfél csatlakozik az Azure OpenAI-hoz. Az API-kulcsok hitelesítése és a felügyelt identitáshitelesítés egyaránt támogatott.
- Konfigurációs beállítások helye: A
ChatModelkonfigurációs fájlban az üzembe helyezésgpt-4oés a hőmérséklet0.7van beállítva. - Vektoradatbázis: A vektoradatbázis a forrásdokumentumok matematikai reprezentációit, más néven beágyazásokat tárolja. A vektoradatokat a csevegő API használja a felhasználó kérdéséhez kapcsolódó dokumentumok megkeresésére.
- Rendszerkérés: Az AI viselkedésének testreszabása és a teljesítmény növelése.
- API-végpontok: Az alkalmazás testreszabott Azure Functions-végpontokat kínál, hogy az OpenAI képes legyen az alkalmazással való interakcióra.
- Tanácsadók: Az Advisorok rugalmas és hatékony módot biztosítanak az AI-alapú interakciók elfogására, módosítására és továbbfejlesztésére a Spring-alkalmazásokban.
Példa
Az alábbi példakód bemutatja, hogyan tölti be az osztály a ChatClientCustomizer konfigurációs adatokat:
@Bean
public ChatClientCustomizer chatClientCustomizer(VectorStore vectorStore, ChatModel model) {
ChatMemory chatMemory = new InMemoryChatMemory();
return b -> b.defaultSystem(systemResource)
.defaultFunctions("listOwners", "listVets", "addPetToOwner", "addOwnerToPetclinic")
.defaultAdvisors(new PromptChatMemoryAdvisor(chatMemory),
new ModeledQuestionAnswerAdvisor(vectorStore, SearchRequest.defaults(), model));
}
API-végpontok
A java.util.Function kategóriában megadott elemek (beanek) az alkalmazáskörnyezetben definiált függvények. Ezek a függvények az AI-modellek és a PetClinic-alkalmazás közötti interfészek.
A AIFunctionConfiguration.java mintafüggvények kommunikálnak a PetClinic alkalmazással. A következő részleteket tartsa szem előtt ezekkel a függvényekkel kapcsolatban:
- A
@Descriptionfüggvények széljegyzetei segítenek az AI-modelleknek megérteni a függvényeket egy természetes nyelven. - A függvény törzse az üzleti követelményektől függően változik.
Tanácsadók
Az advisorok olyan összetevők, amelyek módosítják vagy továbbfejlesztik az AI-kéréseket, és közbenső szoftverként működnek a gyors feldolgozáshoz.
Ez az alkalmazás két különböző tanácsadót használ:
-
QuestionAnswerAdvisormeghívja az AI-modelleket, hogy hozzon létre egy új felhasználói lekérdezést, amely tartalmazza a keresési vektor eredményeit, mielőtt véglegesítené a kérést. -
PromptChatMemoryAdvisorhozzáadja a csevegőmemóriát a parancssorhoz, és a csevegési modellhez biztosít egy beszélgetési előzményt. Ezzel a kontextussal az AI-modell megjegyzi a csevegés kontextusát, és javíthatja a csevegés minőségét.
További információ: Advisors API.