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
- Non-empty messages list
- Valid model name format
- max_tokens within bounds (1 to 4096 for most models)
- Valid temperature range (0.0 to 1.0)
- Valid top_p range (0.0 to 1.0)
- Valid top_k (positive integer)
- Tool definition validation
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 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