diff --git a/models/deepseek/deepseek-v3-0324.toml b/models/deepseek/deepseek-v3-0324.toml new file mode 100644 index 000000000..5bc0385e6 --- /dev/null +++ b/models/deepseek/deepseek-v3-0324.toml @@ -0,0 +1,23 @@ +name = "DeepSeek V3 0324" +description = "March 2025 checkpoint of DeepSeek-V3 with improved reasoning and coding" +family = "deepseek" +release_date = "2025-03-24" +last_updated = "2025-03-24" +attachment = false +reasoning = false +temperature = true +tool_call = true +open_weights = true + +[limit] +context = 163_840 +output = 163_840 + +[modalities] +input = ["text"] +output = ["text"] + +[[weights]] +label = "Model weights" +url = "https://huggingface.co/deepseek-ai/DeepSeek-V3-0324" +format = "safetensors" diff --git a/providers/crusoe/logo.svg b/providers/crusoe/logo.svg new file mode 100644 index 000000000..15851f159 --- /dev/null +++ b/providers/crusoe/logo.svg @@ -0,0 +1,23 @@ + + + + + + + + + \ No newline at end of file diff --git a/providers/crusoe/models/deepseek-ai/DeepSeek-V3-0324.toml b/providers/crusoe/models/deepseek-ai/DeepSeek-V3-0324.toml new file mode 100644 index 000000000..cfa6e7464 --- /dev/null +++ b/providers/crusoe/models/deepseek-ai/DeepSeek-V3-0324.toml @@ -0,0 +1,7 @@ +base_model = "deepseek/deepseek-v3-0324" + +# Pricing: https://www.crusoe.ai/cloud/pricing (accessed 2026-08-13) +[cost] +input = 0.50 +output = 1.50 +cache_read = 0.25 diff --git a/providers/crusoe/models/google/gemma-4-31b-it.toml b/providers/crusoe/models/google/gemma-4-31b-it.toml new file mode 100644 index 000000000..c3740f1f3 --- /dev/null +++ b/providers/crusoe/models/google/gemma-4-31b-it.toml @@ -0,0 +1,15 @@ +# Probed live endpoint 2026-08-13 (POST /v1/chat/completions, temperature 0): +# reasoning is off by default (no reasoning field on a plain request); +# setting reasoning_effort to any of low/medium/high enables it (constant +# length, values inert relative to each other) and "none" disables it, +# so this behaves as a toggle. Reasoning text arrives in the message field +# named "reasoning" (not "reasoning_content"). A tool-call request returned +# tool_calls without reasoning text, so no interleaved claim is made. +base_model = "google/gemma-4-31b-it" +reasoning_options = [{ type = "toggle" }] + +# Pricing: https://www.crusoe.ai/cloud/pricing (accessed 2026-08-13) +[cost] +input = 0.14 +output = 0.40 +cache_read = 0.14 diff --git a/providers/crusoe/models/meta-llama/Llama-3.3-70B-Instruct.toml b/providers/crusoe/models/meta-llama/Llama-3.3-70B-Instruct.toml new file mode 100644 index 000000000..452890025 --- /dev/null +++ b/providers/crusoe/models/meta-llama/Llama-3.3-70B-Instruct.toml @@ -0,0 +1,7 @@ +base_model = "meta/llama-3.3-70b-instruct" + +# Pricing: https://www.crusoe.ai/cloud/pricing (accessed 2026-08-13) +[cost] +input = 0.25 +output = 0.75 +cache_read = 0.13 diff --git a/providers/crusoe/models/moonshotai/Kimi-K2.6.toml b/providers/crusoe/models/moonshotai/Kimi-K2.6.toml new file mode 100644 index 000000000..6261aed8a --- /dev/null +++ b/providers/crusoe/models/moonshotai/Kimi-K2.6.toml @@ -0,0 +1,15 @@ +# Probed live endpoint 2026-08-13 (POST /v1/chat/completions, temperature 0): +# reasoning is on by default; reasoning_effort "none" disables it (0 chars); +# low/medium/high are accepted but do not materially change reasoning +# length, so this is encoded as a toggle (matches deepinfra's Kimi-K2.6 +# entry). Reasoning text arrives interleaved with tool_calls, in the +# message field named "reasoning" (not "reasoning_content"). +base_model = "moonshotai/kimi-k2.6" +reasoning_options = [{ type = "toggle" }] +interleaved = true + +# Pricing: https://www.crusoe.ai/cloud/pricing (accessed 2026-08-13) +[cost] +input = 0.70 +output = 3.50 +cache_read = 0.35 diff --git a/providers/crusoe/models/nvidia/Nemotron-3-Nano-Omni-Reasoning-30B-A3B.toml b/providers/crusoe/models/nvidia/Nemotron-3-Nano-Omni-Reasoning-30B-A3B.toml new file mode 100644 index 000000000..dbaed161e --- /dev/null +++ b/providers/crusoe/models/nvidia/Nemotron-3-Nano-Omni-Reasoning-30B-A3B.toml @@ -0,0 +1,17 @@ +# Probed live endpoint 2026-08-13 (POST /v1/chat/completions, temperature 0): +# reasoning is on by default; reasoning_effort "none" disables it (0 chars); +# low/medium/high are accepted but inert; "max" returns HTTP 400. Encoded +# as a toggle. Reasoning text arrives interleaved with tool_calls, in the +# message field named "reasoning" (not "reasoning_content"). +base_model = "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning" +reasoning_options = [{ type = "toggle" }] +interleaved = true + +# Pricing: https://www.crusoe.ai/cloud/pricing (accessed 2026-08-13). +# Text/image/video input is 0.30; audio input is billed at 0.50 +# (cached-audio pricing exists on the page but has no schema field). +[cost] +input = 0.30 +output = 1.83 +cache_read = 0.30 +input_audio = 0.50 diff --git a/providers/crusoe/models/openai/gpt-oss-120b.toml b/providers/crusoe/models/openai/gpt-oss-120b.toml new file mode 100644 index 000000000..05c66f0da --- /dev/null +++ b/providers/crusoe/models/openai/gpt-oss-120b.toml @@ -0,0 +1,14 @@ +# Probed live endpoint 2026-08-13 (POST /v1/chat/completions, temperature 0): +# reasoning_effort low/medium/high accepted and scale reasoning length +# (26/58/174 chars on the same prompt); "none" and "max" return HTTP 400. +# Reasoning text arrives interleaved with tool_calls, in the message field +# named "reasoning" (not "reasoning_content"), hence the boolean form below. +base_model = "openai/gpt-oss-120b" +reasoning_options = [{ type = "effort", values = ["low", "medium", "high"] }] +interleaved = true + +# Pricing: https://www.crusoe.ai/cloud/pricing (accessed 2026-08-13) +[cost] +input = 0.05 +output = 0.20 +cache_read = 0.05 diff --git a/providers/crusoe/models/zai/GLM-5.1.toml b/providers/crusoe/models/zai/GLM-5.1.toml new file mode 100644 index 000000000..1af1f2b36 --- /dev/null +++ b/providers/crusoe/models/zai/GLM-5.1.toml @@ -0,0 +1,15 @@ +# Probed live endpoint 2026-08-13 (POST /v1/chat/completions, temperature 0): +# reasoning is always on. reasoning_effort low/medium/high/none/max are all +# accepted but inert (identical reasoning length on every value; "none" +# does not disable). No working caller-side control was found, so no +# options are advertised. Reasoning text arrives interleaved with +# tool_calls, in the message field named "reasoning". +base_model = "zhipuai/glm-5.1" +reasoning_options = [] +interleaved = true + +# Pricing: https://www.crusoe.ai/cloud/pricing (accessed 2026-08-13) +[cost] +input = 1.20 +output = 4.40 +cache_read = 0.25 diff --git a/providers/crusoe/models/zai/GLM-5.2.toml b/providers/crusoe/models/zai/GLM-5.2.toml new file mode 100644 index 000000000..9b722ba09 --- /dev/null +++ b/providers/crusoe/models/zai/GLM-5.2.toml @@ -0,0 +1,16 @@ +# Probed live endpoint 2026-08-13 (POST /v1/chat/completions, temperature 0): +# reasoning is on by default; reasoning_effort "none" disables it +# (0 reasoning tokens); low/medium/high are accepted but do not scale +# reasoning length, so this is encoded as a toggle (matches the zai lab +# GLM entries). usage.completion_tokens_details.reasoning_tokens is +# reported. Reasoning text arrives interleaved with tool_calls, in the +# message field named "reasoning" (not "reasoning_content"). +base_model = "zhipuai/glm-5.2" +reasoning_options = [{ type = "toggle" }] +interleaved = true + +# Pricing: https://www.crusoe.ai/cloud/pricing (accessed 2026-08-13) +[cost] +input = 1.40 +output = 4.40 +cache_read = 0.26 diff --git a/providers/crusoe/provider.toml b/providers/crusoe/provider.toml new file mode 100644 index 000000000..836a1606c --- /dev/null +++ b/providers/crusoe/provider.toml @@ -0,0 +1,5 @@ +name = "Crusoe" +env = ["CRUSOE_API_KEY"] +npm = "@ai-sdk/openai-compatible" +api = "https://api.inference.crusoecloud.com/v1" +doc = "https://docs.crusoecloud.com/managed-inference/overview"