From 9d07093e6dd0914ba4d3f0e3b19796085376e2db Mon Sep 17 00:00:00 2001 From: Jiajun Date: Thu, 2 Apr 2026 22:16:25 +0800 Subject: [PATCH] feat(provider): add Qianfan provider support (#2699) --- README.md | 2 ++ nanobot/config/schema.py | 1 + nanobot/providers/registry.py | 9 +++++++++ 3 files changed, 12 insertions(+) diff --git a/README.md b/README.md index 9cf9e7524..4ba66e8d9 100644 --- a/README.md +++ b/README.md @@ -959,6 +959,8 @@ Config file: `~/.nanobot/config.json` | `vllm` | LLM (local, any OpenAI-compatible server) | — | | `openai_codex` | LLM (Codex, OAuth) | `nanobot provider login openai-codex` | | `github_copilot` | LLM (GitHub Copilot, OAuth) | `nanobot provider login github-copilot` | +| `qianfan` | LLM (Baidu Qianfan) | [cloud.baidu.com](https://cloud.baidu.com/doc/qianfan/s/Hmh4suq26) | +
OpenAI Codex (OAuth) diff --git a/nanobot/config/schema.py b/nanobot/config/schema.py index 18ca7a3be..3f917d26d 100644 --- a/nanobot/config/schema.py +++ b/nanobot/config/schema.py @@ -96,6 +96,7 @@ class ProvidersConfig(Base): byteplus_coding_plan: ProviderConfig = Field(default_factory=ProviderConfig) # BytePlus Coding Plan openai_codex: ProviderConfig = Field(default_factory=ProviderConfig, exclude=True) # OpenAI Codex (OAuth) github_copilot: ProviderConfig = Field(default_factory=ProviderConfig, exclude=True) # Github Copilot (OAuth) + qianfan: ProviderConfig = Field(default_factory=ProviderConfig) # Qianfan (百度千帆) class HeartbeatConfig(Base): diff --git a/nanobot/providers/registry.py b/nanobot/providers/registry.py index 5644fc51d..9b0b5f74f 100644 --- a/nanobot/providers/registry.py +++ b/nanobot/providers/registry.py @@ -338,6 +338,15 @@ PROVIDERS: tuple[ProviderSpec, ...] = ( backend="openai_compat", default_api_base="https://api.groq.com/openai/v1", ), + # Qianfan (百度千帆): OpenAI-compatible API + ProviderSpec( + name="qianfan", + keywords=("qianfan", "ernie"), + env_key="QIANFAN_API_KEY", + display_name="Qianfan", + backend="openai_compat", + default_api_base="https://qianfan.baidubce.com/v2" + ), )