API Text Completions do Claude da Anthropic - Amazon Bedrock

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

API Text Completions do Claude da Anthropic

Esta seção fornece parâmetros de inferência e exemplos de código para usar os modelos Claude da Anthropic com a API Text Completions.

Visão geral da API Text Completions do Claude da Anthropic

Use a API Text Completion para gerar texto de um único turno em um prompt fornecido pelo usuário. Por exemplo, é possível usar a API Text Completion para gerar texto para uma publicação de blog ou para resumir a entrada de texto de um usuário.

Para obter informações sobre a criação de prompts para modelos Claude da Anthropic, consulte Introduction to prompt design. Se quiser usar os prompts de Text Completions existentes com o Anthropic Claude Mensagens API, consulte Migrating from Text Completions.

Modelos compatíveis

É possível usar a API Text Completions com os modelos Claude da Anthropic a seguir.

  • Claude Instant v1.2 da Anthropic

  • Claude v2 da Anthropic

  • Claude v2.1 da Anthropic

Solicitação e reposta

O corpo da solicitação é enviado no campo body de uma solicitação para InvokeModel ou InvokeModelWithResponseStream.

Para obter mais informações, consulte https://docs.anthropic.com/claude/reference/complete_post na documentação do Claude da Anthropic.

Request

O Claude da Anthropic tem os parâmetros de inferência a seguir para uma chamada de inferência de Text Completion.

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

Veja a seguir os parâmetros necessários.

  • prompt: (obrigatório) o prompt que você deseja que o Claude conclua. Para gerar uma resposta adequada, formate o prompt usando a alternância de turnos de conversas \n\nHuman: e \n\nAssistant:. Por exemplo:

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

    Para obter mais informações, consulte Prompt validation na documentação do Claude da Anthropic.

  • max_tokens_to_sample: (obrigatório) o número máximo de tokens a serem gerados antes de parar. É recomendável um limite de 4 mil tokens para uma performance ideal.

    Observe que os modelos Claude da Anthropic podem parar de gerar tokens antes de atingir o valor de max_tokens_to_sample. Modelos diferentes do Claude da Anthropic têm valores máximos diferentes para esse parâmetro. Para obter mais informações, consulte Model comparison fornecido na documentação do Claude da Anthropic.

    Padrão Mínimo Máximo

    200

    0

    4096

Veja a seguir os parâmetros opcionais.

  • stop_sequences: (opcional) sequências que farão com que o modelo pare de gerar.

    Os modelos Claude da Anthropic param em "\n\nHuman:" e podem incluir sequências de parada integradas adicionais no futuro. Use o parâmetro de inferência stop_sequences para incluir strings adicionais que sinalizarão ao modelo para parar de gerar texto.

  • temperature: (opcional) a aleatoriedade injetada na resposta. Use um valor mais próximo de 0 para a opção de análise/múltipla escolha e um valor mais próximo de 1 para tarefas criativas e generativas.

    Padrão Mínimo Máximo

    1

    0

    1

  • top_p: (opcional) use amostragem de núcleo.

    Na amostragem de núcleo, o Claude da Anthropic calcula a distribuição cumulativa de todas as opções de cada token subsequente em ordem de probabilidade decrescente e a interrompe quando atinge uma determinada probabilidade especificada por top_p. Você deve alterar temperature ou top_p, mas não ambos.

    Padrão Mínimo Máximo

    1

    0

    1

  • top_k: (opcional) somente um exemplo das opções K principais para cada token subsequente.

    Use top_k para remover respostas de baixa probabilidade de cauda longa.

    Padrão Mínimo Máximo

    250

    0

    500

Response

O modelo Claude da Anthropic retorna os campos a seguir para chamadas de inferência de Text Completion.

{ "completion": string, "stop_reason": string, "stop": string }
  • completion: o preenchimento resultante até as sequências de parada, mas excluindo-as.

  • stop_reason: o motivo pelo qual o modelo parou de gerar a resposta.

    • “stop_sequence”: o modelo atingiu uma sequência de parada: fornecida com o parâmetro de inferência stop_sequences ou com uma sequência de parada incorporada ao modelo.

    • “max_tokens”: o modelo excedeu max_tokens_to_sample ou o número máximo de tokens do modelo.

  • stop: se você especificar o parâmetro de inferência stop_sequences, stop conterá a sequência de parada que sinalizou ao modelo para parar de gerar texto. Por exemplo, holes na resposta a seguir.

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

    Se você não especificar stop_sequences, o valor stop estará vazio.

Exemplo de código

Esses exemplos mostram como chamar o modelo Claude V2 da Anthropic com throughput sob demanda. Para usar o Claude versão 2.1 da Anthropic, altere o valor de modelId para 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'))

O seguinte exemplo mostra como gerar texto de streaming com o Python usando o prompt escreva uma dissertação sobre viver em Marte usando mil palavras e o modelo Claude V2 da Anthropic:

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