diff --git a/README.md b/README.md index bde285d..bf19298 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ ⚡️ Delivers core agent functionality in just **~4,000** lines of code — **99% smaller** than Clawdbot's 430k+ lines. -📏 Real-time line count: **3,428 lines** (run `bash core_agent_lines.sh` to verify anytime) +📏 Real-time line count: **3,431 lines** (run `bash core_agent_lines.sh` to verify anytime) ## 📢 News diff --git a/nanobot/cli/commands.py b/nanobot/cli/commands.py index bc2ea74..2ae6e05 100644 --- a/nanobot/cli/commands.py +++ b/nanobot/cli/commands.py @@ -655,12 +655,14 @@ def status(): has_anthropic = bool(config.providers.anthropic.api_key) has_openai = bool(config.providers.openai.api_key) has_gemini = bool(config.providers.gemini.api_key) + has_zhipu = bool(config.providers.zhipu.api_key) has_vllm = bool(config.providers.vllm.api_base) console.print(f"OpenRouter API: {'[green]✓[/green]' if has_openrouter else '[dim]not set[/dim]'}") console.print(f"Anthropic API: {'[green]✓[/green]' if has_anthropic else '[dim]not set[/dim]'}") console.print(f"OpenAI API: {'[green]✓[/green]' if has_openai else '[dim]not set[/dim]'}") console.print(f"Gemini API: {'[green]✓[/green]' if has_gemini else '[dim]not set[/dim]'}") + console.print(f"Zhipu AI API: {'[green]✓[/green]' if has_zhipu else '[dim]not set[/dim]'}") vllm_status = f"[green]✓ {config.providers.vllm.api_base}[/green]" if has_vllm else "[dim]not set[/dim]" console.print(f"vLLM/Local: {vllm_status}") diff --git a/nanobot/providers/litellm_provider.py b/nanobot/providers/litellm_provider.py index a15f05e..7a2d373 100644 --- a/nanobot/providers/litellm_provider.py +++ b/nanobot/providers/litellm_provider.py @@ -53,6 +53,7 @@ class LiteLLMProvider(LLMProvider): os.environ.setdefault("GEMINI_API_KEY", api_key) elif "zhipu" in default_model or "glm" in default_model or "zai" in default_model: os.environ.setdefault("ZAI_API_KEY", api_key) + os.environ.setdefault("ZHIPUAI_API_KEY", api_key) elif "dashscope" in default_model or "qwen" in default_model.lower(): os.environ.setdefault("DASHSCOPE_API_KEY", api_key) elif "groq" in default_model: @@ -99,7 +100,8 @@ class LiteLLMProvider(LLMProvider): if ("glm" in model.lower() or "zhipu" in model.lower()) and not ( model.startswith("zhipu/") or model.startswith("zai/") or - model.startswith("openrouter/") + model.startswith("openrouter/") or + model.startswith("hosted_vllm/") ): model = f"zai/{model}"