anthropic/validation

Request validation for Anthropic API

This module provides comprehensive validation for API requests before they are sent, catching common errors early and providing helpful messages.

Validation Checks

Example

let request = create_request("claude-sonnet-4-20250514", messages, 1024)

case validate_request(request) {
  Ok(_) -> api.create_message(client, request)
  Error(errors) -> {
    io.println("Validation failed:")
    list.each(errors, fn(e) { io.println("  - " <> e.message) })
  }
}

Types

Model-specific token limits

pub type ModelLimits {
  ModelLimits(
    min_tokens: Int,
    max_tokens: Int,
    context_window: Int,
  )
}

Constructors

  • ModelLimits(
      min_tokens: Int,
      max_tokens: Int,
      context_window: Int,
    )

    Arguments

    min_tokens

    Minimum max_tokens value

    max_tokens

    Maximum max_tokens value

    context_window

    Maximum context window

A single validation error

pub type ValidationError {
  ValidationError(
    field: ValidationField,
    message: String,
    value: option.Option(String),
  )
}

Constructors

  • ValidationError(
      field: ValidationField,
      message: String,
      value: option.Option(String),
    )

    Arguments

    field

    The field that failed validation

    message

    Human-readable error message

    value

    Optional value that caused the error

Field that failed validation

pub type ValidationField {
  MessagesField
  ModelField
  MaxTokensField
  TemperatureField
  TopPField
  TopKField
  SystemField
  StopSequencesField
  ToolsField
  ToolChoiceField
}

Constructors

  • MessagesField
  • ModelField
  • MaxTokensField
  • TemperatureField
  • TopPField
  • TopKField
  • SystemField
  • StopSequencesField
  • ToolsField
  • ToolChoiceField

Values

pub fn error_to_string(error: ValidationError) -> String

Convert a ValidationError to a string

pub fn errors_to_string(errors: List(ValidationError)) -> String

Convert a list of validation errors to a combined string

pub fn field_to_string(field: ValidationField) -> String

Convert a ValidationField to a string

pub fn get_model_limits(model: String) -> ModelLimits

Get limits for a model

pub fn is_valid(request: request.CreateMessageRequest) -> Bool

Quick check if a request is valid (returns Bool)

pub fn validate_content_blocks(
  blocks: List(message.ContentBlock),
) -> Result(Nil, List(ValidationError))

Validate that content blocks are non-empty

pub fn validate_max_tokens(
  max_tokens: Int,
  model: String,
) -> Result(Nil, List(ValidationError))

Validate max_tokens

pub fn validate_messages(
  messages: List(message.Message),
) -> Result(Nil, List(ValidationError))

Validate the messages list

pub fn validate_model(
  model: String,
) -> Result(Nil, List(ValidationError))

Validate the model name

pub fn validate_or_error(
  request: request.CreateMessageRequest,
) -> Result(request.CreateMessageRequest, error.AnthropicError)

Validate a request and return an AnthropicError if invalid

pub fn validate_request(
  request: request.CreateMessageRequest,
) -> Result(Nil, List(ValidationError))

Validate a complete CreateMessageRequest

Returns Ok(Nil) if the request is valid, or Error with a list of all validation errors found.

pub fn validate_stop_sequences(
  sequences: option.Option(List(String)),
) -> Result(Nil, List(ValidationError))

Validate stop sequences

pub fn validate_system(
  system: option.Option(String),
) -> Result(Nil, List(ValidationError))

Validate system prompt

pub fn validate_temperature(
  temperature: option.Option(Float),
) -> Result(Nil, List(ValidationError))

Validate temperature

pub fn validate_tools(
  tools: option.Option(List(tool.Tool)),
) -> Result(Nil, List(ValidationError))

Validate tool definitions

pub fn validate_top_k(
  top_k: option.Option(Int),
) -> Result(Nil, List(ValidationError))

Validate top_k

pub fn validate_top_p(
  top_p: option.Option(Float),
) -> Result(Nil, List(ValidationError))

Validate top_p

pub fn validation_error(
  field: ValidationField,
  message: String,
) -> ValidationError

Create a validation error

pub fn validation_error_with_value(
  field: ValidationField,
  message: String,
  value: String,
) -> ValidationError

Create a validation error with value context

Search Document