Utilisation de l’API pour invoquer un modèle à l’aide d’une seule invite - Amazon Bedrock

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation de l’API pour invoquer un modèle à l’aide d’une seule invite

Exécutez l'inférence sur un modèle via l'API en envoyant une InvokeModelWithResponseStreamdemande InvokeModelor. Vous pouvez spécifier le type de média pour les corps de la demande et de la réponse dans les champs contentType et accept. Si vous ne spécifiez aucune valeur, la valeur par défaut pour les deux champs est application/json.

Le streaming est pris en charge pour tous les modèles de sortie de texte, à l'exception AI21 Labs Jurassic-2 des modèles. Pour vérifier si un modèle prend en charge le streaming, envoyez une ListFoundationModelsdemande GetFoundationModelor et vérifiez la valeur dans le responseStreamingSupported champ.

Spécifiez les champs suivants, en fonction du modèle que vous utilisez.

  1. modelId : utilisez l’ID du modèle ou son ARN. La méthode pour trouver le modelId ou modelArn dépend du type de modèle que vous utilisez :

    • Modèle de base : effectuez l’une des opérations suivantes.

    • Modèle personnalisé : achetez du débit provisionné pour le modèle personnalisé (pour plus d’informations, consultez Débit provisionné pour Amazon Bedrock) et recherchez l’ID ou l’ARN du modèle provisionné.

    • Modèle provisionné : si vous avez créé un débit provisionné pour un modèle de base ou personnalisé, effectuez l’une des opérations suivantes.

      • Envoyez une ListProvisionedModelThroughputsdemande et trouvez provisionedModelArn le modèle à utiliser dans la réponse.

      • Dans la console, sélectionnez un modèle dans Provisioned Throughput et recherchez l'ARN du modèle dans la section Détails du modèle.

  2. body : chaque modèle de base possède ses propres paramètres que vous définissez dans le champ body. Les paramètres d’inférence d’un modèle personnalisé ou provisionné dépendent du modèle de base à partir duquel il a été créé. Pour plus d’informations, consultez Paramètres d’inférence pour les modèles de fondation.

Exemples d’invocation de code de modèle

Les exemples suivants montrent comment exécuter l'inférence avec l'InvokeModelAPI. Pour des exemples avec différents modèles, consultez la référence des paramètres d’inférence pour le modèle souhaité (Paramètres d’inférence pour les modèles de fondation).

CLI

L'exemple suivant enregistre la réponse générée à l'histoire de deux chiens dans un fichier appelé invoke-model-output.txt.

aws bedrock-runtime invoke-model \ --model-id anthropic.claude-v2 \ --body '{"prompt": "\n\nHuman: story of two dogs\n\nAssistant:", "max_tokens_to_sample" : 300}' \ --cli-binary-format raw-in-base64-out \ invoke-model-output.txt
Python

L’exemple suivant renvoie une réponse générée à l’invite explain black holes to 8th graders (expliquer les trous noirs aux élèves de quatrième).

import boto3 import json brt = boto3.client(service_name='bedrock-runtime') body = json.dumps({ "prompt": "\n\nHuman: explain black holes to 8th graders\n\nAssistant:", "max_tokens_to_sample": 300, "temperature": 0.1, "top_p": 0.9, }) modelId = 'anthropic.claude-v2' accept = 'application/json' contentType = 'application/json' response = brt.invoke_model(body=body, modelId=modelId, accept=accept, contentType=contentType) response_body = json.loads(response.get('body').read()) # text print(response_body.get('completion'))

Exemple d’invocation de modèle d’appel avec code de streaming

Note

Le AWS CLI ne prend pas en charge le streaming.

L'exemple suivant montre comment utiliser l'InvokeModelWithResponseStreamAPI pour générer du texte en streaming avec Python à l'aide de l'invite Rédiger un essai pour vivre sur Mars en 1000 mots.

import boto3 import json brt = boto3.client(service_name='bedrock-runtime') body = json.dumps({ 'prompt': '\n\nHuman: write an essay for living on mars in 1000 words\n\nAssistant:', 'max_tokens_to_sample': 4000 }) response = brt.invoke_model_with_response_stream( modelId='anthropic.claude-v2', body=body ) stream = response.get('body') if stream: for event in stream: chunk = event.get('chunk') if chunk: print(json.loads(chunk.get('bytes').decode()))