Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Avviso
Prompt flow in Microsoft Foundry e Azure Machine Learning verrà dismesso il 20 aprile 2027. Prompt flow non è più consigliato per i nuovi sviluppi. Migra le applicazioni e le distribuzioni Prompt flow esistenti in Microsoft Agent Framework entro il 20 aprile 2027.
Le immagini del container di Prompt flow non ricevono più aggiornamenti, inclusi gli aggiornamenti di sicurezza e dei pacchetti. Questo vale per le immagini di runtime di Prompt flow, incluse promptflow-runtime, promptflow-runtime-stable e promptflow-python.
Dopo il 20 aprile 2027, Prompt flow, inclusa l'esperienza di creazione sul Web in Microsoft Foundry e Azure Machine Learning, le estensioni di VS Code e le relative immagini del contenitore di Prompt flow, non sarà più supportato né disponibile.
Se l'applicazione dipende dalle distribuzioni di Prompt flow o dalle immagini di runtime, pianifica la migrazione di tali carichi di lavoro verso alternative supportate, ad esempio Microsoft Agent Framework, prima della data di ritiro. Per linee guida sulla migrazione, vedere la guida alla migrazione di Prompt flow e gli esempi di codice per la migrazione.
Questo articolo illustra come distribuire il flusso in un endpoint online gestito o in un endpoint online Kubernetes da usare nell'inferenza in tempo reale usando l'interfaccia della riga di comando di Azure Machine Learning v2.
Prima di iniziare, assicurarsi di testare correttamente il flusso e assicurarsi che sia pronto per la distribuzione nell'ambiente di produzione. Per altre informazioni sul test del flusso, vedere Testare il flusso. Dopo aver testato il flusso, si apprenderà come creare un endpoint e una distribuzione online gestiti e come usare l'endpoint per l'inferenza in tempo reale.
- Questo articolo illustra come usare l'esperienza dell'interfaccia della riga di comando.
- L'SDK di Python non è trattato in questo articolo. Guarda invece il "notebook" di esempio su GitHub. Per usare Python SDK, è necessario disporre dell'SDK di Python v2 per Azure Machine Learning. Per altre informazioni, vedere Installare Python SDK v2 per Azure Machine Learning.
Importante
Gli elementi contrassegnati (anteprima) in questo articolo sono attualmente in anteprima pubblica. La versione di anteprima viene fornita senza un contratto di servizio e non è consigliata per i carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero avere funzionalità limitate. Per altre informazioni, vedere Condizioni supplementari per l'utilizzo delle anteprime di Microsoft Azure.
Prerequisiti
- Il interfaccia della riga di comando di Azure e l'estensione Azure Machine Learning all'interfaccia della riga di comando di Azure. Per altre informazioni, vedere Installare, configurare e usare l'interfaccia della riga di comando (v2).
- Un'area di lavoro Azure Machine Learning. Se non è disponibile, seguire la procedura descritta nell'articolo Avvio rapido: Creare risorse dell'area di lavoro per crearne uno.
- I controlli degli accessi in base al ruolo di Azure vengono usati per concedere l'accesso alle operazioni in Azure Machine Learning. Per eseguire la procedura descritta in questo articolo, all'account utente deve essere assegnato il ruolo di proprietario o collaboratore per l'area di lavoro Azure Machine Learning o un ruolo personalizzato che consenta "Microsoft. MachineLearningServices/workspaces/onlineEndpoints/". Se usi studio per creare e gestire endpoint e distribuzioni online, hai bisogno di un'altra autorizzazione, "Microsoft.Resources/deployments/write", da parte del proprietario del gruppo di risorse. Per altre informazioni, vedere Gestire l'accesso a un'area di lavoro Azure Machine Learning.
Nota
L'endpoint online gestito supporta solo la rete virtuale gestita. Se l'area di lavoro si trova in una rete virtuale personalizzata, è possibile eseguire la distribuzione nell'endpoint online kubernetes o distribuirla in altre piattaforme, ad esempio Docker.
Allocazione della quota di macchine virtuali per la distribuzione
Per gli endpoint online gestiti, Azure Machine Learning riserva 20% delle risorse di calcolo per l'esecuzione degli aggiornamenti. Pertanto, se si richiede un determinato numero di istanze in una distribuzione, è necessario avere una quota per ceil(1.2 * number of instances requested for deployment) * number of cores for the VM SKU per evitare di ottenere un errore. Ad esempio, se si richiedono 10 istanze di una macchina virtuale Standard_DS3_v2 (fornita con quattro core) in una distribuzione, è necessario avere una quota per 48 core (12 istanze quattro core) disponibili. Per visualizzare l'aumento della quota di utilizzo e richiesta, vedere Visualizzare l'utilizzo e le quote nel portale di Azure.
Preparare il flusso per la distribuzione
Ogni flusso ha una cartella che contiene codici, richieste, definizione e altri artefatti del flusso. Se si sviluppa il flusso usando l'interfaccia utente, è possibile scaricare la cartella del flusso dalla pagina dei dettagli del flusso. Se si sviluppa il flusso usando l'interfaccia della riga di comando o l'SDK, la cartella del flusso è già disponibile.
Questo articolo usa il flusso sample "basic-chat" come esempio per distribuire su un endpoint gestito online di Azure Machine Learning.
Importante
Se si usa additional_includes nel flusso, utilizzare pf flow build --source <path-to-flow> --output <output-path> --format docker prima di tutto per ottenere una versione risolta della cartella del flusso.
Impostare l'area di lavoro predefinita
Usare i comandi seguenti per impostare l'area di lavoro e il gruppo di risorse predefiniti per l'interfaccia della riga di comando.
az account set --subscription <subscription ID>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>
Registrare il flusso come modello (facoltativo)
Nella distribuzione online è possibile fare riferimento a un modello registrato o specificare il percorso del modello (da cui caricare i file del modello) inline. Registrare il modello e specificare il nome e la versione del modello nella definizione della distribuzione. Usare il modulo model:<model_name>:<version>.
L'esempio seguente mostra una definizione di modello per un flusso di chat.
Nota
Se il flusso non è un flusso di chat, non è necessario aggiungere questi propertieselementi.
$schema: https://azuremlschemas.azureedge.net/latest/model.schema.json
name: basic-chat-model
path: ../../../../examples/flows/chat/basic-chat
description: register basic chat flow folder as a custom model
properties:
# In AuzreML studio UI, endpoint detail UI Test tab needs this property to know it's from prompt flow
azureml.promptflow.source_flow_id: basic-chat
# Following are properties only for chat flow
# endpoint detail UI Test tab needs this property to know it's a chat flow
azureml.promptflow.mode: chat
# endpoint detail UI Test tab needs this property to know which is the input column for chat flow
azureml.promptflow.chat_input: question
# endpoint detail UI Test tab needs this property to know which is the output column for chat flow
azureml.promptflow.chat_output: answer
Usare az ml model create --file model.yaml per registrare il modello nell'area di lavoro.
Definire l'endpoint
Per definire un endpoint, specificare i valori seguenti:
- Nome endpoint: Il nome dell'endpoint. Deve essere univoco nell'area Azure. Per altre informazioni sulle regole di denominazione, vedere limiti degli endpoint.
- Modalità di autenticazione: metodo di autenticazione per l'endpoint. Scegliere tra l'autenticazione basata su chiave e Azure Machine Learning l'autenticazione basata su token. Una chiave non scade, mentre un token sì. Per altre informazioni sull'autenticazione, vedere Eseguire l'autenticazione a un endpoint online. Facoltativamente, aggiungi una descrizione e tag al tuo endpoint.
- Facoltativamente, aggiungi una descrizione e dei tag all'endpoint.
- Se si vuole eseguire la distribuzione in un cluster Kubernetes (servizio Azure Kubernetes o cluster con abilitazione di Arc) collegato all'area di lavoro, è possibile distribuire il flusso come endpoint online Kubernetes.
Nell'esempio seguente viene illustrata una definizione di endpoint che usa l'identità assegnata dal sistema per impostazione predefinita.
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json
name: basic-chat-endpoint
auth_mode: key
properties:
# this property only works for system-assigned identity.
# if the deploy user has access to connection secrets,
# the endpoint system-assigned identity will be auto-assigned connection secrets reader role as well
enforce_access_to_default_secret_stores: enabled
| Chiave | Descrizione |
|---|---|
$schema |
(Facoltativo) Schema YAML. Per visualizzare tutte le opzioni disponibili nel file YAML, è possibile visualizzare lo schema nel frammento di codice precedente in un browser. |
name |
Nome dell'endpoint. |
auth_mode |
Usare key per l'autenticazione basata su chiave. Usare aml_token per l'autenticazione basata su token di Azure Machine Learning. Per ottenere il token più recente, usare il az ml online-endpoint get-credentials comando . |
property: enforce_access_to_default_secret_stores (anteprima) |
- Per impostazione predefinita, l'endpoint usa l'identità assegnata dal sistema. Questa proprietà funziona solo per l'identità assegnata dal sistema. - Questa proprietà significa che se si dispone dell'autorizzazione di lettura dei segreti di connessione, all'identità dell'endpoint assegnata dal sistema viene automaticamente assegnato il ruolo "Azure Machine Learning Workspace Connection Secrets Reader" dell'area di lavoro, in modo che l'endpoint possa accedere correttamente alle connessioni durante l'esecuzione dell'inferenza. - Per impostazione predefinita, questa proprietà è 'disabled'. |
Se si crea un endpoint online Kubernetes, è necessario specificare gli attributi seguenti:
| Chiave | Descrizione |
|---|---|
compute |
Destinazione di calcolo di Kubernetes in cui distribuire l'endpoint. |
Per altre configurazioni dell'endpoint, vedere Schema di endpoint online gestito.
Importante
Se il flusso usa connessioni di autenticazione basate su Microsoft Entra ID, indipendentemente dall'uso dell'identità assegnata dal sistema o dell'identità assegnata dall'utente, è sempre necessario concedere all'identità gestita i ruoli appropriati delle risorse corrispondenti in modo che possa effettuare chiamate API a tale risorsa. Ad esempio, se la connessione Azure OpenAI utilizza l'autenticazione basata su Microsoft Entra ID, è necessario concedere all'identità gestita dell'endpoint il ruolo di "Cognitive Services OpenAI User" o "Cognitive Services OpenAI Contributor" delle corrispondenti risorse di Azure OpenAI.
Usare l'identità assegnata dall'utente
Per impostazione predefinita, quando si crea un endpoint online, il sistema genera automaticamente un'identità gestita assegnata dal sistema. È anche possibile specificare un'identità gestita assegnata dall'utente esistente per l'endpoint.
Per usare un'identità assegnata dall'utente, specificare gli attributi seguenti nel endpoint.yaml file:
identity:
type: user_assigned
user_assigned_identities:
- resource_id: user_identity_ARM_id_place_holder
Specificare anche Client ID dell'identità assegnata dall'utente in environment_variables nel file deployment.yaml, come mostrato nell'esempio seguente. È possibile trovare Client ID in Overview dell'identità gestita nel portale di Azure.
environment_variables:
AZURE_CLIENT_ID: <client_id_of_your_user_assigned_identity>
Importante
È necessario concedere le autorizzazioni seguenti all'identità assegnata dall'utente prima di creare l'endpoint in modo che possa accedere alle risorse Azure per eseguire l'inferenza. Per altre informazioni, vedere Come concedere le autorizzazioni all'identità dell'endpoint.
| Ambito | Ruolo | Perché è necessario |
|---|---|---|
| Spazio di lavoro di Azure Machine Learning | Ruolo Lettore di segreti connessioni dell'area di lavoro di Azure Machine Learning role O un ruolo personalizzato con "Microsoft.MachineLearningServices/workspaces/connections/listsecrets/action" | Ottenere connessioni all'area di lavoro |
| Registro dei container dell'ambiente di lavoro | Pull ACR | Eseguire il pull dell'immagine del contenitore |
| Archiviazione predefinita dell'area di lavoro | Lettore di dati BLOB di archiviazione | Caricare il modello dall'archiviazione |
| (Facoltativo) area di lavoro Azure Machine Learning | Scrittore delle metriche dell'area di lavoro | Dopo aver distribuito l'endpoint, se si vuole monitorare le metriche correlate all'endpoint, ad esempio UTILIZZO CPU/GPU/Disco/Memoria, è necessario concedere questa autorizzazione all'identità. |
Definire la distribuzione
Una distribuzione è un set di risorse necessarie per ospitare il modello che esegue l'inferenza effettiva.
Nell'esempio seguente viene illustrata una definizione di distribuzione. La model sezione fa riferimento al modello di flusso registrato. È anche possibile specificare il percorso del modello di flusso in linea.
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: basic-chat-endpoint
model: azureml:basic-chat-model:1
# You can also specify model files path inline
# path: examples/flows/chat/basic-chat
environment:
image: mcr.microsoft.com/azureml/promptflow/promptflow-runtime:latest
# inference config is used to build a serving container for online deployments
inference_config:
liveness_route:
path: /health
port: 8080
readiness_route:
path: /health
port: 8080
scoring_route:
path: /score
port: 8080
instance_type: Standard_E16s_v3
instance_count: 1
environment_variables:
# for pulling connections from workspace
PRT_CONFIG_OVERRIDE: deployment.subscription_id=<subscription_id>,deployment.resource_group=<resource_group>,deployment.workspace_name=<workspace_name>,deployment.endpoint_name=<endpoint_name>,deployment.deployment_name=<deployment_name>
# (Optional) When there are multiple fields in the response, using this env variable will filter the fields to expose in the response.
# For example, if there are 2 flow outputs: "answer", "context", and I only want to have "answer" in the endpoint response, I can set this env variable to '["answer"]'.
# If you don't set this environment, by default all flow outputs will be included in the endpoint response.
# PROMPTFLOW_RESPONSE_INCLUDED_FIELDS: '["category", "evidence"]'
| Attributo | Descrizione |
|---|---|
| Nome | Nome della distribuzione. |
| Nome endpoint | Nome dell'endpoint in cui creare la distribuzione. |
| Modello | Modello da usare per la distribuzione. Questo valore può essere un riferimento a un modello versionato esistente nell'area di lavoro oppure a una specifica del modello inline. |
| Ambiente | Ambiente in cui ospitare il modello e il codice. Contiene: - image- inference_config: viene usato per compilare un contenitore di gestione per le distribuzioni online, tra cui liveness route, readiness_routee scoring_route . |
| Tipo di istanza | Dimensioni della macchina virtuale da usare per la distribuzione. Per l'elenco delle dimensioni supportate, vedere Elenco degli SKU degli endpoint online gestiti. |
| Numero di istanze | Numero di istanze da usare per la distribuzione. Basare il valore sul carico di lavoro previsto. Per la disponibilità elevata, impostare il valore su almeno 3. Il servizio riserva 20% aggiuntivi per l'esecuzione degli aggiornamenti. Per altre informazioni, vedere Limiti per gli endpoint online. |
| Variabili di ambiente | Impostare le variabili di ambiente seguenti per gli endpoint distribuiti da un flusso: - (obbligatorio): PRT_CONFIG_OVERRIDE per eseguire il pull delle connessioni dall'area di lavoro - (facoltativo): PROMPTFLOW_RESPONSE_INCLUDED_FIELDS:quando sono presenti più campi nella risposta, l'uso di questa variabile env filtra i campi da esporre nella risposta. Ad esempio, se sono presenti due output di flusso: "answer", "context" e se si vuole avere solo "answer" nella risposta dell'endpoint, è possibile impostare questa variabile env su '["answer"]'. |
Importante
Se la cartella del flusso contiene un requirements.txt file contenente le dipendenze necessarie per eseguire il flusso, seguire la procedura di distribuzione con un ambiente personalizzato per compilare l'ambiente personalizzato, incluse le dipendenze.
Se si crea una distribuzione online di Kubernetes, specificare gli attributi seguenti:
| Attributo | Descrizione |
|---|---|
| Digitare | Tipo di distribuzione. Impostare il valore su kubernetes. |
| Tipo di istanza | Tipo di istanza creato nel cluster Kubernetes da usare per la distribuzione. Rappresenta la richiesta e limita la risorsa di calcolo della distribuzione. Per altri dettagli, vedere Creare e gestire il tipo di istanza. |
Implementare l'endpoint online in Azure
Per creare l'endpoint nel cloud, eseguire il codice seguente:
az ml online-endpoint create --file endpoint.yml
Per creare la distribuzione denominata blue sotto l'endpoint, eseguire il codice seguente:
az ml online-deployment create --file blue-deployment.yml --all-traffic
Nota
Questa implementazione potrebbe richiedere più di 15 minuti.
Suggerimento
Se preferisci non bloccare la console CLI, aggiungi il flag --no-wait al comando. Tuttavia, questo flag impedisce la visualizzazione interattiva dello stato di distribuzione.
Importante
Il flag --all-traffic nel comando az ml online-deployment create precedente alloca il 100% del traffico dell'endpoint alla nuova distribuzione blue creata. Anche se questa allocazione è utile per scopi di sviluppo e test, per la produzione, potrebbe essere necessario aprire il traffico alla nuova distribuzione tramite un comando esplicito. Ad esempio, az ml online-endpoint update -n $ENDPOINT_NAME --traffic "blue=100".
Controllare lo stato dell'endpoint e della distribuzione
Per controllare lo stato dell'endpoint, eseguire il codice seguente:
az ml online-endpoint show -n basic-chat-endpoint
Per controllare lo stato della distribuzione, eseguire il codice seguente:
az ml online-deployment get-logs --name blue --endpoint basic-chat-endpoint
Richiamare l'endpoint per assegnare un punteggio ai dati usando il modello
Creare un sample-request.json file:
{
"question": "What is Azure Machine Learning?",
"chat_history": []
}
az ml online-endpoint invoke --name basic-chat-endpoint --request-file sample-request.json
È anche possibile chiamare l'endpoint usando un client HTTP, ad esempio curl:
ENDPOINT_KEY=<your-endpoint-key>
ENDPOINT_URI=<your-endpoint-uri>
curl --request POST "$ENDPOINT_URI" --header "Authorization: Bearer $ENDPOINT_KEY" --header 'Content-Type: application/json' --data '{"question": "What is Azure Machine Learning?", "chat_history": []}'
Ottieni la chiave dell'endpoint e l'URI dell'endpoint dall'area di lavoro di Azure Machine Learning in Endpoints>Consumo>Informazioni di base sul consumo.
Configurazioni avanzate
Distribuire utilizzando connessioni diverse dallo sviluppo dei flussi
È possibile che si voglia eseguire l'override delle connessioni del flusso durante la distribuzione.
Ad esempio, se il file flow.dag.yaml usa una connessione denominata my_connection, è possibile eseguirne l'override aggiungendo variabili di ambiente dello yaml di distribuzione come segue:
Opzione 1: eseguire l'override del nome della connessione
environment_variables:
my_connection: <override_connection_name>
Se si vuole eseguire l'override di un campo specifico della connessione, è possibile eseguire l'override aggiungendo variabili di ambiente con il modello <connection_name>_<field_name>di denominazione . Ad esempio, se il flusso usa una connessione denominata my_connection con una chiave di configurazione denominata chat_deployment_name, il back-end di servizio cerca di recuperare chat_deployment_name dalla variabile di ambiente 'MY_CONNECTION_CHAT_DEPLOYMENT_NAME' per impostazione predefinita. Se la variabile di ambiente non è impostata, usa il valore originale dalla definizione del flusso.
Opzione 2: eseguire l'override facendo riferimento all'asset
environment_variables:
my_connection: ${{azureml://connections/<override_connection_name>}}
Nota
È possibile fare riferimento a una connessione solo all'interno della stessa area di lavoro.
Eseguire la distribuzione con un ambiente personalizzato
Questa sezione illustra come usare un contesto di compilazione Docker per specificare l'ambiente per la distribuzione, presupponendo che si abbia una conoscenza degli ambienti Docker e Azure Machine Learning.
Nell'ambiente locale creare una cartella denominata
image_build_with_reqirementscontenente i file seguenti:|--image_build_with_reqirements | |--requirements.txt | |--DockerfileIl
requirements.txtfile, ereditato dalla cartella del flusso, tiene traccia delle dipendenze del flusso.Oggetto
Dockerfilecon contenuto simile all'esempio seguente:FROM mcr.microsoft.com/azureml/promptflow/promptflow-runtime:latest COPY ./requirements.txt . RUN pip install -r requirements.txt
Sostituire la sezione environment nel file YAML di definizione della distribuzione con il contenuto seguente:
environment: build: path: image_build_with_reqirements dockerfile_path: Dockerfile # deploy prompt flow is BYOC, so we need to specify the inference config inference_config: liveness_route: path: /health port: 8080 readiness_route: path: /health port: 8080 scoring_route: path: /score port: 8080
Usare il motore di gestione FastAPI (anteprima)
Per impostazione predefinita, la gestione del prompt flow usa il motore di gestione FLASK. A partire da prompt flow SDK versione 1.10.0, è supportato il motore di gestione basato su FastAPI. È possibile usare il fastapi motore di gestione specificando una variabile PROMPTFLOW_SERVING_ENGINEdi ambiente .
environment_variables:
PROMPTFLOW_SERVING_ENGINE=fastapi
Configurare la concorrenza durante la distribuzione
Quando distribuisci il flusso per la distribuzione online, configura due variabili di ambiente per l'esecuzione concorrente: PROMPTFLOW_WORKER_NUM e PROMPTFLOW_WORKER_THREADS. È anche necessario impostare il max_concurrent_requests_per_instance parametro .
Nell'esempio seguente viene illustrato come configurare queste impostazioni nel deployment.yaml file .
request_settings:
max_concurrent_requests_per_instance: 10
environment_variables:
PROMPTFLOW_WORKER_NUM: 4
PROMPTFLOW_WORKER_THREADS: 1
PROMPTFLOW_WORKER_NUM: Questo parametro imposta il numero di worker (processi) che vengono avviati in un container. Il valore predefinito è uguale al numero di core CPU e il valore massimo è due volte il numero di core CPU.
PROMPTFLOW_WORKER_THREADS: Questo parametro imposta il numero di thread avviati in un worker. Il valore predefinito è 1.
Nota
Quando si imposta
PROMPTFLOW_WORKER_THREADSsu un valore maggiore di 1, assicurarsi che il codice del flusso sia sicuro per quanto riguarda i thread.max_concurrent_requests_per_instance: numero massimo di richieste simultanee per istanza consentite per la distribuzione. Il valore predefinito è 10.
Il valore suggerito per
max_concurrent_requests_per_instancedipende dal tempo della richiesta:- Se il tempo della richiesta è maggiore di 200 ms, impostare
max_concurrent_requests_per_instancesuPROMPTFLOW_WORKER_NUM * PROMPTFLOW_WORKER_THREADS. - Se il tempo della richiesta è minore o uguale a 200 ms, impostare su
max_concurrent_requests_per_instance(1.5-2) * PROMPTFLOW_WORKER_NUM * PROMPTFLOW_WORKER_THREADS. Questa impostazione può migliorare il throughput complessivo consentendo ad alcune richieste di accodarsi sul server. - Se si inviano richieste tra aree, è possibile modificare la soglia da 200 ms a 1 s.
- Se il tempo della richiesta è maggiore di 200 ms, impostare
Durante l'ottimizzazione di questi parametri, monitorare le metriche seguenti per garantire prestazioni e stabilità ottimali:
- Utilizzo della CPU e della memoria dell'istanza per questa distribuzione
- Risposte non 200 (4xx, 5xx)
- Se si riceve una risposta 429, questo codice di stato indica in genere che è necessario ripristinare le impostazioni di concorrenza seguendo la guida precedente o ridimensionare la distribuzione.
- Stato di limitazione di Azure OpenAI
Monitorare gli endpoint
Raccogliere metriche generali
È possibile visualizzare le metriche generali della distribuzione online (numeri di richiesta, latenza delle richieste, byte di rete, UTILIZZO CPU/GPU/disco/memoria e altro ancora).
Raccogliere i dati di traccia e le metriche di sistema durante il tempo di inferenza
È possibile raccogliere dati di traccia e richiedere metriche specifiche per la distribuzione del flusso (consumo di token, latenza del flusso e altro ancora) durante il tempo di inferenza nell'area di lavoro collegata ad Application Insights aggiungendo una proprietà app_insights_enabled: true nel file yaml di distribuzione. Per ulteriori informazioni, vedi tracce e metriche della distribuzione di Prompt Flow.
È possibile specificare metriche e tracce specifiche di prompt flow e inviarle a un'altra istanza di Application Insights anziché a quella collegata all'area di lavoro. È possibile specificare una variabile di ambiente nel file yaml di distribuzione come indicato di seguito. È possibile trovare la stringa di connessione di Application Insights nella pagina Panoramica nel portale di Azure.
environment_variables:
APPLICATIONINSIGHTS_CONNECTION_STRING: <connection_string>
Nota
Se si imposta solo app_insights_enabled: true ma l'area di lavoro non ha Application insights collegato, la distribuzione non ha esito negativo ma non vengono raccolti i dati.
Se si specificano contemporaneamente app_insights_enabled: true e la variabile di ambiente precedente, i dati di traccia e le metriche vengono inviati all'istanza di Application Insights collegata all'area di lavoro. Per specificare un'istanza diversa di Application Insights, mantenere solo la variabile di ambiente.
Errori comuni
Problema di timeout della richiesta upstream durante l'utilizzo dell'endpoint
Questo errore si verifica in genere a causa di un timeout. Per impostazione predefinita, il request_timeout_ms valore è 5.000 millisecondi. È possibile configurarlo fino a 5 minuti, ovvero 300.000 millisecondi. Nell'esempio seguente viene illustrato come specificare il timeout della richiesta nel file YAML di distribuzione. Per altre informazioni sullo schema di distribuzione, vedere Schema di distribuzione online gestito.
request_settings:
request_timeout_ms: 300000
Importante
Il timeout di 300.000 ms funziona solo per le distribuzioni online gestite da prompt flow. Il timeout massimo per un endpoint online gestito da un prompt flow non interattivo è 180 secondi.
Per indicare che questa distribuzione proviene da prompt flow, aggiungere le proprietà del modello come segue (specifica del modello inline nel file YAML della distribuzione oppure nel file YAML separato della specifica del modello).
properties:
# indicate a deployment from prompt flow
azureml.promptflow.source_flow_id: <value>
Passaggi successivi
- Altre informazioni sullo schema di endpoint online gestito e sullo schema di distribuzione online gestito.
- Altre informazioni su come testare l'endpoint nell'interfaccia utente e monitorare l'endpoint.
- Altre informazioni su come risolvere i problemi relativi agli endpoint online gestiti.
- Risolvere i problemi relativi alle distribuzioni del prompt flow.
- Per distribuire una versione migliorata del flusso usando una strategia di implementazione sicura, vedere Implementazione sicura per gli endpoint online.
- Scopri di più sui flussi di deploy su altre piattaforme, ad esempio un servizio di sviluppo locale, un contenitore Docker, un servizio APP di Azure e così via.