From 12d19943c5260a401cd671f4baef13b91965a301 Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 25 Apr 2026 14:16:04 +0900 Subject: [PATCH] feat(novita): add Novita AI provider with 6 popular models (#72) OpenAI-compatible LLM gateway. Pairs with the librefang-llm-drivers registration (librefang PR #3076) so Novita models surface in the dashboard model picker without each user having to add them via /api/models/custom. Pricing and limits sourced from GET /openai/v1/models on 2026-04-25 (input_token_price_per_m / output_token_price_per_m, divided by 10000 to get USD per million tokens). Curated to a small popular subset: - deepseek/deepseek-v3.2 (frontier) - moonshotai/kimi-k2-thinking (frontier, supports_thinking) - minimax/minimax-m2 (smart) - meta-llama/llama-3.3-70b-instruct (smart) - qwen/qwen3-coder-30b-a3b-instruct (balanced) - zai-org/glm-4.7-flash (balanced) --- providers/novita.toml | 91 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 providers/novita.toml diff --git a/providers/novita.toml b/providers/novita.toml new file mode 100644 index 0000000..2bb1a87 --- /dev/null +++ b/providers/novita.toml @@ -0,0 +1,91 @@ +# Novita AI — https://novita.ai +# OpenAI-compatible LLM gateway. Endpoint: https://api.novita.ai/openai/v1 +# Pricing reflects values returned by GET /openai/v1/models on 2026-04-25 +# (input_token_price_per_m / output_token_price_per_m, scaled /10000 to USD). +# Models: 6 + +[provider] +id = "novita" +display_name = "Novita AI" +api_key_env = "NOVITA_API_KEY" +base_url = "https://api.novita.ai/openai/v1" +key_required = true + +[[models]] +id = "deepseek/deepseek-v3.2" +display_name = "DeepSeek V3.2 (Novita)" +tier = "frontier" +context_window = 163840 +max_output_tokens = 65536 +input_cost_per_m = 0.269 +output_cost_per_m = 0.40 +supports_tools = true +supports_vision = false +supports_streaming = true +aliases = [] + +[[models]] +id = "moonshotai/kimi-k2-thinking" +display_name = "Kimi K2 Thinking (Novita)" +tier = "frontier" +context_window = 262144 +max_output_tokens = 262144 +input_cost_per_m = 0.60 +output_cost_per_m = 2.50 +supports_tools = true +supports_vision = false +supports_streaming = true +supports_thinking = true +aliases = [] + +[[models]] +id = "minimax/minimax-m2" +display_name = "MiniMax M2 (Novita)" +tier = "smart" +context_window = 204800 +max_output_tokens = 131072 +input_cost_per_m = 0.30 +output_cost_per_m = 1.20 +supports_tools = true +supports_vision = false +supports_streaming = true +aliases = [] + +[[models]] +id = "meta-llama/llama-3.3-70b-instruct" +display_name = "Llama 3.3 70B (Novita)" +tier = "smart" +context_window = 131072 +max_output_tokens = 120000 +input_cost_per_m = 0.135 +output_cost_per_m = 0.40 +supports_tools = true +supports_vision = false +supports_streaming = true +aliases = [] + +[[models]] +id = "qwen/qwen3-coder-30b-a3b-instruct" +display_name = "Qwen3 Coder 30B (Novita)" +tier = "balanced" +context_window = 160000 +max_output_tokens = 32768 +input_cost_per_m = 0.07 +output_cost_per_m = 0.27 +supports_tools = true +supports_vision = false +supports_streaming = true +aliases = [] + +[[models]] +id = "zai-org/glm-4.7-flash" +display_name = "GLM 4.7 Flash (Novita)" +tier = "balanced" +context_window = 200000 +max_output_tokens = 128000 +input_cost_per_m = 0.07 +output_cost_per_m = 0.40 +supports_tools = true +supports_vision = false +supports_streaming = true +aliases = []