Een stroom implementeren naar een online-eindpunt voor realtime deductie met CLI
In dit artikel leert u hoe u uw stroom implementeert op een beheerd online-eindpunt of een kubernetes online-eindpunt voor gebruik in realtime deductie met Azure Machine Learning v2 CLI.
Voordat u begint, controleert u of u de stroom goed hebt getest en bent u ervan overtuigd dat deze gereed is om te worden geïmplementeerd in productie. Zie uw stroom testen voor meer informatie over het testen van uw stroom. Na het testen van uw stroom leert u hoe u een beheerd online-eindpunt en -implementatie maakt en hoe u het eindpunt gebruikt voor realtime deductie.
- In dit artikel wordt beschreven hoe u de CLI-ervaring gebruikt.
- De Python SDK wordt niet behandeld in dit artikel. Bekijk in plaats daarvan het GitHub-voorbeeldnotebook. Als u de Python SDK wilt gebruiken, moet u beschikken over de Python SDK v2 voor Azure Machine Learning. Zie De Python SDK v2 voor Azure Machine Learning installeren voor meer informatie.
Belangrijk
Items die in dit artikel zijn gemarkeerd (preview) zijn momenteel beschikbaar als openbare preview. De preview-versie wordt aangeboden zonder Service Level Agreement en wordt niet aanbevolen voor productieworkloads. Misschien worden bepaalde functies niet ondersteund of zijn de mogelijkheden ervan beperkt. Zie Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews voor meer informatie.
Vereisten
- De Azure CLI en de Azure Machine Learning-extensie voor de Azure CLI. Zie De CLI (v2) installeren, instellen en gebruiken voor meer informatie.
- Een Azure Machine Learning-werkruimte. Als u er nog geen hebt, gebruikt u de stappen in de quickstart: artikel Werkruimtebronnen maken om er een te maken.
- Op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) wordt gebruikt om toegang te verlenen tot bewerkingen in Azure Machine Learning. Als u de stappen in dit artikel wilt uitvoeren, moet aan uw gebruikersaccount de rol eigenaar of inzender voor de Azure Machine Learning-werkruimte zijn toegewezen, of een aangepaste rol die 'Microsoft.MachineLearningServices/workspaces/onlineEndpoints/' toestaat. Als u studio gebruikt om online-eindpunten/implementaties te maken/beheren, hebt u een extra machtiging Microsoft.Resources/deployments/write nodig van de eigenaar van de resourcegroep. Zie Toegang tot een Azure Machine Learning-werkruimte beheren voor meer informatie.
Notitie
Het beheerde online-eindpunt ondersteunt alleen het beheerde virtuele netwerk. Als uw werkruimte zich in een aangepast vnet bevindt, kunt u implementeren naar het online-eindpunt van Kubernetes of implementeren op andere platforms, zoals Docker.
Quotumtoewijzing voor virtuele machines voor implementatie
Voor beheerde online-eindpunten reserveert Azure Machine Learning 20% van uw rekenresources voor het uitvoeren van upgrades. Als u daarom een bepaald aantal exemplaren in een implementatie aanvraagt, moet u een quotum hebben dat ceil(1.2 * number of instances requested for deployment) * number of cores for the VM SKU
beschikbaar is om te voorkomen dat er een fout optreedt. Als u bijvoorbeeld 10 exemplaren van een Standard_DS3_v2 VM aanvraagt (die wordt geleverd met vier kernen) in een implementatie, moet u een quotum hebben voor 48 kernen (12 exemplaren van vier kernen) beschikbaar. Zie Uw gebruiks- en quotaverhogingen weergeven in Azure Portal om uw gebruik en quota te bekijken.
De stroom voorbereiden voor implementatie
Elke stroom heeft een map met codes/prompts, definities en andere artefacten van de stroom. Als u uw stroom hebt ontwikkeld met de gebruikersinterface, kunt u de stroommap downloaden vanaf de pagina met stroomdetails. Als u uw stroom hebt ontwikkeld met CLI of SDK, moet u de stroommap al hebben.
In dit artikel wordt de voorbeeldstroom 'basic-chat' gebruikt als voorbeeld voor implementatie naar een beheerd online-eindpunt van Azure Machine Learning.
Belangrijk
Als u in uw stroom hebt gebruikt additional_includes
, moet u eerst een pf flow build --source <path-to-flow> --output <output-path> --format docker
opgeloste versie van de stroommap ophalen.
Standaardwerkruimte instellen
Gebruik de volgende opdrachten om de standaardwerkruimte en resourcegroep voor de CLI in te stellen.
az account set --subscription <subscription ID>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>
De stroom registreren als een model (optioneel)
In de onlineimplementatie kunt u inline verwijzen naar een geregistreerd model of het modelpad opgeven (waar u de modelbestanden vandaan wilt uploaden). Het is raadzaam om het model te registreren en de modelnaam en versie op te geven in de implementatiedefinitie. Gebruik het formulier model:<model_name>:<version>
.
Hieronder volgt een voorbeeld van een modeldefinitie voor een chatstroom.
Notitie
Als uw stroom geen chatstroom is, hoeft u deze properties
niet toe te voegen.
$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
Gebruik az ml model create --file model.yaml
dit om het model te registreren bij uw werkruimte.
Het eindpunt definiëren
Als u een eindpunt wilt definiëren, moet u het volgende opgeven:
- Eindpuntnaam: de naam van het eindpunt. Deze moet uniek zijn in de Azure-regio. Zie eindpuntlimieten voor meer informatie over de naamgevingsregels.
- Verificatiemodus: de verificatiemethode voor het eindpunt. Kies tussen verificatie op basis van sleutels en verificatie op basis van azure Machine Learning-tokens. Een sleutel verloopt niet, maar een token verloopt wel. Zie Verifiëren bij een online-eindpunt voor meer informatie over verificatie. U kunt eventueel een beschrijving en tags toevoegen aan uw eindpunt.
- U kunt eventueel een beschrijving en tags toevoegen aan uw eindpunt.
- Als u wilt implementeren in een Kubernetes-cluster (AKS- of Arc-cluster) dat is gekoppeld aan uw werkruimte, kunt u de stroom implementeren als een Kubernetes Online-eindpunt.
Hieronder volgt een voorbeeld van een eindpuntdefinitie die standaard gebruikmaakt van door het systeem toegewezen identiteit.
$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
Toets | Beschrijving |
---|---|
$schema |
(Optioneel) Het YAML-schema. Als u alle beschikbare opties in het YAML-bestand wilt zien, kunt u het schema bekijken in het voorgaande codefragment in een browser. |
name |
De naam van het eindpunt. |
auth_mode |
Gebruiken key voor verificatie op basis van sleutels. Gebruiken aml_token voor verificatie op basis van tokens op basis van Azure Machine Learning. Gebruik de az ml online-endpoint get-credentials opdracht om het meest recente token op te halen. |
property: enforce_access_to_default_secret_stores (preview) |
- Het eindpunt maakt standaard gebruik van een door het systeem ondertekende identiteit. Deze eigenschap werkt alleen voor door het systeem toegewezen identiteit. - Deze eigenschap betekent dat als u de machtiging voor de lezer van verbindingsgeheimen hebt, de door het eindpuntsysteem toegewezen identiteit automatisch wordt toegewezen aan de rol van lezer van Azure Machine Learning-werkruimteverbindingsgeheimen van de werkruimte, zodat het eindpunt toegang heeft tot verbindingen correct bij het uitvoeren van deductie. - Deze eigenschap is standaard uitgeschakeld. |
Als u een Online-eindpunt voor Kubernetes maakt, moet u de volgende aanvullende kenmerken opgeven:
Toets | Beschrijving |
---|---|
compute |
Het Kubernetes-rekendoel om het eindpunt te implementeren. |
Zie het beheerde online-eindpuntschema voor meer configuraties van eindpunten.
Belangrijk
Als uw stroom gebruikmaakt van verificatieverbindingen op basis van Microsoft Entra ID, ongeacht of u een door het systeem toegewezen identiteit of door de gebruiker toegewezen identiteit gebruikt, moet u altijd de beheerde identiteit de juiste rollen van de bijbehorende resources verlenen, zodat deze API-aanroepen naar die resource kan uitvoeren. Als uw Azure OpenAI-verbinding bijvoorbeeld gebruikmaakt van verificatie op basis van Microsoft Entra ID, moet u de rol Cognitive Services OpenAI-gebruiker of Cognitive Services OpenAI-inzender verlenen aan uw eindpunt van de bijbehorende Azure OpenAI-resources.
Door de gebruiker toegewezen identiteit gebruiken
Wanneer u een online-eindpunt maakt, wordt standaard automatisch een door het systeem toegewezen beheerde identiteit voor u gegenereerd. U kunt ook een bestaande door de gebruiker toegewezen beheerde identiteit voor het eindpunt opgeven.
Als u een door de gebruiker toegewezen identiteit wilt gebruiken, kunt u de volgende aanvullende kenmerken opgeven in het endpoint.yaml
:
identity:
type: user_assigned
user_assigned_identities:
- resource_id: user_identity_ARM_id_place_holder
Bovendien moet u ook de door de Client ID
gebruiker toegewezen identiteit als environment_variables
deployment.yaml
volgt opgeven. U vindt de Client ID
identiteit in de Overview
beheerde identiteit in Azure Portal.
environment_variables:
AZURE_CLIENT_ID: <client_id_of_your_user_assigned_identity>
Belangrijk
U moet de volgende machtigingen verlenen aan de door de gebruiker toegewezen identiteit voordat u het eindpunt maakt, zodat het toegang heeft tot de Azure-resources om deductie uit te voeren. Meer informatie over het verlenen van machtigingen aan uw eindpuntidentiteit.
Bereik | Rol | Waarom dit nodig is |
---|---|---|
Azure Machine Learning-werkruimte | Azure Machine Learning Workspace Connection Secrets Reader-rol OF een aangepaste rol met daarin 'Microsoft.MachineLearningServices/workspaces/connections/listsecrets/action' | Werkruimteverbindingen ophalen |
Werkruimtecontainerregister | ACR pull | Containerinstallatiekopie ophalen |
Standaardopslag voor werkruimte | Lezer voor opslagblobgegevens | Model laden vanuit opslag |
(Optioneel) Azure Machine Learning-werkruimte | Schrijver van metrische gegevens voor werkruimten | Nadat u het eindpunt hebt geïmplementeerd, moet u deze machtiging verlenen aan de identiteit als u de eindpuntgerelateerde metrische gegevens wilt bewaken, zoals CPU/GPU/schijf/geheugengebruik. |
De implementatie definiëren
Een implementatie is een set resources die vereist is voor het hosten van het model dat de werkelijke deductie uitvoert.
Hieronder volgt een voorbeeld van een implementatiedefinitie, waarin de model
sectie verwijst naar het geregistreerde stroommodel. U kunt ook het pad van het stroommodel in lijn opgeven.
$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"]'
Kenmerk | Beschrijving |
---|---|
Naam | De naam van de implementatie. |
Naam Eeindpunt | De naam van het eindpunt voor het maken van de implementatie onder. |
Modelleren | Het model dat moet worden gebruikt voor de implementatie. Deze waarde kan een verwijzing zijn naar een bestaand versiemodel in de werkruimte of een inline modelspecificatie. |
Omgeving | De omgeving voor het hosten van het model en de code. Het bevat: - image - inference_config : wordt gebruikt voor het bouwen van een servercontainer voor online implementaties, waaronder liveness route , readiness_route en scoring_route . |
Type instantie | De VM-grootte die moet worden gebruikt voor de implementatie. Zie de lijst met beheerde online-eindpunten voor SKU's voor de lijst met ondersteunde grootten. |
Aantal exemplaren | Het aantal exemplaren dat moet worden gebruikt voor de implementatie. Baseer de waarde op de workload die u verwacht. Voor hoge beschikbaarheid raden we u aan om de waarde ten minste 3 in te stellen op . We reserveren een extra 20% voor het uitvoeren van upgrades. Zie limieten voor online-eindpunten voor meer informatie. |
Omgevingsvariabelen | De volgende omgevingsvariabelen moeten worden ingesteld voor eindpunten die zijn geïmplementeerd vanuit een stroom: - (vereist) PRT_CONFIG_OVERRIDE : voor het ophalen van verbindingen vanuit de werkruimte - (optioneel): PROMPTFLOW_RESPONSE_INCLUDED_FIELDS: Wanneer er meerdere velden in het antwoord zijn, worden met deze env-variabele de velden gefilterd die in het antwoord worden weergegeven. Als er bijvoorbeeld twee stroomuitvoer is: 'answer', 'context', en als u alleen antwoord wilt hebben in het eindpuntantwoord, kunt u deze env-variabele instellen op ["answer"]. |
Belangrijk
Als uw stroommap een requirements.txt
bestand bevat dat de afhankelijkheden bevat die nodig zijn om de stroom uit te voeren, moet u de implementatie volgen met een aangepaste omgevingsstappen om de aangepaste omgeving te bouwen, inclusief de afhankelijkheden.
Als u een online-implementatie van Kubernetes maakt, moet u de volgende aanvullende kenmerken opgeven:
Kenmerk | Beschrijving |
---|---|
Type | Het type implementatie. Stel de waarde in op kubernetes . |
Type instantie | Het exemplaartype dat u hebt gemaakt in uw Kubernetes-cluster dat u voor de implementatie wilt gebruiken, vertegenwoordigt de rekenresource van de aanvraag/limiet van de implementatie. Zie Exemplaartype maken en beheren voor meer informatie. |
Uw online-eindpunt implementeren in Azure
Voer de volgende code uit om het eindpunt in de cloud te maken:
az ml online-endpoint create --file endpoint.yml
Voer de volgende code uit om de implementatie te maken met de naam blue
onder het eindpunt:
az ml online-deployment create --file blue-deployment.yml --all-traffic
Notitie
Deze implementatie kan langer dan 15 minuten duren.
Tip
Als u de CLI-console liever niet blokkeert, kunt u de vlag --no-wait
toevoegen aan de opdracht. Hierdoor wordt de interactieve weergave van de implementatiestatus echter gestopt.
Belangrijk
Met --all-traffic
de vlag in het bovenstaande az ml online-deployment create
wordt 100% van het eindpuntverkeer toegewezen aan de zojuist gemaakte blauwe implementatie. Hoewel dit handig is voor ontwikkelings- en testdoeleinden, kunt u voor productie verkeer naar de nieuwe implementatie openen via een expliciete opdracht. Bijvoorbeeld: az ml online-endpoint update -n $ENDPOINT_NAME --traffic "blue=100"
.
De status van het eindpunt en de implementatie controleren
Voer de volgende code uit om de status van het eindpunt te controleren:
az ml online-endpoint show -n basic-chat-endpoint
Voer de volgende code uit om de status van de implementatie te controleren:
az ml online-deployment get-logs --name blue --endpoint basic-chat-endpoint
Het eindpunt aanroepen om gegevens te scoren met behulp van uw model
U kunt als volgt een sample-request.json-bestand maken:
{
"question": "What is Azure Machine Learning?",
"chat_history": []
}
az ml online-endpoint invoke --name basic-chat-endpoint --request-file sample-request.json
U kunt deze ook aanroepen met een HTTP-client, bijvoorbeeld met 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": []}'
U kunt uw eindpuntsleutel en uw eindpunt-URI ophalen uit de Azure Machine Learning-werkruimte in Eindpunten>>verbruiken basisverbruiksgegevens.
Geavanceerd configuratie
Implementeren met verschillende verbindingen van stroomontwikkeling
Mogelijk wilt u verbindingen van de stroom overschrijven tijdens de implementatie.
Als uw flow.dag.yaml-bestand bijvoorbeeld gebruikmaakt van een verbinding met de naam my_connection
, kunt u dit overschrijven door omgevingsvariabelen van de implementatie-yaml als volgt toe te voegen:
Optie 1: verbindingsnaam overschrijven
environment_variables:
my_connection: <override_connection_name>
Als u een specifiek veld van de verbinding wilt overschrijven, kunt u dit overschrijven door omgevingsvariabelen toe te voegen met een naamgevingspatroon <connection_name>_<field_name>
. Als uw stroom bijvoorbeeld gebruikmaakt van een verbinding met de naam my_connection
van een configuratiesleutel chat_deployment_name
, probeert de ondersteunende back-end standaard op te halen chat_deployment_name
uit de omgevingsvariabele 'MY_CONNECTION_CHAT_DEPLOYMENT_NAME'. Als de omgevingsvariabele niet is ingesteld, wordt de oorspronkelijke waarde uit de stroomdefinitie gebruikt.
Optie 2: overschrijven door te verwijzen naar asset
environment_variables:
my_connection: ${{azureml://connections/<override_connection_name>}}
Notitie
U kunt alleen verwijzen naar een verbinding binnen dezelfde werkruimte.
Implementeren met een aangepaste omgeving
In deze sectie ziet u hoe u een docker-buildcontext gebruikt om de omgeving voor uw implementatie op te geven, ervan uitgaande dat u kennis hebt van Docker - en Azure Machine Learning-omgevingen.
Maak in uw lokale omgeving een map met de naam
image_build_with_reqirements
de volgende bestanden:|--image_build_with_reqirements | |--requirements.txt | |--Dockerfile
Deze
requirements.txt
moet worden overgenomen uit de stroommap, die is gebruikt om de afhankelijkheden van de stroom bij te houden.De
Dockerfile
inhoud is als volgt:FROM mcr.microsoft.com/azureml/promptflow/promptflow-runtime:latest COPY ./requirements.txt . RUN pip install -r requirements.txt
vervang de omgevingssectie in het yaml-bestand voor de implementatiedefinitie door de volgende inhoud:
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
FastAPI-serverengine gebruiken (preview)
Standaard wordt gebruikgemaakt van flask-serverengine voor promptstromen. Vanaf prompt flow SDK versie 1.10.0 wordt de fastAPI-serverengine ondersteund. U kunt de service-engine gebruiken fastapi
door een omgevingsvariabele PROMPTFLOW_SERVING_ENGINE
op te geven.
environment_variables:
PROMPTFLOW_SERVING_ENGINE=fastapi
Gelijktijdigheid configureren voor implementatie
Bij het implementeren van uw stroom naar onlineimplementatie zijn er twee omgevingsvariabelen die u configureert voor gelijktijdigheid: PROMPTFLOW_WORKER_NUM
en PROMPTFLOW_WORKER_THREADS
. Bovendien moet u ook de max_concurrent_requests_per_instance
parameter instellen.
Hieronder ziet u een voorbeeld van het configureren in het deployment.yaml
bestand.
request_settings:
max_concurrent_requests_per_instance: 10
environment_variables:
PROMPTFLOW_WORKER_NUM: 4
PROMPTFLOW_WORKER_THREADS: 1
PROMPTFLOW_WORKER_NUM: Met deze parameter wordt het aantal werkrollen (processen) bepaald dat in één container wordt gestart. De standaardwaarde is gelijk aan het aantal CPU-kernen en de maximumwaarde is tweemaal het aantal CPU-kernen.
PROMPTFLOW_WORKER_THREADS: Met deze parameter wordt het aantal threads bepaald dat in één werkrol wordt gestart. De standaardwaarde is 1.
Notitie
Wanneer u een
PROMPTFLOW_WORKER_THREADS
waarde instelt die groter is dan 1, moet u ervoor zorgen dat uw stroomcode thread-safe is.max_concurrent_requests_per_instance: het maximum aantal gelijktijdige aanvragen per exemplaar dat is toegestaan voor de implementatie. De standaardwaarde is 10.
De voorgestelde waarde is
max_concurrent_requests_per_instance
afhankelijk van uw aanvraagtijd:- Als uw aanvraagtijd groter is dan 200 ms, stelt u deze in
max_concurrent_requests_per_instance
opPROMPTFLOW_WORKER_NUM * PROMPTFLOW_WORKER_THREADS
. - Als uw aanvraagtijd kleiner is dan of gelijk is aan 200 ms, stelt u deze in
max_concurrent_requests_per_instance
op(1.5-2) * PROMPTFLOW_WORKER_NUM * PROMPTFLOW_WORKER_THREADS
. Dit kan de totale doorvoer verbeteren door toe te staan dat sommige aanvragen in de wachtrij worden geplaatst aan de serverzijde. - Als u aanvragen voor meerdere regio's verzendt, kunt u de drempelwaarde wijzigen van 200 ms in 1 s.
- Als uw aanvraagtijd groter is dan 200 ms, stelt u deze in
Tijdens het afstemmen van bovenstaande parameters moet u de volgende metrische gegevens bewaken om optimale prestaties en stabiliteit te garanderen:
- CPU-/geheugengebruik van het exemplaar van deze implementatie
- Niet-200 antwoorden (4xx, 5xx)
- Als u een 429-antwoord ontvangt, geeft dit meestal aan dat u de gelijktijdigheidsinstellingen moet aanpassen aan de hand van de bovenstaande handleiding of de implementatie moet schalen.
- Beperkingsstatus van Azure OpenAI
Eindpunten bewaken
Algemene metrische gegevens verzamelen
U kunt algemene metrische gegevens van onlineimplementatie bekijken (aanvraagnummers, latentie van aanvragen, netwerkbytes, CPU/GPU/schijf/geheugengebruik en meer).
Traceringsgegevens en metrische systeemgegevens verzamelen tijdens deductietijd
U kunt ook traceringsgegevens verzamelen en specifieke metrische gegevens over de implementatie van stromen (tokenverbruik, stroomlatentie, enzovoort) verzamelen tijdens deductietijd naar gekoppelde Application Insights in de werkruimte door een eigenschap app_insights_enabled: true
toe te voegen in het yaml-bestand van de implementatie. Meer informatie over tracering en metrische gegevens van promptstroomimplementatie.
Promptstroomspecifieke metrische gegevens en tracering kunnen worden opgegeven voor andere Application Insights dan de gekoppelde werkruimte. U kunt als volgt een omgevingsvariabele opgeven in het yaml-bestand voor de implementatie. U vindt de verbindingsreeks van uw Application Insights op de pagina Overzicht in Azure Portal.
environment_variables:
APPLICATIONINSIGHTS_CONNECTION_STRING: <connection_string>
Notitie
Als u alleen instelt app_insights_enabled: true
maar uw werkruimte geen gekoppelde Application Insights heeft, mislukt uw implementatie niet, maar worden er geen gegevens verzameld.
Als u zowel app_insights_enabled: true
als de bovenstaande omgevingsvariabele tegelijk opgeeft, worden de traceringsgegevens en metrische gegevens verzonden naar gekoppelde Application Insights-werkruimte. Dus als u een andere Application Insights wilt opgeven, hoeft u alleen de omgevingsvariabele te behouden.
Algemene fouten
Time-outprobleem voor upstream-aanvragen bij gebruik van het eindpunt
Deze fout wordt meestal veroorzaakt door een time-out. request_timeout_ms
De standaardwaarde is 5000. U kunt maximaal 5 minuten opgeven, wat 300.000 ms is. Hieronder ziet u een voorbeeld van het opgeven van een time-out voor aanvragen in het yaml-implementatiebestand. Meer informatie over het implementatieschema vindt u hier.
request_settings:
request_timeout_ms: 300000
Notitie
Time-out van 300.000 ms werkt alleen voor online implementaties vanuit promptstroom. U moet ervoor zorgen dat u eigenschappen voor uw model hebt toegevoegd zoals hieronder (inline modelspecificatie in de yaml-implementatie of yaml voor zelfstandige modelspecificatie) om aan te geven dat dit een implementatie is van de promptstroom.
properties:
# indicate a deployment from prompt flow
azureml.promptflow.source_flow_id: <value>
Volgende stappen
- Meer informatie over het beheerde online-eindpuntschema en het beheerde online-implementatieschema.
- Meer informatie over het testen van het eindpunt in de gebruikersinterface en het bewaken van het eindpunt.
- Meer informatie over het oplossen van problemen met beheerde online-eindpunten.
- Problemen met promptstroomimplementaties oplossen.
- Zodra u uw stroom hebt verbeterd en u de verbeterde versie met een veilige implementatiestrategie wilt implementeren, raadpleegt u Veilige implementatie voor online-eindpunten.
- Meer informatie over het implementeren van stromen naar andere platforms, zoals een lokale ontwikkelingsservice, Docker-container, Azure APP-service, enzovoort.