Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
164 changes: 164 additions & 0 deletions src/tau_coding/data/catalog.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6170,3 +6170,167 @@ context_window = 1048576
max_tokens = 131072
compat = { requiresReasoningContentOnAssistantMessages = true, thinkingFormat = "deepseek" }
cost = { input = 1, output = 3, cacheRead = 0.2, cacheWrite = 0 }

[[providers]]
name = "stepfun"
display_name = "StepFun"
kind = "openai-compatible"
base_url = "https://api.stepfun.ai/v1"
api_key_env = "STEPFUN_API_KEY"
credential_name = "stepfun"
models = ["step-3.7-flash", "step-3.5-flash", "step-3.5-flash-2603"]
default_model = "step-3.7-flash"
docs_url = "https://platform.stepfun.ai/docs"
api = "openai-completions"
thinking_levels = ["low", "medium", "high"]
thinking_default = "medium"
thinking_parameter = "reasoning_effort"

[providers.context_windows]
"step-3.7-flash" = 262144
"step-3.5-flash" = 262144
"step-3.5-flash-2603" = 262144

[providers.model_metadata."step-3.7-flash"]
name = "Step 3.7 Flash"
reasoning = true
input = ["text", "image"]
context_window = 262144
cost = { input = 0.2, output = 1.15, cacheRead = 0.04, cacheWrite = 0 }

[providers.model_metadata."step-3.5-flash"]
name = "Step 3.5 Flash"
reasoning = true
input = ["text"]
context_window = 262144
cost = { input = 0.1, output = 0.3, cacheRead = 0.02, cacheWrite = 0 }

[providers.model_metadata."step-3.5-flash-2603"]
name = "Step 3.5 Flash (2603)"
reasoning = true
input = ["text"]
context_window = 262144
cost = { input = 0.1, output = 0.3, cacheRead = 0.02, cacheWrite = 0 }

[[providers]]
name = "stepfun-cn"
display_name = "StepFun (China)"
kind = "openai-compatible"
base_url = "https://api.stepfun.com/v1"
api_key_env = "STEPFUN_CN_API_KEY"
credential_name = "stepfun-cn"
models = ["step-3.7-flash", "step-3.5-flash", "step-3.5-flash-2603"]
default_model = "step-3.7-flash"
docs_url = "https://platform.stepfun.com/docs"
api = "openai-completions"
thinking_levels = ["low", "medium", "high"]
thinking_default = "medium"
thinking_parameter = "reasoning_effort"

[providers.context_windows]
"step-3.7-flash" = 262144
"step-3.5-flash" = 262144
"step-3.5-flash-2603" = 262144

[providers.model_metadata."step-3.7-flash"]
name = "Step 3.7 Flash"
reasoning = true
input = ["text", "image"]
context_window = 262144
cost = { input = 0.2, output = 1.15, cacheRead = 0.04, cacheWrite = 0 }

[providers.model_metadata."step-3.5-flash"]
name = "Step 3.5 Flash"
reasoning = true
input = ["text"]
context_window = 262144
cost = { input = 0.1, output = 0.3, cacheRead = 0.02, cacheWrite = 0 }

[providers.model_metadata."step-3.5-flash-2603"]
name = "Step 3.5 Flash (2603)"
reasoning = true
input = ["text"]
context_window = 262144
cost = { input = 0.1, output = 0.3, cacheRead = 0.02, cacheWrite = 0 }

[[providers]]
name = "stepfun-step-plan"
display_name = "StepFun Step Plan"
kind = "openai-compatible"
base_url = "https://api.stepfun.ai/step_plan/v1"
api_key_env = "STEPFUN_STEP_PLAN_API_KEY"
credential_name = "stepfun-step-plan"
models = ["step-3.7-flash", "step-3.5-flash", "step-3.5-flash-2603"]
default_model = "step-3.7-flash"
docs_url = "https://platform.stepfun.ai/docs/en/step-plan/overview"
api = "openai-completions"
thinking_levels = ["low", "medium", "high"]
thinking_default = "medium"
thinking_parameter = "reasoning_effort"

[providers.context_windows]
"step-3.7-flash" = 262144
"step-3.5-flash" = 262144
"step-3.5-flash-2603" = 262144

[providers.model_metadata."step-3.7-flash"]
name = "Step 3.7 Flash"
reasoning = true
input = ["text", "image"]
context_window = 262144
cost = { input = 0.2, output = 1.15, cacheRead = 0.04, cacheWrite = 0 }

[providers.model_metadata."step-3.5-flash"]
name = "Step 3.5 Flash"
reasoning = true
input = ["text"]
context_window = 262144
cost = { input = 0.1, output = 0.3, cacheRead = 0.02, cacheWrite = 0 }

[providers.model_metadata."step-3.5-flash-2603"]
name = "Step 3.5 Flash (2603)"
reasoning = true
input = ["text"]
context_window = 262144
cost = { input = 0.1, output = 0.3, cacheRead = 0.02, cacheWrite = 0 }

[[providers]]
name = "stepfun-step-plan-cn"
display_name = "StepFun Step Plan (China)"
kind = "openai-compatible"
base_url = "https://api.stepfun.com/step_plan/v1"
api_key_env = "STEPFUN_STEP_PLAN_CN_API_KEY"
credential_name = "stepfun-step-plan-cn"
models = ["step-3.7-flash", "step-3.5-flash", "step-3.5-flash-2603"]
default_model = "step-3.7-flash"
docs_url = "https://platform.stepfun.com/docs/zh/step-plan/overview"
api = "openai-completions"
thinking_levels = ["low", "medium", "high"]
thinking_default = "medium"
thinking_parameter = "reasoning_effort"

[providers.context_windows]
"step-3.7-flash" = 262144
"step-3.5-flash" = 262144
"step-3.5-flash-2603" = 262144

[providers.model_metadata."step-3.7-flash"]
name = "Step 3.7 Flash"
reasoning = true
input = ["text", "image"]
context_window = 262144
cost = { input = 0.2, output = 1.15, cacheRead = 0.04, cacheWrite = 0 }

[providers.model_metadata."step-3.5-flash"]
name = "Step 3.5 Flash"
reasoning = true
input = ["text"]
context_window = 262144
cost = { input = 0.1, output = 0.3, cacheRead = 0.02, cacheWrite = 0 }

[providers.model_metadata."step-3.5-flash-2603"]
name = "Step 3.5 Flash (2603)"
reasoning = true
input = ["text"]
context_window = 262144
cost = { input = 0.1, output = 0.3, cacheRead = 0.02, cacheWrite = 0 }
4 changes: 4 additions & 0 deletions tests/test_provider_catalog.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,10 @@ def test_builtin_catalog_matches_expected_providers() -> None:
"xiaomi-token-plan-cn",
"xiaomi-token-plan-ams",
"xiaomi-token-plan-sgp",
"stepfun",
"stepfun-cn",
"stepfun-step-plan",
"stepfun-step-plan-cn",
]


Expand Down
4 changes: 4 additions & 0 deletions tests/test_provider_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,10 @@ def test_load_provider_settings_missing_file_uses_openai_default(tmp_path: Path)
"xiaomi-token-plan-cn",
"xiaomi-token-plan-ams",
"xiaomi-token-plan-sgp",
"stepfun",
"stepfun-cn",
"stepfun-step-plan",
"stepfun-step-plan-cn",
]
assert settings.providers[0].default_model == DEFAULT_MODEL
assert settings.get_provider("anthropic").api_key_env == "ANTHROPIC_API_KEY"
Expand Down