AnthropicClaude文字补全 API - Amazon Bedrock

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

AnthropicClaude文字补全 API

本节提供了通过文本补全 API 使用AnthropicClaude模型的推理参数和代码示例。

AnthropicClaude文字补全 API 概述

使用文本完成 API 根据用户提供的提示单圈生成文本。例如,您可以使用文本补全 API 为博客文章生成文本或汇总用户输入的文本。

有关为AnthropicClaude模型创建提示的信息,请参阅提示设计简介。如果要在中使用现有的文本完成提示AnthropicClaude消息 API,请参阅从文本完成迁移

支持的型号

您可以将文本补全 API 与以下AnthropicClaude模型配合使用。

  • AnthropicClaudeInstantv1.2

  • AnthropicClaudev2

  • AnthropicClaudev2.1

请求和响应

请求正文在请求body字段中传递给InvokeModelInvokeModelWithResponseStream

欲了解更多信息,请参阅AnthropicClaude文档中的 https://docs.anthropic.com/claude/reference/complete_post

Request

AnthropicClaude具有以下用于文本完成推理调用的推理参数。

{ "prompt": "\n\nHuman:<prompt>\n\nAssistant:", "temperature": float, "top_p": float, "top_k": int, "max_tokens_to_sample": int, "stop_sequences": [string] }

以下是必要参数。

  • p rompt —(必填)你希望 Claude 完成的提示。为了正确生成响应,您需要使用交替\n\nHuman:\n\nAssistant:对话回合来格式化提示。例如:

    "\n\nHuman: {userQuestion}\n\nAssistant:"

    有关更多信息,请参阅AnthropicClaude文档中的提示验证

  • max_tokens_to_sample —(必填)停止前要生成的最大代币数量。为了获得最佳性能,我们建议限制为 4000 个令牌。

    请注意,AnthropicClaude模型可能会在达到的值之前停止生成代币max_tokens_to_sample。不同的AnthropicClaude模型对此参数有不同的最大值。有关更多信息,请参阅AnthropicClaude文档中的模型比较

    默认 最低 最高

    200

    0

    4096

以下是可选参数。

  • stop_seq uences —(可选)将导致模型停止生成的序列。

    AnthropicClaude模型会停止开启"\n\nHuman:",并且将来可能会包括其他内置的停止序列。使用stop_sequences推理参数包括其他字符串,这些字符串将向模型发出停止生成文本的信号。

  • 温度-(可选)注入响应的随机性量。对于分析/多项选择,使用接近 0 的值,对于创造性和生成性任务,使用接近 1 的值。

    默认 最低 最高

    1

    0

    1

  • top_p —(可选)使用原子核采样。

    在 nucleus 采样中,按概率递减顺序AnthropicClaude计算每个后续代币的所有选项的累积分布,并在达到由指定的特定概率时将其切断。top_p您应该更改其中一个temperaturetop_p,但不能同时更改两个。

    默认 最低 最高

    1

    0

    1

  • top_k —(可选)仅从每个后续令牌的前 K 个选项中取样。

    用于top_k移除长尾低概率响应。

    默认 最低 最高

    250

    0

    500

Response

该AnthropicClaude模型返回文本完成推理调用的以下字段。

{ "completion": string, "stop_reason": string, "stop": string }
  • co mpletion — 不包括停止序列的结果完成。

  • stop_ reason — 模型停止生成响应的原因。

    • “stop_sequence” — 模型到达了停止序列——要么由你提供的stop_sequences推理参数,要么是模型中内置的停止序列。

    • “max_tokens”-超出模型的代币数量max_tokens_to_sample或模型的最大代币数量。

  • stop — 如果指定stop_sequences推理参数,则stop包含指示模型停止生成文本的停止序列。例如,holes在以下响应中。

    { "completion": " Here is a simple explanation of black ", "stop_reason": "stop_sequence", "stop": "holes" }

    如果未指定stop_sequences,则的值stop为空。

代码示例

这些示例显示了如何使用按需吞吐量调用 AnthropicClaudeV2 模型。要使用AnthropicClaude版本 2.1,请将的值更改modelIdanthropic.claude-v2:1

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

以下示例展示如何在 Python 中使用提示 write an essay for living on mars in 1000 words 和 Anthropic Claude V2 模型生成流式传输文本:

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