struct

Anthropic::GeneratedMessage

Inherits JSON::Serializable / Anthropic::Resource / Struct / Value / Object

Constructors

new(pull : JSON::PullParser)
new(*, __pull_for_json_serializable pull : JSON::PullParser)

Instance methods

content

This is an array of content blocks, each of which has a type that determines its shape. Currently, the only type in responses is "text".

Example:

[{ "type": "text", "text": "Hi, I'm Claude." }]

If the request input messages ended with an assistant turn, then the response content will continue directly from that last turn. You can use this to constrain the model's output.

For example, if the input messages were:

[
  {
    "role": "user",
    "content": "What's the Greek name for Sun? (A) Sol (B) Helios (C) Sun"
  },
  { "role": "assistant", "content": "The best answer is (" }
]

Then the response content might be:

[{ "type": "text", "text": "B)" }]
Source
id

Unique object identifier.

The format and length of IDs may change over time.

Source
message_thread

Messages that were passed to the

Source
model

The model that handled the request.

Source
role

Conversational role of the generated message. This will always be :assistant.

Source
stop_reason

The reason that we stopped. This may be one the following values:

  • :end_turn: the model reached a natural stopping point
  • :max_tokens: we exceeded the requested max_tokens or the model's maximum
  • :stop_sequence: one of your provided custom stop_sequences was generated

In non-streaming mode this value is always non-null. In streaming mode, it is nil in the MessageStart event and non-nil otherwise.

Source
stop_sequence

Which custom stop sequence was generated, if any. This value will be a non- nil string if one of your custom stop sequences was generated.

Source
to_message
Source
to_s(io) : Nil
Source
type

Object type — for Messages, this is always "message".

Source
usage

Billing and rate-limit usage.

Anthropic's API bills and rate-limits by token counts, as tokens represent the underlying cost to our systems.

Under the hood, the API transforms requests into a format suitable for the model. The model's output then goes through a parsing stage before becoming an API response. As a result, the token counts in usage will not match one-to-one with the exact visible content of an API request or response.

For example, output_tokens will be non-zero, even for an empty string response from Claude.

Source

Nested types