View Source Nexlm.Providers.Anthropic (Nexlm v0.1.5)
Provider implementation for Anthropic's Claude API.
Model Names
Models should be prefixed with "anthropic/", for example:
- "anthropic/claude-3-haiku-20240307"
- "anthropic/claude-3-opus-20240229"
Message Formats
Supports the following message types:
- Text messages: Simple string content
- System messages: Special instructions for model behavior
- Image messages: Base64 encoded images with mime type
Configuration
Required:
- API key in runtime config (:nexlm, Nexlm.Providers.Anthropic, api_key: "key")
- Model name in request
Examples
# Simple text completion
config = Anthropic.init(model: "anthropic/claude-3-haiku-20240307")
messages = [%{"role" => "user", "content" => "Hello"}]
{:ok, response} = Anthropic.call(config, messages)
# With system message
messages = [
%{"role" => "system", "content" => "You are a helpful assistant"},
%{"role" => "user", "content" => "Hello"}
]
# With image input
messages = [
%{
"role" => "user",
"content" => [
%{"type" => "text", "text" => "What's in this image?"},
%{
"type" => "image",
"mime_type" => "image/jpeg",
"data" => "base64_encoded_data"
}
]
}
]