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 codebasis 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 Azure OpenAI-service of OpenAI-service gebruiken.
- Als u van plan bent Azure OpenAI service te gebruiken, moet u toegang aanvragen om dit in te schakelen voor uw Azure-abonnement met behulp van de Toegang tot Azure OpenAI Service formulier.
- 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 Get gestart met Azure Cloud Shell voor meer informatie.
Als u CLI-referentieopdrachten liever lokaal uitvoert, installeer de Azure CLI. Als u op Windows of macOS werkt, kunt u overwegen Azure CLI uit te voeren 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 de Azure CLI met behulp van de opdracht az. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Zie Authenticate to Azure using Azure CLI voor andere aanmeldingsopties.
Wanneer u hierom wordt gevraagd, installeert u de Azure CLI-extensie bij het eerste gebruik. Zie Uitbreidingen gebruiken en beheren met de Azure CLI voor 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 resources.
In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt in de regio eastus.
Maak een resourcegroep met behulp van de opdracht.
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 opdracht.
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 lokaal met behulp van de opdracht.
az aks install-cliNotitie
Als voor uw Linux-systeem verhoogde machtigingen zijn vereist, kunt u de opdracht gebruiken.
Configureer om verbinding te maken met uw Kubernetes-cluster met de opdracht.
Met deze opdracht worden de volgende bewerkingen uitgevoerd:
- Hiervoor downloadt u credentials en configureert u de Kubernetes CLI om deze te gebruiken.
- Gebruikt , 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 opdracht. 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
Architectuurdiagram van AKS AI-demo.
Het manifest AKS Store 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.
Bekijk het YAML-manifest voor de toepassing.
Implementeer de toepassing met behulp van de opdracht 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.
- Azure OpenAI
- OpenAI
- Maak in de Azure-portal een Azure OpenAI-exemplaar.
- Navigeer naar het Azure OpenAI-exemplaar dat u hebt gemaakt.
- Navigeer op de blade Overzicht naar de Microsoft Foundry-portal.
- Maak een nieuwe chat-implementatie met behulp van het basismodel gpt-4o-mini .
Zie Get aan het genereren van tekst met behulp van 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.
- Azure OpenAI
- OpenAI
Maak een bestand met de naam en 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 in op .
Haal uw Azure OpenAI-implementatienaam op uit Foundry en vul de waarde
AZURE_OPENAI_DEPLOYMENT_NAMEin.Haal uw Azure OpenAI-eindpunt en Azure OpenAI-API-sleutel op in de Azure-portal door Sleutels en Eindpunt te selecteren in de linkerblade van de resource. Werk de en in de YAML dienovereenkomstig bij.
Implementeer de toepassing met behulp van de opdracht 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 productieworkloads gebruikt u Managed Identity om te verifiëren bij 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 opdracht.
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 .
Schermopname van het gebruik van openAI om een productbeschrijving te genereren.
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.
Schermopname van het nieuwe product op de winkelbeheerderspagina.
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 opdracht.
Schermopname van het nieuwe product op de voorpagina van de winkel.
Volgende stappen
Nu u OpenAI-functionaliteit hebt toegevoegd aan een AKS-toepassing, kunt u Secure access to Azure OpenAI from Azure Kubernetes Service (AKS).
Zie de volgende bronnen voor meer informatie over generatieve AI-gebruiksvoorbeelden:
- documentatie voor Azure OpenAI Service
- Invoering voor Azure OpenAI-services
- OpenAI-platform
- Project Miyagi - Voorbeeld voor Copilot stack