Skip to main content

Anthropic provider for lmux

Project description

lmux-anthropic

Anthropic provider for lmux. Wraps the anthropic SDK.

Supports chat completions and streaming.

Part of the lmux ecosystem: standardized interface, cost tracking on every response, and registry-based routing across providers.

Auth

Set ANTHROPIC_API_KEY in your environment. The default AnthropicEnvAuthProvider reads it automatically.

from lmux_anthropic import AnthropicProvider

provider = AnthropicProvider()

Usage

Chat

from lmux import UserMessage

response = provider.chat("claude-sonnet-4-20250514", [UserMessage(content="Hello")])
print(response.content)
print(response.cost)

Streaming

for chunk in provider.chat_stream("claude-sonnet-4-20250514", [UserMessage(content="Hello")]):
    if chunk.delta:
        print(chunk.delta, end="")

Async

All methods have async variants: achat, achat_stream.

Registry

Use with the lmux registry to route across multiple providers:

from lmux import Registry

registry = Registry()
registry.register("anthropic", provider)
response = registry.chat("anthropic/claude-sonnet-4-20250514", messages)

Provider Params

from lmux_anthropic import AnthropicParams

response = provider.chat(
    "claude-sonnet-4-20250514",
    messages,
    provider_params=AnthropicParams(inference_geo="us"),
)
Parameter Type Description
thinking dict Extended thinking configuration
metadata dict[str, str] Request metadata
top_k int Top-k sampling
service_tier "auto" | "standard_only" Service tier selection
inference_geo "us" Inference geography (affects cost)
cache_control dict Top-level prompt-cache control — auto-places a breakpoint on the last cacheable block (e.g. {"type": "ephemeral"})

Prompt Caching

Two ways to opt in:

  • Top-level (auto-placement): pass cache_control via AnthropicParams (above) to cache the full rendered prefix.
  • Explicit breakpoints: place CachePointContent parts in UserMessage content. A cache point marks the end of the stable prefix; it attaches cache_control to the preceding content block. A cache point with no preceding block in its message applies to whatever came before it: the prior message's last block, or the system text seen so far (system text after the marker stays outside the cached prefix). A marker with nothing cacheable before it is dropped, and when two markers resolve to the same block the first one wins.
from lmux import CachePointContent, TextContent, UserMessage

messages = [
    UserMessage(content=[TextContent(text=big_stable_context), CachePointContent(ttl="1h")]),
    UserMessage(content="What changed since yesterday?"),
]

Cache reads/writes are reported on response.usage (cache_read_tokens, cache_creation_tokens, and the per-TTL cache_creation_tokens_by_ttl breakdown) and priced into response.cost, including the 2x write rate for ttl="1h".

Constructor Options

AnthropicProvider(
    auth=...,               # AuthProvider[str], default: AnthropicEnvAuthProvider()
    base_url=...,           # Optional base URL override
    timeout=...,            # Request timeout in seconds
    max_retries=...,        # Max retry attempts
    default_max_tokens=..., # Default max tokens (default: 4096)
)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lmux_anthropic-0.5.0.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lmux_anthropic-0.5.0-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

Details for the file lmux_anthropic-0.5.0.tar.gz.

File metadata

  • Download URL: lmux_anthropic-0.5.0.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for lmux_anthropic-0.5.0.tar.gz
Algorithm Hash digest
SHA256 62c64eb550f0b351d51c9e88f60b2d5210d017aaa6eed71b868ae92c43633174
MD5 f7e64fc7101406fe778024cd10449dbd
BLAKE2b-256 7263577c7d265f4dd3c9d4e7f5425cf7659141afb8ea348cb0404d028fa4b41d

See more details on using hashes here.

Provenance

The following attestation bundles were made for lmux_anthropic-0.5.0.tar.gz:

Publisher: publish.yml on cluebbehusen/lmux

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lmux_anthropic-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: lmux_anthropic-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 13.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for lmux_anthropic-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fe8fd774b669a88c269c5459e6f5d4d31355fe0b6a52b65dca6e3678b0b3cbe5
MD5 da8e8e0b506087b9b95c1144f772b58a
BLAKE2b-256 bff40c8dc593109c89881e71f42ed1b662457de28b35959018c2b4a1733e39cc

See more details on using hashes here.

Provenance

The following attestation bundles were made for lmux_anthropic-0.5.0-py3-none-any.whl:

Publisher: publish.yml on cluebbehusen/lmux

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page