OpenAI-t használó alkalmazás üzembe helyezése az Azure Kubernetes Service-ben (AKS)
Ebből a cikkből megtudhatja, hogyan helyezhet üzembe egy Azure OpenAI-t vagy OpenAI-t használó alkalmazást az AKS-en. Az OpenAI segítségével egyszerűen adaptálhatja a különböző AI-modelleket, például a tartalomgenerálást, az összegzést, a szemantikai keresést és a természetes nyelvet a kódgeneráláshoz az adott feladatokhoz. Először üzembe kell helyeznie egy AKS-fürtöt az Azure-előfizetésében. Ezután üzembe helyezi az OpenAI szolgáltatást és a mintaalkalmazást.
A natív felhőbeli mintaalkalmazás a valós implementációkra jellemző. A többtárolós alkalmazás több nyelven és keretrendszerben írt alkalmazásokból áll, beleértve a következőket:
- Golang és Gin
- Rust with Actix-Web
- JavaScript Vue.js és Fastify használatával
- Python és FastAPI
Ezek az alkalmazások előtérrendszereket biztosítanak az ügyfelek és a rendszergazdák számára, REST API-kat az adatok RabbitMQ üzenetsorba és MongoDB-adatbázisba való küldéséhez, valamint konzolalkalmazásokat a forgalom szimulálásához.
Feljegyzés
Nem javasoljuk az állapotalapú tárolók( például a MongoDB és a Rabbit MQ) futtatását állandó tárolás nélkül az éles környezetben. Itt az egyszerűség kedvéért használjuk őket, de azt javasoljuk, hogy felügyelt szolgáltatásokat használjon, például az Azure CosmosDB-t vagy az Azure Service Bust.
A mintaalkalmazás GitHub-kódbázisának eléréséhez tekintse meg az AKS Store bemutatóját.
Mielőtt elkezdené
- Aktív előfizetéssel rendelkező Azure-fiókra van szüksége. Ha nem rendelkezik ilyen fiókkal, hozzon létre ingyenes fiókot.
- Ehhez a bemutatóhoz használhatja az Azure OpenAI szolgáltatást vagy az OpenAI szolgáltatást.
- Ha az Azure OpenAI szolgáltatás használatát tervezi, hozzáférést kell kérnie ahhoz, hogy engedélyezze azt az Azure-előfizetésében az Azure OpenAI szolgáltatáshoz való hozzáférés kérése űrlap használatával.
- Ha az OpenAI használatát tervezi, regisztráljon az OpenAI webhelyén.
Előfeltételek
Használja a Bash-környezetet az Azure Cloud Shellben. További információ: A Bash rövid útmutatója az Azure Cloud Shellben.
Ha inkább helyi cli-referenciaparancsokat szeretne futtatni, telepítse az Azure CLI-t. Ha Windows vagy macOS rendszert használ, fontolja meg az Azure CLI Docker-tárolóban való futtatását. További információ: Az Azure CLI futtatása Docker-tárolóban.
Ha helyi telepítést használ, jelentkezzen be az Azure CLI-be az az login parancs futtatásával. A hitelesítési folyamat befejezéséhez kövesse a terminálon megjelenő lépéseket. További bejelentkezési lehetőségekért lásd : Bejelentkezés az Azure CLI-vel.
Amikor a rendszer kéri, először telepítse az Azure CLI-bővítményt. További információ a bővítményekről: Bővítmények használata az Azure CLI-vel.
Futtassa az az version parancsot a telepített verzió és a függő kódtárak megkereséséhez. A legújabb verzióra az az upgrade paranccsal frissíthet.
Erőforráscsoport létrehozása
Az Azure-erőforráscsoportok olyan logikai csoportok, amelyekben Azure-erőforrásokat helyezhet üzembe és kezelhet. Erőforráscsoport létrehozásakor a rendszer kérni fogja, hogy adjon meg egy helyet. Ez a hely az erőforráscsoport metaadatainak tárolási helye, és ahol az erőforrások az Azure-ban futnak, ha nem ad meg egy másik régiót az erőforrás létrehozása során.
A következő példában létrehozunk egy myResourceGroup nevű erőforráscsoportot az eastus helyen.
Hozzon létre egy erőforráscsoportot a
az group create
paranccsal.az group create --name myResourceGroup --location eastus
Az alábbi példakimenet az erőforráscsoport sikeres létrehozását mutatja be:
{ "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup", "location": "eastus", "managedBy": null, "name": "myResourceGroup", "properties": { "provisioningState": "Succeeded" }, "tags": null, "type": "Microsoft.Resources/resourceGroups" }
AKS-fürt létrehozása
Az alábbi példa létrehoz egy myAKSCluster nevű fürtöt a myResourceGroupban.
Hozzon létre egy AKS-fürtöt a
az aks create
paranccsal.az aks create --resource-group myResourceGroup --name myAKSCluster --generate-ssh-keys
Néhány perc elteltével a parancs befejeződik, és JSON formátumú információkat ad vissza a fürtről.
Csatlakozás a fürthöz
Kubernetes-fürt kezeléséhez a Kubernetes parancssori ügyfelet, a Kubectl-et kell használnia. kubectl
az Azure Cloud Shell használata esetén már telepítve van.
Telepítse
kubectl
helyileg aaz aks install-cli
parancs használatával.az aks install-cli
Feljegyzés
Ha a Linux-alapú rendszer emelt szintű engedélyeket igényel, használhatja a
sudo az aks install-cli
parancsot.Konfigurálja
kubectl
a Kubernetes-fürthöz való csatlakozást aaz aks get-credentials
paranccsal.Ez a parancs a következő műveleteket hajtja végre:
- Letölti a hitelesítő adatokat, és konfigurálja a Kubernetes parancssori felületét a használatukhoz.
- A
~/.kube/config
Kubernetes-konfigurációs fájl alapértelmezett helye. Adjon meg egy másik helyet a Kubernetes-konfigurációs fájlhoz a --file argumentum használatával.
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Ellenőrizze a fürthöz való kapcsolatot a
kubectl get
paranccsal. Ez a parancs a fürtcsomópontok listáját adja vissza.kubectl get nodes
Az alábbi példakimenet az előző lépésekben létrehozott csomópontokat mutatja be. Győződjön meg arról, hogy a csomópont állapota kész.
NAME STATUS ROLES AGE VERSION aks-nodepool1-31469198-vmss000000 Ready agent 3h29m v1.25.6 aks-nodepool1-31469198-vmss000001 Ready agent 3h29m v1.25.6 aks-nodepool1-31469198-vmss000002 Ready agent 3h29m v1.25.6
Feljegyzés
Privát fürtök esetén előfordulhat, hogy a csomópontok nem érhetők el, ha a nyilvános IP-címen keresztül próbál hozzájuk csatlakozni. A probléma megoldásához létre kell hoznia egy végpontot ugyanabban a virtuális hálózaton belül, ahonnan a fürt csatlakozik. Kövesse az utasításokat egy privát AKS-fürt létrehozásához, majd csatlakozzon hozzá.
Az alkalmazás üzembe helyezése
Az AKS Store alkalmazásjegyzéke a következő Kubernetes-üzemelő példányokat és szolgáltatásokat tartalmazza:
- Termékszolgáltatás: A termékinformációkat jeleníti meg.
- Rendelési szolgáltatás: Rendeléseket rendel.
- Makeline szolgáltatás: Feldolgozza a rendeléseket az üzenetsorból, és végrehajtja a rendeléseket.
- Áruházi előtér: Webalkalmazás az ügyfelek számára termékek megtekintésére és megrendelések leadására.
- Áruházi rendszergazda: Webalkalmazás az áruház alkalmazottai számára a rendelések várólistán való megtekintéséhez és a termékadatok kezeléséhez.
- Virtuális ügyfél: A rendelések ütemezett létrehozását szimulálja.
- Virtuális feldolgozó: A rendelések ütemezett befejezését szimulálja.
- Mongo DB: NoSQL-példány a tárolt adatokhoz.
- Nyúl MQ: Üzenetsor rendelési üzenetsorhoz.
Feljegyzés
Nem javasoljuk az állapotalapú tárolók( például a MongoDB és a Rabbit MQ) futtatását állandó tárolás nélkül az éles környezetben. Itt az egyszerűség kedvéért használjuk őket, de azt javasoljuk, hogy felügyelt szolgáltatásokat használjon, például az Azure CosmosDB-t vagy az Azure Service Bust.
Tekintse át az alkalmazás YAML-jegyzékét .
Telepítse az alkalmazást a
kubectl apply
paranccsal, és adja meg a YAML-jegyzék nevét.kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/aks-store-all-in-one.yaml
Az alábbi példakimenet a sikeresen létrehozott üzembe helyezéseket és szolgáltatásokat mutatja be:
deployment.apps/mongodb created service/mongodb created deployment.apps/rabbitmq created service/rabbitmq created deployment.apps/order-service created service/order-service created deployment.apps/makeline-service created service/makeline-service created deployment.apps/product-service created service/product-service created deployment.apps/store-front created service/store-front created deployment.apps/store-admin created service/store-admin created deployment.apps/virtual-customer created deployment.apps/virtual-worker created
Az OpenAI üzembe helyezése
Használhatja az Azure OpenAI-t vagy az OpenAI-t, és futtathatja az alkalmazást az AKS-en.
- Engedélyezze az Azure OpenAI-t az Azure-előfizetésében az Azure OpenAI szolgáltatáshoz való hozzáférés kérése űrlap kitöltésével.
- Az Azure Portalon hozzon létre egy Azure OpenAI-példányt.
- Válassza ki a létrehozott Azure OpenAI-példányt.
- Kulcs létrehozásához válassza a Kulcsok és végpontok lehetőséget.
- Válassza a Modelltelepítések felügyelt üzembe helyezések> lehetőséget az Azure OpenAI studio megnyitásához.
- Hozzon létre egy új üzembe helyezést a gpt-35-turbo modellel.
Az Üzembe helyezés azure OpenAI-ban való létrehozásáról további információt az Azure OpenAI szolgáltatással történő szövegkészítés első lépései című témakörben talál.
Az AI-szolgáltatás üzembe helyezése
Az alkalmazás üzembe helyezése után üzembe helyezheti az OpenAI-t használó Python-alapú mikroszolgáltatást, amely automatikusan létrehozza az áruház katalógusához hozzáadott új termékek leírását.
Hozzon létre egy fájlt,
ai-service.yaml
és másolja a következő jegyzékbe:apiVersion: apps/v1 kind: Deployment metadata: name: ai-service spec: replicas: 1 selector: matchLabels: app: ai-service template: metadata: labels: app: ai-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: ai-service image: ghcr.io/azure-samples/aks-store-demo/ai-service:latest ports: - containerPort: 5001 env: - name: USE_AZURE_OPENAI value: "True" - name: AZURE_OPENAI_DEPLOYMENT_NAME value: "" - name: AZURE_OPENAI_ENDPOINT value: "" - name: OPENAI_API_KEY value: "" resources: requests: cpu: 20m memory: 50Mi limits: cpu: 50m memory: 128Mi --- apiVersion: v1 kind: Service metadata: name: ai-service spec: type: ClusterIP ports: - name: http port: 5001 targetPort: 5001 selector: app: ai-service
Állítsa a környezeti változót
USE_AZURE_OPENAI
a következőre"True"
: .Kérje le az Azure OpenAI üzembehelyezési nevét az Azure OpenAI studióból, és adja meg az
AZURE_OPENAI_DEPLOYMENT_NAME
értéket.Az Azure OpenAI-végpont és az Azure OpenAI API-kulcs lekérése az Azure Portalról az erőforrás bal oldali paneljén található Kulcsok és végpontok kiválasztásával. Ennek megfelelően frissítse a
AZURE_OPENAI_ENDPOINT
YAML-et ésOPENAI_API_KEY
annak megfelelően.Telepítse az alkalmazást a
kubectl apply
paranccsal, és adja meg a YAML-jegyzék nevét.kubectl apply -f ai-service.yaml
Az alábbi példakimenet a sikeresen létrehozott üzembe helyezéseket és szolgáltatásokat mutatja be:
deployment.apps/ai-service created service/ai-service created
Feljegyzés
A Kubernetes-jegyzékfájlokhoz közvetlenül bizalmas információk, például API-kulcsok hozzáadása nem biztonságos, és előfordulhat, hogy véletlenül le lesz kötelezve a kódtárakra. Itt az egyszerűség kedvéért adtunk hozzá. Éles számítási feladatok esetén a felügyelt identitással hitelesíthet az Azure OpenAI szolgáltatásban, vagy tárolhatja titkos kulcsait az Azure Key Vaultban.
Az alkalmazás tesztelése
Ellenőrizze az üzembe helyezett podok állapotát a kubectl get pods paranccsal.
kubectl get pods
A következő lépés folytatása előtt győződjön meg arról, hogy az összes pod fut .
NAME READY STATUS RESTARTS AGE makeline-service-7db94dc7d4-8g28l 1/1 Running 0 99s mongodb-78f6d95f8-nptbz 1/1 Running 0 99s order-service-55cbd784bb-6bmfb 1/1 Running 0 99s product-service-6bf4d65f74-7cbvk 1/1 Running 0 99s rabbitmq-9855984f9-94nlm 1/1 Running 0 99s store-admin-7f7d768c48-9hn8l 1/1 Running 0 99s store-front-6786c64d97-xq5s9 1/1 Running 0 99s virtual-customer-79498f8667-xzsb7 1/1 Running 0 99s virtual-worker-6d77fff4b5-7g7rj 1/1 Running 0 99s
Szerezze be az áruházi rendszergazda webalkalmazás IP-címét, és a parancs használatával tárolja az előtér-webalkalmazást
kubectl get service
.kubectl get service store-admin
Az alkalmazás a Kubernetes szolgáltatás által kiépített nyilvános terheléselosztón keresztül teszi elérhetővé az interneten az Áruház felügyeleti webhelyét. A folyamat eltarthat pár percig. A külső IP-cím kezdetben függőben van, amíg a szolgáltatás meg nem jelenik, és meg nem jelenik az IP-cím.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE store-admin LoadBalancer 10.0.142.228 40.64.86.161 80:32494/TCP 50m
Ismételje meg ugyanezt a lépést a "store-front" nevű szolgáltatás esetében.
Nyisson meg egy webböngészőt, és keresse meg a szolgáltatás külső IP-címét. Az itt látható példában nyissa meg a 40.64.86.161-et a Store Admin böngészőben való megtekintéséhez. Ismételje meg ugyanezt a lépést a Store Front esetében is.
Az Áruház rendszergazdája területen válassza a Termékek lapot, majd a Termékek hozzáadása lehetőséget.
Ha az "ai-service" sikeresen fut, a leírás mező mellett az OpenAI kérése gombnak kell megjelennie. Adja meg a nevet, az árat és a kulcsszavakat, majd hozzon létre egy termékleírást az OpenAI>Mentés kérése lehetőség kiválasztásával.
Most már láthatja az eladók által használt, áruházi rendszergazda által létrehozott új terméket. A képen látható, hogy a Jungle Monkey Chew Toy hozzá van adva.
A vásárlók által használt, a Store Fronton létrehozott új terméket is láthatja. A képen látható, hogy a Jungle Monkey Chew Toy hozzá van adva. Ne felejtse el lekérni a tár ip-címét a
kubectl get service
parancs használatával.
Következő lépések
Most, hogy hozzáadta az OpenAI-funkciókat egy AKS-alkalmazáshoz, biztonságossá teheti az Azure OpenAI-hez való hozzáférést az Azure Kubernetes Service-ből (AKS).
A generatív AI-használati esetekről az alábbi forrásokból tudhat meg többet:
Azure Kubernetes Service