refactor: use is_oauth flag instead of hardcoded provider name check

This commit is contained in:
Re-bin 2026-02-17 08:41:09 +00:00
parent 12e59ecaae
commit f5c5b13ff0
2 changed files with 16 additions and 13 deletions

View File

@ -145,19 +145,19 @@ That's it! You have a working AI assistant in 2 minutes.
## 💬 Chat Apps ## 💬 Chat Apps
Talk to your nanobot through Telegram, Discord, WhatsApp, Feishu, Mochat, DingTalk, Slack, Email, or QQ — anytime, anywhere. Connect nanobot to your favorite chat platform.
| Channel | Setup | | Channel | What you need |
|---------|-------| |---------|---------------|
| **Telegram** | Easy (just a token) | | **Telegram** | Bot token from @BotFather |
| **Discord** | Easy (bot token + intents) | | **Discord** | Bot token + Message Content intent |
| **WhatsApp** | Medium (scan QR) | | **WhatsApp** | QR code scan |
| **Feishu** | Medium (app credentials) | | **Feishu** | App ID + App Secret |
| **Mochat** | Medium (claw token + websocket) | | **Mochat** | Claw token (auto-setup available) |
| **DingTalk** | Medium (app credentials) | | **DingTalk** | App Key + App Secret |
| **Slack** | Medium (bot + app tokens) | | **Slack** | Bot token + App-Level token |
| **Email** | Medium (IMAP/SMTP credentials) | | **Email** | IMAP/SMTP credentials |
| **QQ** | Easy (app credentials) | | **QQ** | App ID + App Secret |
<details> <details>
<summary><b>Telegram</b> (Recommended)</summary> <summary><b>Telegram</b> (Recommended)</summary>
@ -588,6 +588,7 @@ Config file: `~/.nanobot/config.json`
| `zhipu` | LLM (Zhipu GLM) | [open.bigmodel.cn](https://open.bigmodel.cn) | | `zhipu` | LLM (Zhipu GLM) | [open.bigmodel.cn](https://open.bigmodel.cn) |
| `vllm` | LLM (local, any OpenAI-compatible server) | — | | `vllm` | LLM (local, any OpenAI-compatible server) | — |
| `openai_codex` | LLM (Codex, OAuth) | `nanobot provider login openai-codex` | | `openai_codex` | LLM (Codex, OAuth) | `nanobot provider login openai-codex` |
| `github_copilot` | LLM (GitHub Copilot, OAuth) | Requires [GitHub Copilot](https://github.com/features/copilot) subscription |
<details> <details>
<summary><b>OpenAI Codex (OAuth)</b></summary> <summary><b>OpenAI Codex (OAuth)</b></summary>

View File

@ -292,7 +292,9 @@ def _make_provider(config: Config):
if provider_name == "openai_codex" or model.startswith("openai-codex/"): if provider_name == "openai_codex" or model.startswith("openai-codex/"):
return OpenAICodexProvider(default_model=model) return OpenAICodexProvider(default_model=model)
if not model.startswith("bedrock/") and not (p and p.api_key) and provider_name != "github_copilot": from nanobot.providers.registry import find_by_name
spec = find_by_name(provider_name)
if not model.startswith("bedrock/") and not (p and p.api_key) and not (spec and spec.is_oauth):
console.print("[red]Error: No API key configured.[/red]") console.print("[red]Error: No API key configured.[/red]")
console.print("Set one in ~/.nanobot/config.json under providers section") console.print("Set one in ~/.nanobot/config.json under providers section")
raise typer.Exit(1) raise typer.Exit(1)