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

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

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

通过发送InvokeModelInvokeModelWithResponseStream请求对模型API进行推理。要检查模型是否支持流式传输,请发送GetFoundationModelListFoundationModels请求并检查responseStreamingSupported字段中的值。

以下字段是必填字段:

字段 应用场景
modelId 指定要使用的模型、推理配置文件或提示管理中的提示。要了解如何查找此值,请参阅 使用提交提示并生成回复 API
body 为模型指定推理参数。要查看不同模型的推理参数,请参阅 基础模型的推理请求参数和响应字段。如果您在modelId字段中指定提示管理中的提示,请省略此字段(如果包含该字段,则会忽略该字段)。

以下字段是可选字段:

字段 应用场景
accept 为请求正文指定媒体类型。有关更多信息,请参阅 “媒体类型Swagger 网站
contentType 为响应正文指定媒体类型。有关更多信息,请参阅 “媒体类型Swagger 网站
explicitPromptCaching 指定是启用还是禁用提示缓存。有关更多信息,请参阅 提示缓存以加快模型推断速度
guardrailIdentifier 指定要应用于提示和响应的防护机制。有关更多信息,请参阅 测试防护机制
guardrailVersion 指定要应用于提示和响应的防护机制。有关更多信息,请参阅 测试防护机制
trace 指定是否返回您指定的防护机制的轨迹。有关更多信息,请参阅 测试防护机制

调用模型代码示例

以下示例说明如何使用运行推理。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 通过提示生成串流文本write an essay for living on mars in 1000 wordsInvokeModelWithResponseStreamAPI

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