Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel leert u hoe u een toepassing implementeert die gebruikmaakt van Azure OpenAI of OpenAI op AKS. Met OpenAI kunt u eenvoudig verschillende AI-modellen aanpassen, zoals het genereren van inhoud, samenvatting, semantische zoekopdrachten en natuurlijke taal voor het genereren van code, voor uw specifieke taken. U begint met het implementeren van een AKS-cluster in uw Azure-abonnement. Vervolgens implementeert u uw OpenAI-service en de voorbeeldtoepassing.
De voorbeeldcloudeigen toepassing is representatief voor echte implementaties. De toepassing met meerdere containers bestaat uit toepassingen die zijn geschreven in meerdere talen en frameworks, waaronder:
- Golang met Gin
- Rust met Actix-Web
- JavaScript met Vue.js en Fastify
- Python met FastAPI
Deze toepassingen bieden front-ends voor klanten en winkelbeheerders, REST API's voor het verzenden van gegevens naar de RabbitMQ-berichtenwachtrij en MongoDB-database, en console-apps om verkeer te simuleren.
Notitie
Wij raden niet aan om stateful containers, zoals MongoDB en Rabbit MQ, zonder permanente opslag in productie te draaien. We gebruiken ze hier voor het gemak, maar we raden u aan beheerde services te gebruiken, zoals Azure CosmosDB of Azure Service Bus.
Zie AKS Store-demo voor toegang tot de GitHub-codebase voor de voorbeeldtoepassing.
Voordat u begint
- U hebt een Azure-account met een actief abonnement nodig. Als u nog geen account hebt, maakt u gratis een account.
- Voor deze demo kunt u de Azure OpenAI-service of de OpenAI-service gebruiken.
- Als u van plan bent om de Azure OpenAI-service te gebruiken, moet u toegang aanvragen om deze in te schakelen in uw Azure-abonnement met behulp van het formulier Toegang aanvragen tot Azure OpenAI-service.
- Als u van plan bent om OpenAI te gebruiken, meldt u zich aan op de OpenAI-website.
Vereisten
Gebruik de Bash-omgeving in Azure Cloud Shell. Zie Aan de slag met Azure Cloud Shell voor meer informatie.
Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren. Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie.
Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht az login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Zie Verifiëren bij Azure met behulp van Azure CLI voor andere aanmeldingsopties.
Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Zie Extensies gebruiken en beheren met de Azure CLIvoor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.
Een brongroep maken
Een Azure-resourcegroep is een logische groep waarin u Azure-resources implementeert en beheert. Wanneer u een resourcegroep maakt, wordt u gevraagd een locatie op te geven. Deze locatie is de opslaglocatie van de metagegevens van uw resourcegroep en waar uw resources worden uitgevoerd in Azure als u geen andere regio opgeeft tijdens het maken van de resource.
In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt in de regio eastus.
Maak een resourcegroep met behulp van de
az group createopdracht.az group create --name myResourceGroup --location eastusIn het volgende voorbeeldresultaat ziet u dat de resourcegroep succesvol is aangemaakt:
{ "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup", "location": "eastus", "managedBy": null, "name": "myResourceGroup", "properties": { "provisioningState": "Succeeded" }, "tags": null, "type": "Microsoft.Resources/resourceGroups" }
Een AKS-cluster maken
In het volgende voorbeeld wordt een cluster met de naam myAKSCluster gemaakt in myResourceGroup.
Maak een AKS-cluster met behulp van de
az aks createopdracht.az aks create --resource-group myResourceGroup --name myAKSCluster --generate-ssh-keysNa enkele minuten is de opdracht voltooid en retourneert deze informatie over het cluster in JSON-indeling.
Verbinding maken met het cluster
Als u een Kubernetes-cluster wilt beheren, gebruikt u de Kubernetes-opdrachtregelclient kubectl.
kubectl is al geïnstalleerd als u Azure Cloud Shell gebruikt.
Installeer
kubectllokaal met behulp van deaz aks install-cliopdracht.az aks install-cliNotitie
Als voor uw Linux-systeem verhoogde machtigingen zijn vereist, kunt u de
sudo az aks install-cliopdracht gebruiken.Configureer
kubectlom verbinding te maken met uw Kubernetes-cluster met deaz aks get-credentialsopdracht.Met deze opdracht worden de volgende bewerkingen uitgevoerd:
- Hiervoor downloadt u credentials en configureert u de Kubernetes CLI om deze te gebruiken.
- Gebruikt
~/.kube/config, de standaardlocatie voor het Kubernetes-configuratiebestand. Geef een andere locatie op voor uw Kubernetes-configuratiebestand met behulp van het argument --file .
az aks get-credentials --resource-group myResourceGroup --name myAKSClusterControleer de verbinding met uw cluster met behulp van de
kubectl getopdracht. Met deze opdracht wordt een lijst met de clusterknooppunten geretourneerd.kubectl get nodesIn de volgende voorbeelduitvoer ziet u de knooppunten die in de vorige stappen zijn gemaakt. Zorg ervoor dat de status van het knooppunt gereed is.
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
Notitie
Voor privéclusters zijn de knooppunten mogelijk onbereikbaar als u er verbinding mee probeert te maken via het openbare IP-adres. Om dit probleem op te lossen, moet u een eindpunt maken binnen hetzelfde VNET als het cluster waaruit u verbinding wilt maken. Volg de instructies voor het maken van een privé-AKS-cluster en maak er vervolgens verbinding mee.
De toepassing implementeren
Het AKS Store-toepassingsmanifest bevat de volgende Kubernetes-implementaties en -services:
- Productservice: toont productgegevens.
- Orderservice: Orders plaatsen.
- Makeline-service: verwerkt orders uit de wachtrij en voltooit de orders.
- Webwinkel: Webtoepassing voor klanten om producten te bekijken en bestellingen te plaatsen.
- Store admin: Webtoepassing voor winkelmedewerkers om orders in de wachtrij te bekijken en productinformatie te beheren.
- Virtuele klant: simuleert het maken van bestellingen op een geplande basis.
- Virtuele werknemer: simuleert ordervoltooiing volgens planning.
- Mongo DB: NoSQL-exemplaar voor persistente gegevens.
- Rabbit MQ: Berichtenwachtrij voor een orderwachtrij.
Notitie
Wij raden niet aan om stateful containers, zoals MongoDB en Rabbit MQ, zonder permanente opslag in productie te draaien. We gebruiken ze hier voor het gemak, maar we raden u aan beheerde services te gebruiken, zoals Azure CosmosDB of Azure Service Bus.
Controleer het YAML-manifest voor de toepassing.
Implementeer de toepassing met behulp van de
kubectl applyopdracht en geef de naam van uw YAML-manifest op.kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/aks-store-all-in-one.yamlIn de volgende voorbeelduitvoer ziet u de gemaakte implementaties en services:
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
OpenAI implementeren
U kunt Azure OpenAI of OpenAI gebruiken en uw toepassing uitvoeren op AKS.
- Maak in Azure Portal een Azure OpenAI-exemplaar.
- Navigeer naar het Azure OpenAI-exemplaar dat u hebt gemaakt.
- Navigeer vanuit het Overzicht-scherm naar de Azure AI Foundry portal.
- Maak een nieuwe chat-implementatie met behulp van het basismodel gpt-4o-mini .
Zie Aan de slag met het genereren van tekst met behulp van De Azure OpenAI-service voor meer informatie over het maken van een implementatie in Azure OpenAI.
De AI-service implementeren
Nu de toepassing is geïmplementeerd, kunt u de op Python gebaseerde microservice implementeren die Gebruikmaakt van OpenAI om automatisch beschrijvingen te genereren voor nieuwe producten die worden toegevoegd aan de catalogus van de store.
Maak een bestand met de naam
ai-service.yamlen kopieer dit in het volgende manifest: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-serviceStel de omgevingsvariabele
USE_AZURE_OPENAIin op"True".Haal de naam van uw Azure OpenAI-implementatie op uit Azure AI Foundry en vul de
AZURE_OPENAI_DEPLOYMENT_NAMEwaarde in.Haal uw Azure OpenAI-eindpunt en de Azure OpenAI API-sleutel op in Azure Portal door sleutels en eindpunt te selecteren in de linkerblade van de resource. Werk de
AZURE_OPENAI_ENDPOINTenOPENAI_API_KEYin de YAML dienovereenkomstig bij.Implementeer de toepassing met behulp van de
kubectl applyopdracht en geef de naam van uw YAML-manifest op.kubectl apply -f ai-service.yamlIn de volgende voorbeelduitvoer ziet u de gemaakte implementaties en services:
deployment.apps/ai-service created service/ai-service created
Notitie
Het rechtstreeks toevoegen van gevoelige informatie, zoals API-sleutels, aan uw Kubernetes-manifestbestanden is niet beveiligd en kan per ongeluk worden doorgevoerd in codeopslagplaatsen. We hebben het hier toegevoegd om het eenvoudig te maken. Voor productie workloads gebruikt u Managed Identity voor authenticatie bij de Azure OpenAI-service of om uw geheimen op te slaan in Azure Key Vault.
De toepassing testen
Controleer de status van de geïmplementeerde pods met behulp van de opdracht kubectl get pods .
kubectl get podsZorg ervoor dat alle pods draaien voordat u verdergaat met de volgende stap.
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 99sHaal het IP-adres van de webtoepassing voor winkelbeheer en de webtoepassing voor de winkelvoorzijde op met behulp van de
kubectl get serviceopdracht.kubectl get service store-adminDe toepassing maakt de Store-beheersite beschikbaar op internet via een openbare load balancer die is ingericht door de Kubernetes-service. Dit proces kan enkele minuten duren. EXTERN IP-adres toont aanvankelijk in afwachting totdat de service actief is en het IP-adres wordt getoond.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE store-admin LoadBalancer 10.0.142.228 40.64.86.161 80:32494/TCP 50mHerhaal dezelfde stap voor de service met de naam 'store-front'.
Open een webbrowser en blader naar het externe IP-adres van uw service. In het hier getoonde voorbeeld, open 40.64.86.161 om Store Admin in de browser te zien. Herhaal dezelfde stap voor Store Front.
Selecteer in de winkelbeheerder het tabblad Producten en selecteer vervolgens Producten toevoegen.
Wanneer de 'ai-service' wordt uitgevoerd, ziet u de knop Ask OpenAI naast het beschrijvingsveld. Vul de naam, prijs en trefwoorden in, en genereer vervolgens een productbeschrijving door Ask OpenAI te selecteren en >.
U kunt nu het nieuwe product zien dat u hebt gemaakt in storebeheerder die door verkopers wordt gebruikt. Op de foto ziet u dat Dog Smart Collar is toegevoegd.
U kunt ook het nieuwe product zien dat u hebt gemaakt op Store Front dat door kopers wordt gebruikt. Op de foto ziet u dat Dog Smart Collar is toegevoegd. Vergeet niet om het IP-adres van de winkelfront op te halen met behulp van de
kubectl get serviceopdracht.
Volgende stappen
Nu u OpenAI-functionaliteit hebt toegevoegd aan een AKS-toepassing, kunt u vanuit Azure Kubernetes Service (AKS) de toegang tot Azure OpenAI beveiligen.
Zie de volgende bronnen voor meer informatie over generatieve AI-gebruiksvoorbeelden: