From 813de554c9b08e375fc52eebc96c28d7c2faf5c2 Mon Sep 17 00:00:00 2001 From: longyongshen Date: Wed, 25 Mar 2026 16:32:10 +0800 Subject: [PATCH] =?UTF-8?q?feat(provider):=20add=20Step=20Fun=20(=E9=98=B6?= =?UTF-8?q?=E8=B7=83=E6=98=9F=E8=BE=B0)=20provider=20support?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Made-with: Cursor --- README.md | 3 +++ nanobot/config/schema.py | 1 + nanobot/providers/registry.py | 9 +++++++++ 3 files changed, 13 insertions(+) diff --git a/README.md b/README.md index ae2512eb0..7f686b683 100644 --- a/README.md +++ b/README.md @@ -846,6 +846,8 @@ Config file: `~/.nanobot/config.json` > - **VolcEngine / BytePlus Coding Plan**: Use dedicated providers `volcengineCodingPlan` or `byteplusCodingPlan` instead of the pay-per-use `volcengine` / `byteplus` providers. > - **Zhipu Coding Plan**: If you're on Zhipu's coding plan, set `"apiBase": "https://open.bigmodel.cn/api/coding/paas/v4"` in your zhipu provider config. > - **Alibaba Cloud BaiLian**: If you're using Alibaba Cloud BaiLian's OpenAI-compatible endpoint, set `"apiBase": "https://dashscope.aliyuncs.com/compatible-mode/v1"` in your dashscope provider config. +> - **Step Fun (Mainland China)**: If your API key is from Step Fun's mainland China platform (stepfun.com), set `"apiBase": "https://api.stepfun.com/v1"` in your stepfun provider config. +> - **Step Fun Step Plan**: Exclusive discount links for the nanobot community: [Overseas](https://platform.stepfun.ai/step-plan) · [Mainland China](https://platform.stepfun.com/step-plan) | Provider | Purpose | Get API Key | |----------|---------|-------------| @@ -867,6 +869,7 @@ Config file: `~/.nanobot/config.json` | `zhipu` | LLM (Zhipu GLM) | [open.bigmodel.cn](https://open.bigmodel.cn) | | `ollama` | LLM (local, Ollama) | — | | `mistral` | LLM | [docs.mistral.ai](https://docs.mistral.ai/) | +| `stepfun` | LLM (Step Fun/阶跃星辰) | [platform.stepfun.com](https://platform.stepfun.com) | | `ovms` | LLM (local, OpenVINO Model Server) | [docs.openvino.ai](https://docs.openvino.ai/2026/model-server/ovms_docs_llm_quickstart.html) | | `vllm` | LLM (local, any OpenAI-compatible server) | — | | `openai_codex` | LLM (Codex, OAuth) | `nanobot provider login openai-codex` | diff --git a/nanobot/config/schema.py b/nanobot/config/schema.py index 15fcacafe..c8b69b42e 100644 --- a/nanobot/config/schema.py +++ b/nanobot/config/schema.py @@ -77,6 +77,7 @@ class ProvidersConfig(Base): moonshot: ProviderConfig = Field(default_factory=ProviderConfig) minimax: ProviderConfig = Field(default_factory=ProviderConfig) mistral: ProviderConfig = Field(default_factory=ProviderConfig) + stepfun: ProviderConfig = Field(default_factory=ProviderConfig) # Step Fun (阶跃星辰) aihubmix: ProviderConfig = Field(default_factory=ProviderConfig) # AiHubMix API gateway siliconflow: ProviderConfig = Field(default_factory=ProviderConfig) # SiliconFlow (硅基流动) volcengine: ProviderConfig = Field(default_factory=ProviderConfig) # VolcEngine (火山引擎) diff --git a/nanobot/providers/registry.py b/nanobot/providers/registry.py index 206b0b504..e42e1f95e 100644 --- a/nanobot/providers/registry.py +++ b/nanobot/providers/registry.py @@ -286,6 +286,15 @@ PROVIDERS: tuple[ProviderSpec, ...] = ( backend="openai_compat", default_api_base="https://api.mistral.ai/v1", ), + # Step Fun (阶跃星辰): OpenAI-compatible API + ProviderSpec( + name="stepfun", + keywords=("stepfun", "step"), + env_key="STEPFUN_API_KEY", + display_name="Step Fun", + backend="openai_compat", + default_api_base="https://api.stepfun.com/v1", + ), # === Local deployment (matched by config key, NOT by api_base) ========= # vLLM / any OpenAI-compatible local server ProviderSpec(