Delen via


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 propertiesniet 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_routeen 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 3in 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.

  1. 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
      
  2. 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_ENGINEop 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 op PROMPTFLOW_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.

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