From e7b15ac48ec66ff1bb01bb6161fd37ac94735ef9 Mon Sep 17 00:00:00 2001 From: Robert Putt Date: Mon, 13 Jul 2026 19:35:09 +0100 Subject: [PATCH] Add Nscale provider --- providers/nscale/logo.svg | 3 +++ .../Qwen/Qwen2.5-Coder-32B-Instruct.toml | 23 ++++++++++++++++ .../Qwen/Qwen2.5-Coder-3B-Instruct.toml | 23 ++++++++++++++++ .../Qwen/Qwen2.5-Coder-7B-Instruct.toml | 23 ++++++++++++++++ .../Qwen/Qwen3-235B-A22B-Instruct-2507.toml | 16 +++++++++++ .../nscale/models/Qwen/Qwen3-235B-A22B.toml | 7 +++++ .../models/Qwen/Qwen3-4B-Instruct-2507.toml | 23 ++++++++++++++++ .../models/Qwen/Qwen3-4B-Thinking-2507.toml | 24 +++++++++++++++++ .../DeepSeek-R1-Distill-Llama-8B.toml | 27 +++++++++++++++++++ .../DeepSeek-R1-Distill-Qwen-14B.toml | 27 +++++++++++++++++++ .../DeepSeek-R1-Distill-Qwen-7B.toml | 27 +++++++++++++++++++ .../meta-llama/Llama-3.1-8B-Instruct.toml | 24 +++++++++++++++++ .../Llama-3.2-11B-Vision-Instruct.toml | 24 +++++++++++++++++ .../Llama-4-Scout-17B-16E-Instruct.toml | 12 +++++++++ .../models/mistralai/Devstral-Small-2505.toml | 24 +++++++++++++++++ .../Mixtral-8x22B-Instruct-v0.1.toml | 24 +++++++++++++++++ .../nscale/models/openai/gpt-oss-120b.toml | 9 +++++++ .../nscale/models/openai/gpt-oss-20b.toml | 9 +++++++ providers/nscale/provider.toml | 8 ++++++ 19 files changed, 357 insertions(+) create mode 100644 providers/nscale/logo.svg create mode 100644 providers/nscale/models/Qwen/Qwen2.5-Coder-32B-Instruct.toml create mode 100644 providers/nscale/models/Qwen/Qwen2.5-Coder-3B-Instruct.toml create mode 100644 providers/nscale/models/Qwen/Qwen2.5-Coder-7B-Instruct.toml create mode 100644 providers/nscale/models/Qwen/Qwen3-235B-A22B-Instruct-2507.toml create mode 100644 providers/nscale/models/Qwen/Qwen3-235B-A22B.toml create mode 100644 providers/nscale/models/Qwen/Qwen3-4B-Instruct-2507.toml create mode 100644 providers/nscale/models/Qwen/Qwen3-4B-Thinking-2507.toml create mode 100644 providers/nscale/models/deepseek-ai/DeepSeek-R1-Distill-Llama-8B.toml create mode 100644 providers/nscale/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-14B.toml create mode 100644 providers/nscale/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B.toml create mode 100644 providers/nscale/models/meta-llama/Llama-3.1-8B-Instruct.toml create mode 100644 providers/nscale/models/meta-llama/Llama-3.2-11B-Vision-Instruct.toml create mode 100644 providers/nscale/models/meta-llama/Llama-4-Scout-17B-16E-Instruct.toml create mode 100644 providers/nscale/models/mistralai/Devstral-Small-2505.toml create mode 100644 providers/nscale/models/mistralai/Mixtral-8x22B-Instruct-v0.1.toml create mode 100644 providers/nscale/models/openai/gpt-oss-120b.toml create mode 100644 providers/nscale/models/openai/gpt-oss-20b.toml create mode 100644 providers/nscale/provider.toml diff --git a/providers/nscale/logo.svg b/providers/nscale/logo.svg new file mode 100644 index 0000000000..cd6f9ba1e3 --- /dev/null +++ b/providers/nscale/logo.svg @@ -0,0 +1,3 @@ + + + diff --git a/providers/nscale/models/Qwen/Qwen2.5-Coder-32B-Instruct.toml b/providers/nscale/models/Qwen/Qwen2.5-Coder-32B-Instruct.toml new file mode 100644 index 0000000000..4ec4dcbc09 --- /dev/null +++ b/providers/nscale/models/Qwen/Qwen2.5-Coder-32B-Instruct.toml @@ -0,0 +1,23 @@ +name = "Qwen 2.5 Coder 32B Instruct" +description = "Large coding assistant for complex programming, refactoring, and code understanding" +attachment = false +reasoning = false +tool_call = true +structured_output = true +temperature = true +release_date = "2024-11-12" +last_updated = "2024-11-12" +open_weights = true + +[cost] +input = 0.06 +output = 0.20 + +[limit] +context = 131_072 +input = 128_000 +output = 8_192 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/nscale/models/Qwen/Qwen2.5-Coder-3B-Instruct.toml b/providers/nscale/models/Qwen/Qwen2.5-Coder-3B-Instruct.toml new file mode 100644 index 0000000000..0e38d54e58 --- /dev/null +++ b/providers/nscale/models/Qwen/Qwen2.5-Coder-3B-Instruct.toml @@ -0,0 +1,23 @@ +name = "Qwen 2.5 Coder 3B Instruct" +description = "Compact coding assistant for code completion and generation" +attachment = false +reasoning = false +tool_call = true +structured_output = true +temperature = true +release_date = "2024-11-12" +last_updated = "2024-11-12" +open_weights = true + +[cost] +input = 0.01 +output = 0.03 + +[limit] +context = 32_768 +input = 30_000 +output = 8_192 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/nscale/models/Qwen/Qwen2.5-Coder-7B-Instruct.toml b/providers/nscale/models/Qwen/Qwen2.5-Coder-7B-Instruct.toml new file mode 100644 index 0000000000..72cfea05a4 --- /dev/null +++ b/providers/nscale/models/Qwen/Qwen2.5-Coder-7B-Instruct.toml @@ -0,0 +1,23 @@ +name = "Qwen 2.5 Coder 7B Instruct" +description = "Mid-size coding assistant for code completion, generation, and understanding" +attachment = false +reasoning = false +tool_call = true +structured_output = true +temperature = true +release_date = "2024-11-12" +last_updated = "2024-11-12" +open_weights = true + +[cost] +input = 0.01 +output = 0.03 + +[limit] +context = 32_768 +input = 30_000 +output = 8_192 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/nscale/models/Qwen/Qwen3-235B-A22B-Instruct-2507.toml b/providers/nscale/models/Qwen/Qwen3-235B-A22B-Instruct-2507.toml new file mode 100644 index 0000000000..3818b84d2d --- /dev/null +++ b/providers/nscale/models/Qwen/Qwen3-235B-A22B-Instruct-2507.toml @@ -0,0 +1,16 @@ +base_model = "alibaba/qwen3-235b-a22b" + +name = "Qwen3 235B A22B Instruct 2507" +description = "Large Mixture-of-Experts instruction model for general-purpose chat and tool use" +release_date = "2025-07-18" +last_updated = "2025-07-18" +reasoning = false +structured_output = true + +[cost] +input = 0.20 +output = 0.60 + +[limit] +input = 128_000 +output = 8_192 diff --git a/providers/nscale/models/Qwen/Qwen3-235B-A22B.toml b/providers/nscale/models/Qwen/Qwen3-235B-A22B.toml new file mode 100644 index 0000000000..69a53d2c68 --- /dev/null +++ b/providers/nscale/models/Qwen/Qwen3-235B-A22B.toml @@ -0,0 +1,7 @@ +base_model = "alibaba/qwen3-235b-a22b" + +reasoning_options = [] + +[cost] +input = 0.20 +output = 0.60 diff --git a/providers/nscale/models/Qwen/Qwen3-4B-Instruct-2507.toml b/providers/nscale/models/Qwen/Qwen3-4B-Instruct-2507.toml new file mode 100644 index 0000000000..cae128a681 --- /dev/null +++ b/providers/nscale/models/Qwen/Qwen3-4B-Instruct-2507.toml @@ -0,0 +1,23 @@ +name = "Qwen3 4B Instruct 2507" +description = "Compact instruction model for lightweight chat and generation tasks" +attachment = false +reasoning = false +tool_call = true +structured_output = true +temperature = true +release_date = "2025-07-18" +last_updated = "2025-07-18" +open_weights = true + +[cost] +input = 0.01 +output = 0.03 + +[limit] +context = 131_072 +input = 128_000 +output = 8_192 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/nscale/models/Qwen/Qwen3-4B-Thinking-2507.toml b/providers/nscale/models/Qwen/Qwen3-4B-Thinking-2507.toml new file mode 100644 index 0000000000..a044ad29a1 --- /dev/null +++ b/providers/nscale/models/Qwen/Qwen3-4B-Thinking-2507.toml @@ -0,0 +1,24 @@ +name = "Qwen3 4B Thinking 2507" +description = "Compact reasoning model with multi-step thinking capabilities" +attachment = false +reasoning = true +reasoning_options = [] +tool_call = true +structured_output = true +temperature = true +release_date = "2025-07-18" +last_updated = "2025-07-18" +open_weights = true + +[cost] +input = 0.01 +output = 0.03 + +[limit] +context = 131_072 +input = 128_000 +output = 8_192 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/nscale/models/deepseek-ai/DeepSeek-R1-Distill-Llama-8B.toml b/providers/nscale/models/deepseek-ai/DeepSeek-R1-Distill-Llama-8B.toml new file mode 100644 index 0000000000..d37558f36d --- /dev/null +++ b/providers/nscale/models/deepseek-ai/DeepSeek-R1-Distill-Llama-8B.toml @@ -0,0 +1,27 @@ +name = "DeepSeek R1 Distill Llama 8B" +description = "Compact distilled reasoning model based on Llama architecture" +attachment = false +reasoning = true +reasoning_options = [] +tool_call = false +structured_output = false +temperature = true +release_date = "2025-01-20" +last_updated = "2025-01-20" +open_weights = true + +[cost] +input = 0.05 +output = 0.05 + +[limit] +context = 131_072 +input = 128_000 +output = 8_192 + +[modalities] +input = ["text"] +output = ["text"] + +[interleaved] +field = "reasoning_content" diff --git a/providers/nscale/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-14B.toml b/providers/nscale/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-14B.toml new file mode 100644 index 0000000000..198c9ecbab --- /dev/null +++ b/providers/nscale/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-14B.toml @@ -0,0 +1,27 @@ +name = "DeepSeek R1 Distill Qwen 14B" +description = "Mid-size distilled reasoning model based on Qwen architecture" +attachment = false +reasoning = true +reasoning_options = [] +tool_call = false +structured_output = false +temperature = true +release_date = "2025-01-20" +last_updated = "2025-01-20" +open_weights = true + +[cost] +input = 0.20 +output = 0.20 + +[limit] +context = 131_072 +input = 128_000 +output = 8_192 + +[modalities] +input = ["text"] +output = ["text"] + +[interleaved] +field = "reasoning_content" diff --git a/providers/nscale/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B.toml b/providers/nscale/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B.toml new file mode 100644 index 0000000000..5a6a644294 --- /dev/null +++ b/providers/nscale/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B.toml @@ -0,0 +1,27 @@ +name = "DeepSeek R1 Distill Qwen 7B" +description = "Compact distilled reasoning model based on Qwen architecture optimized for math" +attachment = false +reasoning = true +reasoning_options = [] +tool_call = false +structured_output = false +temperature = true +release_date = "2025-01-20" +last_updated = "2025-01-20" +open_weights = true + +[cost] +input = 0.15 +output = 0.15 + +[limit] +context = 131_072 +input = 128_000 +output = 8_192 + +[modalities] +input = ["text"] +output = ["text"] + +[interleaved] +field = "reasoning_content" diff --git a/providers/nscale/models/meta-llama/Llama-3.1-8B-Instruct.toml b/providers/nscale/models/meta-llama/Llama-3.1-8B-Instruct.toml new file mode 100644 index 0000000000..5a537644dd --- /dev/null +++ b/providers/nscale/models/meta-llama/Llama-3.1-8B-Instruct.toml @@ -0,0 +1,24 @@ +name = "Llama 3.1 8B Instruct" +description = "Compact open Llama model for general chat and instruction following" +attachment = false +reasoning = false +tool_call = true +structured_output = true +temperature = true +knowledge = "2023-12" +release_date = "2024-07-23" +last_updated = "2024-07-23" +open_weights = true + +[cost] +input = 0.06 +output = 0.06 + +[limit] +context = 131_072 +input = 128_000 +output = 8_192 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/nscale/models/meta-llama/Llama-3.2-11B-Vision-Instruct.toml b/providers/nscale/models/meta-llama/Llama-3.2-11B-Vision-Instruct.toml new file mode 100644 index 0000000000..1c34baf6d0 --- /dev/null +++ b/providers/nscale/models/meta-llama/Llama-3.2-11B-Vision-Instruct.toml @@ -0,0 +1,24 @@ +name = "Llama 3.2 11B Vision Instruct" +description = "Multimodal vision-language model for image understanding and text generation" +attachment = true +reasoning = false +tool_call = true +structured_output = true +temperature = true +knowledge = "2023-12" +release_date = "2024-09-25" +last_updated = "2024-09-25" +open_weights = true + +[cost] +input = 0.06 +output = 0.06 + +[limit] +context = 131_072 +input = 128_000 +output = 8_192 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/nscale/models/meta-llama/Llama-4-Scout-17B-16E-Instruct.toml b/providers/nscale/models/meta-llama/Llama-4-Scout-17B-16E-Instruct.toml new file mode 100644 index 0000000000..fc1278e634 --- /dev/null +++ b/providers/nscale/models/meta-llama/Llama-4-Scout-17B-16E-Instruct.toml @@ -0,0 +1,12 @@ +base_model = "meta/llama-4-scout-17b-instruct" + +structured_output = true + +[cost] +input = 0.09 +output = 0.29 + +[limit] +context = 131_072 +input = 128_000 +output = 8_192 diff --git a/providers/nscale/models/mistralai/Devstral-Small-2505.toml b/providers/nscale/models/mistralai/Devstral-Small-2505.toml new file mode 100644 index 0000000000..d2d0d88176 --- /dev/null +++ b/providers/nscale/models/mistralai/Devstral-Small-2505.toml @@ -0,0 +1,24 @@ +name = "Devstral Small 2505" +description = "Mistral coding agent model for repository tasks and software engineering workflows" +attachment = false +reasoning = false +tool_call = true +structured_output = true +temperature = true +knowledge = "2025-05" +release_date = "2025-05-21" +last_updated = "2025-05-21" +open_weights = true + +[cost] +input = 0.10 +output = 0.30 + +[limit] +context = 128_000 +input = 124_000 +output = 8_192 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/nscale/models/mistralai/Mixtral-8x22B-Instruct-v0.1.toml b/providers/nscale/models/mistralai/Mixtral-8x22B-Instruct-v0.1.toml new file mode 100644 index 0000000000..34302abc40 --- /dev/null +++ b/providers/nscale/models/mistralai/Mixtral-8x22B-Instruct-v0.1.toml @@ -0,0 +1,24 @@ +name = "Mixtral 8x22B Instruct v0.1" +description = "Large Mixture-of-Experts model for general-purpose instruction following" +attachment = false +reasoning = false +tool_call = true +structured_output = true +temperature = true +knowledge = "2024-04" +release_date = "2024-04-17" +last_updated = "2024-04-17" +open_weights = true + +[cost] +input = 1.20 +output = 1.20 + +[limit] +context = 65_536 +input = 63_000 +output = 4_096 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/nscale/models/openai/gpt-oss-120b.toml b/providers/nscale/models/openai/gpt-oss-120b.toml new file mode 100644 index 0000000000..d892b65a92 --- /dev/null +++ b/providers/nscale/models/openai/gpt-oss-120b.toml @@ -0,0 +1,9 @@ +# reasoning_effort "low"|"medium"|"high" supported via OpenAI-compatible chat completions +# https://docs.nscale.com/api-reference/inference/create-chat-completion (accessed 2026-07-13) +base_model = "openai/gpt-oss-120b" + +reasoning_options = [{ type = "effort", values = ["low", "medium", "high"] }] + +[cost] +input = 0.10 +output = 0.40 diff --git a/providers/nscale/models/openai/gpt-oss-20b.toml b/providers/nscale/models/openai/gpt-oss-20b.toml new file mode 100644 index 0000000000..c1ebb1f4f0 --- /dev/null +++ b/providers/nscale/models/openai/gpt-oss-20b.toml @@ -0,0 +1,9 @@ +# reasoning_effort "low"|"medium"|"high" supported via OpenAI-compatible chat completions +# https://docs.nscale.com/api-reference/inference/create-chat-completion (accessed 2026-07-13) +base_model = "openai/gpt-oss-20b" + +reasoning_options = [{ type = "effort", values = ["low", "medium", "high"] }] + +[cost] +input = 0.05 +output = 0.20 diff --git a/providers/nscale/provider.toml b/providers/nscale/provider.toml new file mode 100644 index 0000000000..7b96f6d017 --- /dev/null +++ b/providers/nscale/provider.toml @@ -0,0 +1,8 @@ +# Pricing and model details: https://nscale.com/serverless (accessed 2026-07-13) +# API docs: https://docs.nscale.com/docs/use-cases/chat (accessed 2026-07-13) +# Base URL and auth: https://docs.nscale.com/docs/use-cases/chat (accessed 2026-07-13) +name = "Nscale" +env = ["NSCALE_API_KEY"] +npm = "@ai-sdk/openai-compatible" +api = "https://inference.api.nscale.com/v1" +doc = "https://docs.nscale.com/docs/ai-services/models"