From 23621ef25eae8fc2868fd8e2327283467f4c1a14 Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 27 Apr 2026 12:03:40 +0900 Subject: [PATCH] docs(byteplus): warn that `byteplus` is per-token, not Coding Plan (#80) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docs(byteplus): warn that `byteplus` is per-token, not Coding Plan Self-followup on PR #78. The BytePlus official docs explicitly warn: Do not use the standard model endpoint (https://ark.ap-southeast.bytepluses.com/api/v3) [for Coding Plan workloads], as requests there bypass Coding Plan quota and incur separate charges. — https://docs.byteplus.com/en/docs/ModelArk/1928261 Without this warning visible to users, anyone with a Coding Plan subscription who picks `provider = "byteplus"` will silently bill against their per-token USD balance instead of consuming the subscription quota they paid for. Adds a prominent "BILLING — READ BEFORE USE" block to byteplus.toml making the per-token vs subscription split unambiguous, and a companion note in byteplus-coding.toml pointing back so the choice is discoverable from either side. Also calls out which capabilities are unique to the standard endpoint (image / video) so the choice isn't "just use Coding Plan for everything". No model definitions or pricing changed. * chore(byteplus): drop superseded model entries (21 → 11) (#81) The original byteplus.toml from PR #78 enumerated every BytePlus ModelArk endpoint that returned HTTP 200, regardless of whether a sane user would still pick it. Trims to the current per-family flagship plus useful fast/preview tiers. Removed (10): Text: seed-2-0-lite-260228 — superseded by seed-2-0-mini in the fast/cheap niche seed-1-8-251228 — superseded by seed-2-0 family seed-translation-250915 — too narrow; chat models cover this deepseek-v3-1-250821 — superseded by deepseek-v3-2 Image: seedream-3-0-t2i-250415 — superseded by seedream-4-5 / 5-0-lite seedream-4-0-250828 — same Video: seedance-1-0-lite-i2v-250428 — superseded by 1-5 / dreamina-2-0 seedance-1-0-lite-t2v-250428 — same seedance-1-0-pro-250528 — same seedance-1-0-pro-fast-251015 — same Kept (11): Text (6): seed-2-0-pro/mini/code-preview, glm-4-7, deepseek-v3-2, gpt-oss-120b Image (2): seedream-4-5, seedream-5-0 (lite) Video (3): seedance-1-5-pro, dreamina-seedance-2-0, dreamina-seedance-2-0-fast Also corrects two per-piece / per-K price comments that the trim left orphaned over the wrong [[models]] block (4-5 = $0.0400, not $0.0300; 1-5-pro = $0.0024/$0.0012 with/without audio, not $0.0018/K) and updates the header capability list to match the new model set. --- providers/byteplus-coding.toml | 19 +++- providers/byteplus.toml | 157 +++++---------------------------- 2 files changed, 37 insertions(+), 139 deletions(-) diff --git a/providers/byteplus-coding.toml b/providers/byteplus-coding.toml index 5395584..5b828cc 100644 --- a/providers/byteplus-coding.toml +++ b/providers/byteplus-coding.toml @@ -2,10 +2,21 @@ # International edition's Claude Code-compatible endpoint with friendly model aliases. # Models: 9 (auto-routed alias + 8 named models) # -# Pricing matches the underlying versioned snapshots in byteplus.toml. The -# Coding Plan endpoint exposes friendly stable names that route to the -# current production snapshot, so versions advance silently without config -# changes (use `ark-code-latest` to always get the best current routing). +# 💡 BILLING — calls here count against your **Coding Plan +# subscription quota**, not your per-token ModelArk USD balance. If you +# don't have a Coding Plan or want per-token billing instead, use the +# `byteplus` provider in byteplus.toml. The Coding Plan endpoint also +# does not expose image / video / embedding models — only the text +# models listed below. +# +# Pricing fields below mirror the underlying versioned snapshots in +# byteplus.toml for catalog accounting purposes; actual subscription +# consumption is tracked by the BytePlus console, not these numbers. +# +# The Coding Plan endpoint exposes friendly stable names that route to +# the current production snapshot, so versions advance silently without +# config changes (use `ark-code-latest` to always get the best current +# routing). [provider] id = "byteplus_coding" diff --git a/providers/byteplus.toml b/providers/byteplus.toml index 02d9ec4..c819f33 100644 --- a/providers/byteplus.toml +++ b/providers/byteplus.toml @@ -1,11 +1,28 @@ # BytePlus ModelArk — https://www.byteplus.com/en/product/ModelArk # International edition of Volcano Engine (VolcEngine). -# Models: 21 (10 text + 4 image + 7 video) -# For Anthropic-compatible coding endpoint, see byteplus-coding.toml. +# Models: 11 (6 text + 2 image + 3 video) # -# Pricing: standard real-time tier (BytePlus offers a discounted batch tier -# at roughly half this rate; image/video models are billed per-call or -# per-token under their own units, see comments above each model). +# ⚠️ BILLING — READ BEFORE USE +# This provider points at the **standard** ModelArk inference endpoint +# (`/api/v3`). Calls here are billed **per-token / per-call against your +# ModelArk USD balance**. They DO NOT consume your Coding Plan +# subscription quota. +# +# If you have a Coding Plan subscription and want calls to count against +# it, use `byteplus_coding` (Anthropic protocol, friendly model +# aliases) — see byteplus-coding.toml. The official BytePlus docs +# explicitly warn against using `/api/v3` for Coding Plan workloads: +# https://docs.byteplus.com/en/docs/ModelArk/1928261 +# +# Use this `byteplus` provider when you want: +# - Image generation (Seedream 4.5, Seedream 5.0 Lite) +# - Video generation (Seedance 1.5 Pro, Dreamina Seedance 2.0 / 2.0 Fast) +# - Versioned text-model snapshots (e.g. `seed-2-0-pro-260328`) +# …none of which exist on the Coding Plan endpoint. +# +# Pricing below is the standard real-time tier (a discounted batch tier +# exists at ~half the rate; image/video billed per-call or per-token in +# their own units, see comments above each model). [provider] id = "byteplus" @@ -44,19 +61,6 @@ supports_vision = true supports_streaming = true aliases = ["seed-mini", "seed-2-mini"] -[[models]] -id = "seed-2-0-lite-260228" -display_name = "Seed 2.0 Lite" -tier = "smart" -context_window = 262144 -max_output_tokens = 16384 -input_cost_per_m = 0.50 -output_cost_per_m = 4.00 -supports_tools = true -supports_vision = true -supports_streaming = true -aliases = ["seed-lite", "seed-2-lite"] - [[models]] id = "seed-2-0-code-preview-260328" display_name = "Seed 2.0 Code (preview)" @@ -70,32 +74,6 @@ supports_vision = false supports_streaming = true aliases = ["seed-code", "seed-2-code"] -[[models]] -id = "seed-1-8-251228" -display_name = "Seed 1.8" -tier = "smart" -context_window = 262144 -max_output_tokens = 16384 -input_cost_per_m = 0.50 -output_cost_per_m = 4.00 -supports_tools = true -supports_vision = true -supports_streaming = true -aliases = [] - -[[models]] -id = "seed-translation-250915" -display_name = "Seed Translation" -tier = "fast" -context_window = 4096 -max_output_tokens = 4096 -input_cost_per_m = 0.20 -output_cost_per_m = 0.80 -supports_tools = false -supports_vision = false -supports_streaming = true -aliases = [] - [[models]] id = "glm-4-7-251222" display_name = "GLM-4.7" @@ -122,19 +100,6 @@ supports_vision = false supports_streaming = true aliases = ["deepseek-v3.2"] -[[models]] -id = "deepseek-v3-1-250821" -display_name = "DeepSeek V3.1" -tier = "smart" -context_window = 131072 -max_output_tokens = 8192 -input_cost_per_m = 0.56 -output_cost_per_m = 1.68 -supports_tools = true -supports_vision = false -supports_streaming = true -aliases = ["deepseek-v3.1"] - [[models]] id = "gpt-oss-120b-250805" display_name = "GPT-OSS 120B" @@ -151,32 +116,6 @@ aliases = ["gpt-oss-120b"] # ── Image generation models ──────────────────────────────────────────── # Billed per-piece (not per-token). Real prices in comment above each entry. -# $0.0300 per image -[[models]] -id = "seedream-3-0-t2i-250415" -display_name = "Seedream 3.0 (text-to-image)" -tier = "smart" -modality = "image" -input_cost_per_m = 0.0 -output_cost_per_m = 0.0 -supports_tools = false -supports_vision = false -supports_streaming = false -aliases = ["seedream-3.0"] - -# $0.0300 per image -[[models]] -id = "seedream-4-0-250828" -display_name = "Seedream 4.0" -tier = "smart" -modality = "image" -input_cost_per_m = 0.0 -output_cost_per_m = 0.0 -supports_tools = false -supports_vision = false -supports_streaming = false -aliases = ["seedream-4.0"] - # $0.0400 per image [[models]] id = "seedream-4-5-251128" @@ -206,58 +145,6 @@ aliases = ["seedream-5.0-lite", "seedream-5.0"] # ── Video generation models ──────────────────────────────────────────── # Billed per-K tokens (encoded video duration). Real per-K rates in comment. -# $0.0018/K (text-to-video, with-cache rate $0.0009/K) -[[models]] -id = "seedance-1-0-lite-t2v-250428" -display_name = "Seedance 1.0 Lite (text-to-video)" -tier = "fast" -modality = "video" -input_cost_per_m = 0.0 -output_cost_per_m = 0.0 -supports_tools = false -supports_vision = false -supports_streaming = false -aliases = ["seedance-1.0-lite-t2v"] - -# $0.0018/K (image-to-video, with-cache rate $0.0009/K) -[[models]] -id = "seedance-1-0-lite-i2v-250428" -display_name = "Seedance 1.0 Lite (image-to-video)" -tier = "fast" -modality = "video" -input_cost_per_m = 0.0 -output_cost_per_m = 0.0 -supports_tools = false -supports_vision = true -supports_streaming = false -aliases = ["seedance-1.0-lite-i2v"] - -# $0.0025/K (image-to-video / text-to-video) -[[models]] -id = "seedance-1-0-pro-250528" -display_name = "Seedance 1.0 Pro" -tier = "smart" -modality = "video" -input_cost_per_m = 0.0 -output_cost_per_m = 0.0 -supports_tools = false -supports_vision = true -supports_streaming = false -aliases = ["seedance-1.0-pro"] - -# $0.0010/K (image-to-video / text-to-video, with-cache rate $0.0005/K) -[[models]] -id = "seedance-1-0-pro-fast-251015" -display_name = "Seedance 1.0 Pro Fast" -tier = "fast" -modality = "video" -input_cost_per_m = 0.0 -output_cost_per_m = 0.0 -supports_tools = false -supports_vision = true -supports_streaming = false -aliases = ["seedance-1.0-pro-fast"] - # $0.0024/K (with audio) / $0.0012/K (without audio); with-cache half the rate [[models]] id = "seedance-1-5-pro-251215"