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"
      }
    ]
  }
]