mirror of
https://github.com/netbirdio/netbird.git
synced 2026-07-23 08:51:29 +02:00
Adds a first-class kimi_api catalog entry so operators can govern Kimi K3 and K2 Thinking traffic through the Agent Network proxy instead of riding the generic custom/vllm entry. ParserID is left empty so the proxy's URL sniffer dispatches both body shapes Moonshot serves on the same host and key: the OpenAI-compatible /v1/chat/completions endpoint and the Anthropic-compatible /anthropic/v1/messages endpoint that Moonshot's official Claude Code setup uses (same pattern as the Bifrost gateway entry). Pricing defaults cover both parser surfaces, including the kimi-k3[1m] model id some Claude Code guides use for the 1M-context alias, so cost metering doesn't silently skip those requests. The dashboard's PROVIDER_CATALOG needs a matching entry (separate repo).
295 lines
9.0 KiB
YAML
295 lines
9.0 KiB
YAML
# Embedded default pricing for llm_observability. Compiled into the proxy
|
|
# binary via go:embed in pricing.go; cost annotation works out of the box
|
|
# without any operator action.
|
|
#
|
|
# Operators override entries by dropping a pricing.yaml into --plugin-data-dir
|
|
# (or whichever basename is given via params.pricing_path). The override file
|
|
# only needs entries the operator wants to change; missing entries fall
|
|
# through to these defaults.
|
|
#
|
|
# Values are USD per 1_000 tokens. Public list prices drift; ship a fresh
|
|
# binary or override individual entries via the override file as needed.
|
|
#
|
|
# Optional cache fields:
|
|
# cached_input_per_1k OpenAI: rate for prompt_tokens_details.cached_tokens
|
|
# (a SUBSET of prompt_tokens). Typically 0.5x input.
|
|
# Absent → cached portion bills at input_per_1k.
|
|
# cache_read_per_1k Anthropic: rate for cache_read_input_tokens
|
|
# (ADDITIVE to input_tokens). Typically 0.1x input.
|
|
# Absent → cache reads bill at input_per_1k.
|
|
# cache_creation_per_1k Anthropic: rate for cache_creation_input_tokens
|
|
# (ADDITIVE to input_tokens). Typically 1.25x input.
|
|
# Absent → cache writes bill at input_per_1k.
|
|
|
|
openai:
|
|
# OpenAI + OpenAI-compatible providers (openai_api, azure_openai_api,
|
|
# mistral_api, and the openai-parser gateways) all emit llm.provider="openai",
|
|
# so their models are priced here. Kept in sync with the management catalog;
|
|
# rates cross-checked against LiteLLM model_prices_and_context_window.json.
|
|
|
|
# GPT-5.x family — cache reads 10% of input (0.1x).
|
|
gpt-5.5:
|
|
input_per_1k: 0.005
|
|
output_per_1k: 0.03
|
|
cached_input_per_1k: 0.0005
|
|
gpt-5.5-pro:
|
|
input_per_1k: 0.03
|
|
output_per_1k: 0.18
|
|
cached_input_per_1k: 0.003
|
|
gpt-5.4:
|
|
input_per_1k: 0.0025
|
|
output_per_1k: 0.015
|
|
cached_input_per_1k: 0.00025
|
|
gpt-5.4-pro:
|
|
input_per_1k: 0.03
|
|
output_per_1k: 0.18
|
|
cached_input_per_1k: 0.003
|
|
gpt-5.4-mini:
|
|
input_per_1k: 0.00075
|
|
output_per_1k: 0.0045
|
|
cached_input_per_1k: 0.000075
|
|
gpt-5.4-nano:
|
|
input_per_1k: 0.0002
|
|
output_per_1k: 0.00125
|
|
cached_input_per_1k: 0.00002
|
|
gpt-5.3-codex:
|
|
input_per_1k: 0.00175
|
|
output_per_1k: 0.014
|
|
cached_input_per_1k: 0.000175
|
|
gpt-5.3-chat-latest:
|
|
input_per_1k: 0.00175
|
|
output_per_1k: 0.014
|
|
cached_input_per_1k: 0.000175
|
|
# GPT-5 (2025) family — kept for gateway requests using the unsuffixed ids.
|
|
gpt-5:
|
|
input_per_1k: 0.00125
|
|
output_per_1k: 0.01
|
|
cached_input_per_1k: 0.000125
|
|
gpt-5-mini:
|
|
input_per_1k: 0.00025
|
|
output_per_1k: 0.002
|
|
cached_input_per_1k: 0.000025
|
|
gpt-5-nano:
|
|
input_per_1k: 0.00005
|
|
output_per_1k: 0.0004
|
|
cached_input_per_1k: 0.000005
|
|
o4-mini:
|
|
input_per_1k: 0.0011
|
|
output_per_1k: 0.0044
|
|
cached_input_per_1k: 0.000275
|
|
# GPT-4.1 family — cache reads 25% of input.
|
|
gpt-4.1:
|
|
input_per_1k: 0.002
|
|
output_per_1k: 0.008
|
|
cached_input_per_1k: 0.0005
|
|
gpt-4.1-mini:
|
|
input_per_1k: 0.0004
|
|
output_per_1k: 0.0016
|
|
cached_input_per_1k: 0.0001
|
|
gpt-4.1-nano:
|
|
input_per_1k: 0.0001
|
|
output_per_1k: 0.0004
|
|
cached_input_per_1k: 0.000025
|
|
# GPT-4o family — cache reads 50% of input (0.5x).
|
|
gpt-4o:
|
|
input_per_1k: 0.0025
|
|
output_per_1k: 0.01
|
|
cached_input_per_1k: 0.00125
|
|
gpt-4o-mini:
|
|
input_per_1k: 0.00015
|
|
output_per_1k: 0.0006
|
|
cached_input_per_1k: 0.000075
|
|
# Older GPT — no prompt caching.
|
|
gpt-4-turbo:
|
|
input_per_1k: 0.01
|
|
output_per_1k: 0.03
|
|
gpt-3.5-turbo:
|
|
input_per_1k: 0.0005
|
|
output_per_1k: 0.0015
|
|
gpt-35-turbo: # Azure deployment alias of gpt-3.5-turbo
|
|
input_per_1k: 0.0005
|
|
output_per_1k: 0.0015
|
|
# Embeddings — no caching, no output tokens.
|
|
text-embedding-3-large:
|
|
input_per_1k: 0.00013
|
|
output_per_1k: 0
|
|
text-embedding-3-small:
|
|
input_per_1k: 0.00002
|
|
output_per_1k: 0
|
|
|
|
# Mistral (mistral_api) — routed via the openai parser; no prompt caching.
|
|
mistral-large-latest:
|
|
input_per_1k: 0.0005
|
|
output_per_1k: 0.0015
|
|
mistral-medium-latest:
|
|
input_per_1k: 0.0004
|
|
output_per_1k: 0.002
|
|
mistral-medium-3-5:
|
|
input_per_1k: 0.0015
|
|
output_per_1k: 0.0075
|
|
mistral-small-latest:
|
|
input_per_1k: 0.00006
|
|
output_per_1k: 0.00018
|
|
magistral-medium-latest:
|
|
input_per_1k: 0.002
|
|
output_per_1k: 0.005
|
|
magistral-small-latest:
|
|
input_per_1k: 0.0005
|
|
output_per_1k: 0.0015
|
|
devstral-medium-latest:
|
|
input_per_1k: 0.0004
|
|
output_per_1k: 0.002
|
|
devstral-small-latest:
|
|
input_per_1k: 0.0001
|
|
output_per_1k: 0.0003
|
|
codestral-2508:
|
|
input_per_1k: 0.0003
|
|
output_per_1k: 0.0009
|
|
codestral-latest:
|
|
input_per_1k: 0.001
|
|
output_per_1k: 0.003
|
|
ministral-3-14b-2512:
|
|
input_per_1k: 0.0002
|
|
output_per_1k: 0.0002
|
|
ministral-8b-latest:
|
|
input_per_1k: 0.00015
|
|
output_per_1k: 0.00015
|
|
ministral-3-3b-2512:
|
|
input_per_1k: 0.0001
|
|
output_per_1k: 0.0001
|
|
mistral-embed:
|
|
input_per_1k: 0.0001
|
|
output_per_1k: 0
|
|
|
|
# Kimi / Moonshot AI (kimi_api) — OpenAI-compatible /v1 endpoint. Moonshot
|
|
# reports cache hits OpenAI-style when present; cached input is 10% of
|
|
# input for K3 ($0.30 vs $3.00 per MTok) and $0.15/MTok for K2 Thinking.
|
|
kimi-k3:
|
|
input_per_1k: 0.003
|
|
output_per_1k: 0.015
|
|
cached_input_per_1k: 0.0003
|
|
kimi-k2-thinking:
|
|
input_per_1k: 0.0006
|
|
output_per_1k: 0.0025
|
|
cached_input_per_1k: 0.00015
|
|
|
|
anthropic:
|
|
# Claude 4.x family — cache reads ≈10% of input, cache writes ≈125% of input.
|
|
# Pricing source: Anthropic's current published rates per million tokens,
|
|
# divided by 1000 for the per-1k figures stored here.
|
|
claude-fable-5:
|
|
input_per_1k: 0.010
|
|
output_per_1k: 0.050
|
|
cache_read_per_1k: 0.001
|
|
cache_creation_per_1k: 0.0125
|
|
claude-opus-4-8:
|
|
input_per_1k: 0.005
|
|
output_per_1k: 0.025
|
|
cache_read_per_1k: 0.0005
|
|
cache_creation_per_1k: 0.00625
|
|
claude-opus-4-7:
|
|
input_per_1k: 0.005
|
|
output_per_1k: 0.025
|
|
cache_read_per_1k: 0.0005
|
|
cache_creation_per_1k: 0.00625
|
|
claude-opus-4-6:
|
|
input_per_1k: 0.005
|
|
output_per_1k: 0.025
|
|
cache_read_per_1k: 0.0005
|
|
cache_creation_per_1k: 0.00625
|
|
claude-opus-4-1:
|
|
input_per_1k: 0.015
|
|
output_per_1k: 0.075
|
|
cache_read_per_1k: 0.0015
|
|
cache_creation_per_1k: 0.01875
|
|
claude-sonnet-4-6:
|
|
input_per_1k: 0.003
|
|
output_per_1k: 0.015
|
|
cache_read_per_1k: 0.0003
|
|
cache_creation_per_1k: 0.00375
|
|
claude-sonnet-4-5:
|
|
input_per_1k: 0.003
|
|
output_per_1k: 0.015
|
|
cache_read_per_1k: 0.0003
|
|
cache_creation_per_1k: 0.00375
|
|
claude-haiku-4-5:
|
|
input_per_1k: 0.001
|
|
output_per_1k: 0.005
|
|
cache_read_per_1k: 0.0001
|
|
cache_creation_per_1k: 0.00125
|
|
|
|
# Kimi / Moonshot AI (kimi_api) via the Anthropic-compatible endpoint
|
|
# (/anthropic/v1/messages — the official Claude Code setup). Same rates
|
|
# as the OpenAI-shape entries above. "kimi-k3[1m]" is the model id some
|
|
# Claude Code guides set for the 1M-context alias; priced identically so
|
|
# cost metering doesn't silently skip those requests.
|
|
kimi-k3:
|
|
input_per_1k: 0.003
|
|
output_per_1k: 0.015
|
|
cache_read_per_1k: 0.0003
|
|
"kimi-k3[1m]":
|
|
input_per_1k: 0.003
|
|
output_per_1k: 0.015
|
|
cache_read_per_1k: 0.0003
|
|
kimi-k2-thinking:
|
|
input_per_1k: 0.0006
|
|
output_per_1k: 0.0025
|
|
cache_read_per_1k: 0.00015
|
|
|
|
bedrock:
|
|
# AWS Bedrock model ids, normalised by the request parser (cross-region
|
|
# inference-profile prefix + version/throughput suffix stripped), e.g.
|
|
# eu.anthropic.claude-sonnet-4-5-20250929-v1:0 -> anthropic.claude-sonnet-4-5.
|
|
# Anthropic-on-Bedrock keeps the additive cache buckets (read ≈0.1x input,
|
|
# write ≈1.25x input); Nova / Llama report no cache, so cost is input+output.
|
|
anthropic.claude-opus-4-8:
|
|
input_per_1k: 0.005
|
|
output_per_1k: 0.025
|
|
cache_read_per_1k: 0.0005
|
|
cache_creation_per_1k: 0.00625
|
|
anthropic.claude-opus-4-7:
|
|
input_per_1k: 0.005
|
|
output_per_1k: 0.025
|
|
cache_read_per_1k: 0.0005
|
|
cache_creation_per_1k: 0.00625
|
|
anthropic.claude-opus-4-6:
|
|
input_per_1k: 0.005
|
|
output_per_1k: 0.025
|
|
cache_read_per_1k: 0.0005
|
|
cache_creation_per_1k: 0.00625
|
|
anthropic.claude-opus-4-1:
|
|
input_per_1k: 0.015
|
|
output_per_1k: 0.075
|
|
cache_read_per_1k: 0.0015
|
|
cache_creation_per_1k: 0.01875
|
|
anthropic.claude-sonnet-4-6:
|
|
input_per_1k: 0.003
|
|
output_per_1k: 0.015
|
|
cache_read_per_1k: 0.0003
|
|
cache_creation_per_1k: 0.00375
|
|
anthropic.claude-sonnet-4-5:
|
|
input_per_1k: 0.003
|
|
output_per_1k: 0.015
|
|
cache_read_per_1k: 0.0003
|
|
cache_creation_per_1k: 0.00375
|
|
anthropic.claude-haiku-4-5:
|
|
input_per_1k: 0.001
|
|
output_per_1k: 0.005
|
|
cache_read_per_1k: 0.0001
|
|
cache_creation_per_1k: 0.00125
|
|
meta.llama3-3-70b-instruct:
|
|
input_per_1k: 0.00072
|
|
output_per_1k: 0.00072
|
|
amazon.nova-2-lite:
|
|
input_per_1k: 0.0003
|
|
output_per_1k: 0.0025
|
|
amazon.nova-pro:
|
|
input_per_1k: 0.0008
|
|
output_per_1k: 0.0032
|
|
amazon.nova-lite:
|
|
input_per_1k: 0.00006
|
|
output_per_1k: 0.00024
|
|
amazon.nova-micro:
|
|
input_per_1k: 0.000035
|
|
output_per_1k: 0.00014
|