使用以下命令提交单个提示 InvokeModel - Amazon Bedrock

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用以下命令提交单个提示 InvokeModel

通过发送InvokeModelInvokeModelWithResponseStream请求对模型API进行推理。您可以在 contentTypeaccept 字段中为请求和响应正文指定媒体类型。如果您不指定值,这两个字段的默认值为 application/json

所有文本输出模型都支持流式传输,除了 AI21 Labs Jurassic-2 模型。要检查模型是否支持流式传输,请发送GetFoundationModelListFoundationModels请求并检查responseStreamingSupported字段中的值。

指定以下字段,具体取决于您使用的模型。

  1. modelId— 使用模型或吞吐量的 ID 或 Amazon 资源名称 (ARN)。查找 ID 的方法或ARN取决于您使用的模型类型或吞吐量:

    • 基本模型-执行以下操作之一:

      • 要查看 Amazon Bedrock 支持的所有基本型号的型号列表,请参阅Amazon Bedrock 基本模型IDs(按需吞吐量) 。IDs

      • 发送ListFoundationModels请求并找到要在响应中使用的模型的modelIdmodelArn

      • 在 Amazon Bedrock 控制台中,在 “提供商” 中选择一个模型,然后在API请求示例modelId中找到该模型。

    • 推理配置文件-执行以下操作之一:

      • 发送ListInferenceProfiles请求并找到要在inferenceProfileArn响应中使用的模型。

      • 在 Amazon Bedrock 控制台中,从左侧导航窗格中选择跨区域推理,然后在推理配置文件ARN部分找到推理配置文件的 ID 或。

    • 预配置吞吐量 — 如果您已为基本模型或自定义模型创建了预配置吞吐量,请执行以下操作之一:

      • 发送ListProvisionedModelThroughputs请求并找到要在provisionedModelArn响应中使用的模型。

      • 在 Amazon Bedrock 控制台中,从左侧导航窗格中选择预配置吞吐量,然后在预配置吞吐量部分中选择预配置吞吐量。然后,在模型详细信息部分中找到预配置吞吐量的 ID 或ARN。

    • 自定义模型-购买自定义模型的预配置吞吐量(有关更多信息,请参阅使用 Amazon Bedrock 中的预配置吞吐量增加模型调用容量),然后找到预配置模型ARN的模型 ID 或。

  2. body – 每个基础模型都有自己的推理参数,这些参数在 body 字段中设置。自定义模型或预调配模型的推理参数取决于创建模型时所依据的基础模型。有关更多信息,请参阅 根基模型的推理参数

调用模型代码示例

以下示例说明如何使用运行推理。InvokeModelAPI有关不同模型的示例,请参阅所需模型的推理参数参考(根基模型的推理参数)。

CLI

以下示例将生成的响应保存到提示中 story of two dogs 到一个名为的文件 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

以下示例返回对提示的生成的响应 explain black holes to 8th graders.

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'))

通过流式传输调用模型代码示例

注意

这些区域有: AWS CLI 不支持流式传输。

以下示例说明如何使用 Python 通过提示符生成流式文本 InvokeModelWithResponseStreamAPI write an essay for living on mars in 1000 words.

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()))