AnthropicClaude文字自動完成 API - Amazon Bedrock

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AnthropicClaude文字自動完成 API

本節提供搭配文字完成 API 使用AnthropicClaude模型的推論參數和程式碼範例。

AnthropicClaude文字自動完成 API 概觀

使用文字自動完成 API,從使用者提供的提示進行單圈文字產生。例如,您可以使用文字自動完成 API 來產生部落格貼文的文字,或摘要使用者的文字輸入。

若要取得有關為AnthropicClaude模型建立提示的資訊,請參閱〈提示設計簡介〉。如果您要將現有的「文字完成」提示與搭配使用AnthropicClaude訊息 API,請參閱從文字完成移轉

支援的型號

您可以在下列AnthropicClaude模型中使用「文字完成」API。

  • 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] }

下列是必要的參數。

  • 提示 —(必填)您希望克勞德完成的提示。為了獲得適當的響應生成,您需要使用交替\n\nHuman:\n\nAssistant:對話轉彎格式化提示。例如:

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

    如需詳細資訊,請參閱AnthropicClaude文件中的提示驗證

  • max_tokens_to_sample — (必要) 在停止之前產生的記號數目上限。我們建議 4,000 個記號上限以獲得最佳效能。

    請注意,AnthropicClaude模型可能會在達到的值之前停止生成令牌max_tokens_to_sample。不同的AnthropicClaude模型對此參數有不同的最大值。如需詳細資訊,請參閱AnthropicClaude文件中的模型比較

    預設 下限 最大

    200

    0

    4096

以下是選用參數。

  • stop_ sequence — (選用) 會導致模型停止產生的序列。

    AnthropicClaude模型停止"\n\nHuman:",並且 future 可能包括其他內置停止序列。使用stop_sequences推論參數可包含其他字串,這些字串會指示模型停止產生文字。

  • 溫度-(可選)隨機性注入到響應中的量。對於分析/多項選擇,請使用更接近 0 的值,對於創意和生成任務,請使用更接近 1 的值。

    預設 下限 最大

    1

    0

    1

  • top_p —(可選)使用原子核採樣。

    在核採樣中,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 }
  • complete — 結果完成,直到並排除停止序號。

  • stop_reason — 模型停止生成響應的原因。

    • 「stop_sequence」 — 模型達到停止序列 — 由您提供stop_sequences推論參數,或是內建於模型中的停止序列。

    • 「max_token」 — 超過模型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 模型。若要使用 2.1 Anthropic Claude 版,請modelId將的值變更為anthropic.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 產生串流文字,並使用提示寫一篇關於在火星生活的 1000 字文章以及 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()))