Esercitazione: connettersi al servizio OpenAI di Azure nel servizio Azure Kubernetes usando una stringa di connessione (anteprima)
Questa esercitazione illustra come creare un pod in un cluster Azure Kubernetes (AKS), che comunica con il servizio OpenAI di Azure usando una stringa di connessione. Completare le attività seguenti:
- Creare un cluster del servizio Azure Kubernetes e un servizio OpenAI di Azure con
gpt-4
distribuzione modello. - Creare una connessione tra il cluster del servizio Azure Kubernetes e Azure OpenAI con connettore di servizi.
- Clonare un'applicazione di esempio che comunicherà al servizio OpenAI da un cluster del servizio Azure Kubernetes.
- Distribuire l'applicazione in un pod nel cluster del servizio Azure Kubernetes e testare la connessione.
- Pulire le risorse.
Avviso
Microsoft consiglia di usare il flusso di autenticazione più sicuro disponibile. Il flusso di autenticazione descritto in questa procedura richiede un livello di attendibilità molto elevato nell'applicazione e comporta rischi che non sono presenti in altri flussi. Si consiglia di usare questo flusso solo quando altri flussi più sicuri, come le identità gestite, non sono validi. Vedere l'esercitazione sull'uso di un'identità gestita.
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
-
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Avvio rapido su Bash in Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando in locale, installare l'interfaccia della riga di comando di Azure. Per l'esecuzione in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Accedere tramite l'interfaccia della riga di comando di Azure.
Quando richiesto, al primo utilizzo installare l'estensione dell'interfaccia della riga di comando di Azure. Per altre informazioni sulle estensioni, vedere Usare le estensioni con l'interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
- Docker e kubectl per gestire le risorse delle immagini del contenitore e Kubernetes.
- Conoscenza di base dei contenitorei e del servizio Azure Kubernetes. Iniziare dalla preparazione di un'applicazione per il servizio Azure Kubernetes.
- Autorizzazioni di accesso per creare risorse del servizio OpenAI di Azure e distribuire modelli.
Creare risorse Azure
Creare un gruppo di risorse per questa esercitazione.
az group create \ --name MyResourceGroup \ --location eastus
Creare un cluster del servizio Azure Kubernetes con il comando seguente oppure facendo riferimento alla guida introduttiva Avvio rapido servizio Azure Kubernetes. In questo cluster viene creata la connessione al servizio e la definizione del pod e viene distribuita l'applicazione di esempio.
az aks create \ --resource-group MyResourceGroup \ --name MyAKSCluster \ --enable-managed-identity \ --node-count 1 \ --generate-ssh-keys
Connettersi al cluster servizio Azure Kubernetes usando il comando az servizio Azure Kubernetes get-credentials.
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSCluster
Creare una risorsa del servizio Azure OpenAI usando il comando az cognitiveservices account create. Facoltativamente, fare riferimento a questa esercitazione per altre istruzioni. Il servizio OpenAI di Azure è il servizio di destinazione che verrà connesso al cluster del servizio Azure Kubernetes.
az cognitiveservices account create \ --resource-group MyResourceGroup \ --name MyOpenAIService \ --location eastus \ --kind OpenAI \ --sku s0 \ --custom-domain myopenaiservice \ --subscription <SubscriptionID>
Distribuire un modello con il comando az cognitiveservices deployment create . Il modello viene usato nell'applicazione di esempio per testare la connessione.
az cognitiveservices account deployment create \ --resource-group MyResourceGroup \ --name MyOpenAIService --deployment-name MyModel \ --model-name gpt-4 \ --model-version 0613 \ --model-format OpenAI \ --sku-name "Standard" --capacity 1
Creare una risorsa di Registro Azure Container con il comando az acr create o fare riferimento a questa esercitazione. Il Registro di sistema ospita l'immagine del contenitore dell'applicazione di esempio usata dalla definizione del pod del servizio Azure Kubernetes.
az acr create \ --resource-group MyResourceGroup \ --name myregistry \ --sku Standard
Abilitare il pull anonimo usando il comando az acr update in modo che il cluster del servizio Azure Kubernetes possa usare le immagini nel Registro di sistema.
az acr update \ --resource-group MyResourceGroup \ --name myregistry \ --anonymous-pull-enabled
Creare una connessione al servizio nel servizio Azure Kubernetes con connettore di servizi (anteprima)
Creare una connessione al servizio tra un cluster del servizio Azure Kubernetes e il servizio Azure OpenAI nel portale di Azure o nell'interfaccia della riga di comando di Azure.
Per istruzioni su come creare una nuova connessione e compilare le impostazioni che fanno riferimento agli esempi nella tabella seguente, vedere la guida introduttiva all’avvio rapido della connessione al servizio Azure Kubernetes. Per tutte le altre impostazioni lasciare i valori predefiniti.
Scheda Generale:
Impostazione Valore di esempio Descrizione Spazio dei nomi Kubernetes default Spazio dei nomi Kubernetes. Tipo di servizio Servizio OpenAI Tipo di servizio di destinazione. Nome connessione openai_conn Usare il nome della connessione fornito dal connettore di servizi o selezionare il proprio nome di connessione. Abbonamento <MySubscription>
Sottoscrizione usata per il Servizio OpenAI di Azure. OpenAI <MyOpenAIService>
Il servizio OpenAI di Azure di destinazione a cui ci si vuole connettere. Tipo client Python Linguaggio di codice o framework usato per connettersi al servizio di destinazione. Scheda Authentication (Autenticazione):
impostazione di autenticazione Valore di esempio Descrizione Tipo di autenticazione Stringa di connessione Tipo di autenticazione di connettore di servizi.
Dopo aver creato la connessione, è possibile visualizzarne i dettagli nel riquadro Connettore di servizi.
Clonare l'applicazione di esempio
Clonare il repository di esempio:
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
Passare alla cartella di esempio del repository per Azure OpenAI:
cd serviceconnector-aks-samples/azure-openai-connection-string
Sostituire il
<MyModel>
segnaposto nelapp.py
file con il nome del modello distribuito.
Compilare ed eseguire il push di immagini del contenitore
Compilare ed eseguire il push delle immagini nel Registro usando il comando dell'interfaccia della riga di comando di Azure az acr build.
az acr build --registry <MyRegistry> --image sc-demo-openai-connstr:latest ./
Visualizzare le immagini nel Registro usando il comando az acr repository list.
az acr repository list --name <MyRegistry> --output table
Eseguire l'applicazione e testare la connessione
Sostituire i segnaposto nel file
pod.yaml
nella cartellaazure-openai-connection-string
.- Sostituire
<YourContainerImage>
con il nome dell'immagine creata in precedenza. Ad esempio:<MyRegistry>.azurecr.io/sc-demo-openai-connstr:latest
. - Sostituire
<SecretCreatedByServiceConnector>
con il segreto creato da connettore di servizi. È possibile controllare il nome del segreto nel portale di Azure nel riquadro Connettore di servizi.
- Sostituire
Distribuire il pod nel cluster usando il comando
kubectl apply
. Per installarekubectl
in locale, usare il comando az aks install-cli se non è installato. Il comando crea un pod denominatosc-demo-openai-connstr
nello spazio dei nomi predefinito del cluster del servizio Azure Kubernetes.kubectl apply -f pod.yaml
Controllare se la distribuzione ha avuto esito positivo visualizzando il pod con
kubectl
.kubectl get pod/sc-demo-openai-connstr
Verificare che la connessione funzioni visualizzando i log con
kubectl
.kubectl logs pod/sc-demo-openai-connstr
Pulire le risorse
Se queste risorse non sono più necessarie, eliminare le risorse di Azure create in questa esercitazione eliminando il gruppo di risorse.
az group delete \
--resource-group MyResourceGroup
Passaggi successivi
Leggere gli articoli seguenti per altre informazioni sui concetti di connettore di servizi e su come consente al servizio Azure Kubernetes di connettersi ai servizi di Azure.