From acc803c43bf31c08359eb88d86fd01d9ff259c89 Mon Sep 17 00:00:00 2001 From: jax-novita Date: Wed, 5 Aug 2026 17:09:53 +0800 Subject: [PATCH 1/2] feat(providers): add Novita AI as an LLM provider Adds a "novita" entry to the openai-format provider table alongside deepseek/qwen/etc, with its OpenAI-compatible base URL as the default. --- README.md | 2 +- backend/app/core/settings.py | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3b589ae..8ecac3b 100644 --- a/README.md +++ b/README.md @@ -292,7 +292,7 @@ If needed, set `VITE_API_BASE_URL` for the frontend. ## 🔐 Provider Configuration -The backend supports multiple providers, including `minimax`. +The backend supports multiple providers, including `minimax` and `novita`. Configuration is loaded from: 1. environment variables defined in `backend/app/core/settings.py` diff --git a/backend/app/core/settings.py b/backend/app/core/settings.py index 26720e0..6040c6f 100644 --- a/backend/app/core/settings.py +++ b/backend/app/core/settings.py @@ -219,6 +219,14 @@ class Settings(BaseModel): timeout=120, extra_headers={} ), + "novita": ProviderConfig( + base_url_env="NOVITA_BASE_URL", + api_key_env="NOVITA_API_KEY", + default_model="deepseek/deepseek-v3", + api_format="openai", + timeout=120, + extra_headers={} + ), }) # Runtime overrides (set via API, persisted to JSON) @@ -383,6 +391,7 @@ def _get_default_base_url(self, provider_name: str) -> str: "qwen": "https://dashscope.aliyuncs.com/compatible-mode/v1", "bigmodel": "https://open.bigmodel.cn/api/paas/v4", "minimax": "https://api.minimaxi.com/anthropic", + "novita": "https://api.novita.ai/openai/v1", } return defaults.get(provider_name, "") From d71d44cf1d69c662aa5fdecb9fca668d700c954f Mon Sep 17 00:00:00 2001 From: jax-novita Date: Wed, 5 Aug 2026 21:08:09 +0800 Subject: [PATCH 2/2] Recommend Novita's current flagship models The models listed for Novita were older ids that no longer reflect what the platform leads with. Point the recommendations at the three current flagships instead, each verified against api.novita.ai: moonshotai/kimi-k3 1M context, native vision zai-org/glm-5.2 1M context, long-horizon agentic work deepseek/deepseek-v4-flash-0731 1M context, cheapest of the three Context windows, output limits, input modalities and pricing were taken from the live /openai/v1/models response rather than carried over. --- backend/app/core/settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/app/core/settings.py b/backend/app/core/settings.py index 6040c6f..da2c96e 100644 --- a/backend/app/core/settings.py +++ b/backend/app/core/settings.py @@ -222,7 +222,7 @@ class Settings(BaseModel): "novita": ProviderConfig( base_url_env="NOVITA_BASE_URL", api_key_env="NOVITA_API_KEY", - default_model="deepseek/deepseek-v3", + default_model="moonshotai/kimi-k3", api_format="openai", timeout=120, extra_headers={}