Anthropic Claude 文字补全 API - Amazon Bedrock

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

Anthropic Claude 文字补全 API

本节提供用于使用的推理参数和代码示例 Anthropic Claude 带有文本补全API的模型。

Anthropic Claude 文字补全概述 API

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

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

支持的型号

您可以将文本补全与以下内容API一起使用 Anthropic Claude 模型。

  • Anthropic Claude Instant v1.2

  • Anthropic Claude v2

  • Anthropic Claude v2.1

请求和响应

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

有关更多信息,请参阅《》中的 reference https://docs.anthropic.com/claude//complete_post Anthropic Claude 文档中)。

Request

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

{ "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:"

    有关更多信息,请参阅中的提示验证 Anthropic Claude 文档中)。

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

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

    默认 最低 最高

    200

    0

    4096

以下是可选参数。

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

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

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

    默认 最低 最高

    1

    0

    1

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

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

    默认 最低 最高

    1

    0

    1

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

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

    默认 最低 最高

    250

    0

    500

Response

这些区域有:Anthropic Claude model 返回文本完成推理调用的以下字段。

{ "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为空。

代码示例

这些示例说明了如何调用 Anthropic Claude 具有按需吞吐量的 V2 模型。要将 Anthropic Claude 版本 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()))