litellm/tests/claude_code/test_config.yaml
mateo-berri c1955a15ca RALPH: fix compat matrix - Azure now hosts Claude via Microsoft Foundry
Anthropic and Microsoft announced Claude Haiku 4.5, Sonnet 4.5/4.6, and
Opus 4.1/4.6/4.7 in Microsoft Foundry on 2025-11-18, so the matrix's
Azure column should exercise a real route through the LiteLLM proxy
rather than report not_applicable.

Foundry serves Claude on an Anthropic-shape /anthropic/v1/messages
endpoint (not the Azure OpenAI chat-completions route), and LiteLLM
already supports it via the azure_ai/claude-* provider prefix
(litellm/llms/azure_ai/anthropic/{handler,transformation,messages_transformation}.py).

- test_config.yaml: add 3 azure aliases pointing at azure_ai/claude-*
  with AZURE_FOUNDRY_API_BASE / AZURE_FOUNDRY_API_KEY env
- 6x test_azure.py: replace not_applicable stubs with real run_claude
  drivers, mirroring the existing test_vertex_ai.py shape exactly
- sample_compatibility-matrix.json: Azure cells flip to pass
- _builder_unit_tests: pin the new invariant (run_claude is used,
  not_applicable is gone) and feed pass results across all 5 providers
  in the 6x5 golden test
2026-04-25 17:58:32 -07:00

109 lines
4.3 KiB
YAML

# Proxy routing config for the Claude Code Compatibility Matrix PR gate.
#
# The tests under `tests/claude_code/` only know **alias** names (e.g.
# `claude-haiku-4-5-bedrock-invoke`). The proxy is the layer that maps
# each alias to a real upstream model id, region, and credentials.
#
# Adding a new (feature, provider) cell is a three-step change in the
# test repo (manifest + test file + alias here); changing which upstream
# model a cell exercises is a one-step change here, with no test edits.
#
# Aliases:
# - claude-{tier} → Anthropic API
# - claude-{tier}-bedrock-invoke → Bedrock InvokeModel API
# - claude-{tier}-bedrock-converse → Bedrock Converse API
# - claude-{tier}-vertex → GCP Vertex AI
# - claude-{tier}-azure → Microsoft Foundry (Anthropic deployments)
model_list:
# ---- Anthropic ----
- model_name: claude-haiku-4-5
litellm_params:
model: anthropic/claude-haiku-4-5
api_key: os.environ/ANTHROPIC_API_KEY
- model_name: claude-sonnet-4-6
litellm_params:
model: anthropic/claude-sonnet-4-6
api_key: os.environ/ANTHROPIC_API_KEY
- model_name: claude-opus-4-7
litellm_params:
model: anthropic/claude-opus-4-7
api_key: os.environ/ANTHROPIC_API_KEY
# ---- Bedrock (InvokeModel) ----
- model_name: claude-haiku-4-5-bedrock-invoke
litellm_params:
model: bedrock/us.anthropic.claude-haiku-4-5-20251001-v1:0
aws_region_name: us-east-1
- model_name: claude-sonnet-4-6-bedrock-invoke
litellm_params:
model: bedrock/us.anthropic.claude-sonnet-4-6
aws_region_name: us-east-1
- model_name: claude-opus-4-7-bedrock-invoke
litellm_params:
model: bedrock/us.anthropic.claude-opus-4-7
aws_region_name: us-east-1
# ---- Bedrock (Converse) ----
- model_name: claude-haiku-4-5-bedrock-converse
litellm_params:
model: bedrock/converse/us.anthropic.claude-haiku-4-5-20251001-v1:0
aws_region_name: us-east-1
- model_name: claude-sonnet-4-6-bedrock-converse
litellm_params:
model: bedrock/converse/us.anthropic.claude-sonnet-4-6
aws_region_name: us-east-1
- model_name: claude-opus-4-7-bedrock-converse
litellm_params:
model: bedrock/converse/us.anthropic.claude-opus-4-7
aws_region_name: us-east-1
# ---- Vertex AI ----
- model_name: claude-haiku-4-5-vertex
litellm_params:
model: vertex_ai/claude-haiku-4-5
vertex_ai_project: pathrise-convert-1606954137718
vertex_ai_location: us-east5
- model_name: claude-sonnet-4-6-vertex
litellm_params:
model: vertex_ai/claude-sonnet-4-6
vertex_ai_project: pathrise-convert-1606954137718
vertex_ai_location: us-east5
- model_name: claude-opus-4-7-vertex
litellm_params:
model: vertex_ai/claude-opus-4-7
vertex_ai_project: pathrise-convert-1606954137718
vertex_ai_location: us-east5
# ---- Microsoft Foundry (Anthropic deployments on Azure) ----
# Anthropic announced Claude Haiku 4.5, Sonnet 4.5/4.6, and Opus 4.1/4.6/4.7
# in Microsoft Foundry on 2025-11-18. Foundry exposes these models on an
# Anthropic-shape `/anthropic/v1/messages` endpoint (not Azure OpenAI's
# chat-completions route), and LiteLLM routes them via the `azure_ai/`
# provider prefix. Set AZURE_FOUNDRY_API_BASE to the host (or host +
# `/anthropic`); LiteLLM normalizes the URL to `…/anthropic/v1/messages`.
- model_name: claude-haiku-4-5-azure
litellm_params:
model: azure_ai/claude-haiku-4-5
api_base: os.environ/AZURE_FOUNDRY_API_BASE
api_key: os.environ/AZURE_FOUNDRY_API_KEY
- model_name: claude-sonnet-4-6-azure
litellm_params:
model: azure_ai/claude-sonnet-4-6
api_base: os.environ/AZURE_FOUNDRY_API_BASE
api_key: os.environ/AZURE_FOUNDRY_API_KEY
- model_name: claude-opus-4-7-azure
litellm_params:
model: azure_ai/claude-opus-4-7
api_base: os.environ/AZURE_FOUNDRY_API_BASE
api_key: os.environ/AZURE_FOUNDRY_API_KEY
general_settings:
# Claude Code sends provider-specific headers (e.g. anthropic-beta) we
# want to forward verbatim to the upstream so the wire-shape under
# test matches what real customers send.
forward_client_headers_to_llm_api: true
litellm_settings:
drop_params: true
modify_params: true