From 85e3326a406f813cc6dfec57239dea9c8c9f8f61 Mon Sep 17 00:00:00 2001 From: Mark Davison <6168730+markdavison@users.noreply.github.com> Date: Fri, 16 Oct 2026 09:00:22 +0100 Subject: [PATCH] feat(saygm): add saygm provider --- .../qwen3-235b-a22b-thinking-2507.toml | 24 ++++++++++++++++ models/deepreinforce/ornith-1.5-397b.toml | 28 +++++++++++++++++++ providers/saygm/logo.svg | 6 ++++ providers/saygm/models/claude-fable-5-1.toml | 15 ++++++++++ providers/saygm/models/claude-fable-5.toml | 15 ++++++++++ providers/saygm/models/claude-haiku-4-5.toml | 15 ++++++++++ providers/saygm/models/claude-opus-4-7.toml | 15 ++++++++++ providers/saygm/models/claude-opus-4-8.toml | 15 ++++++++++ providers/saygm/models/claude-opus-5-5.toml | 15 ++++++++++ providers/saygm/models/claude-opus-5.toml | 15 ++++++++++ providers/saygm/models/claude-sonnet-4-6.toml | 19 +++++++++++++ providers/saygm/models/claude-sonnet-5.toml | 20 +++++++++++++ providers/saygm/models/deepseek-v3.2-tee.toml | 20 +++++++++++++ .../models/deepseek-v4-flash-0731-tee.toml | 21 ++++++++++++++ .../saygm/models/deepseek-v4-flash-0731.toml | 18 ++++++++++++ .../saygm/models/deepseek-v4.1-flash.toml | 18 ++++++++++++ .../saygm/models/gemini-3.1-flash-image.toml | 14 ++++++++++ .../models/gemini-3.1-flash-lite-image.toml | 14 ++++++++++ .../saygm/models/gemini-3.1-flash-lite.toml | 15 ++++++++++ .../saygm/models/gemini-3.1-pro-preview.toml | 21 ++++++++++++++ .../saygm/models/gemini-3.5-flash-lite.toml | 15 ++++++++++ providers/saygm/models/gemini-3.6-flash.toml | 15 ++++++++++ providers/saygm/models/gemini-3.8-flash.toml | 15 ++++++++++ .../saygm/models/gemma-4-31b-turbo-tee.toml | 21 ++++++++++++++ providers/saygm/models/glm-5.1-tee.toml | 20 +++++++++++++ providers/saygm/models/glm-5.2-tee.toml | 20 +++++++++++++ providers/saygm/models/glm-5.2.toml | 14 ++++++++++ providers/saygm/models/glm-5.3-flash.toml | 14 ++++++++++ providers/saygm/models/glm-5.3.toml | 14 ++++++++++ providers/saygm/models/gpt-5.4-mini.toml | 10 +++++++ providers/saygm/models/gpt-5.4-nano.toml | 10 +++++++ providers/saygm/models/gpt-5.4.toml | 16 +++++++++++ providers/saygm/models/gpt-5.5-pro.toml | 21 ++++++++++++++ providers/saygm/models/gpt-5.5.toml | 16 +++++++++++ providers/saygm/models/gpt-5.6-luna.toml | 25 +++++++++++++++++ providers/saygm/models/gpt-5.6-sol.toml | 25 +++++++++++++++++ providers/saygm/models/gpt-5.6-terra.toml | 25 +++++++++++++++++ providers/saygm/models/gpt-6-astra.toml | 25 +++++++++++++++++ providers/saygm/models/gpt-6-luna.toml | 25 +++++++++++++++++ providers/saygm/models/gpt-6-sol.toml | 25 +++++++++++++++++ providers/saygm/models/gpt-oss-20b.toml | 9 ++++++ providers/saygm/models/kimi-k2.6-tee.toml | 19 +++++++++++++ providers/saygm/models/kimi-k3-tee.toml | 19 +++++++++++++ providers/saygm/models/kimi-k3.toml | 15 ++++++++++ .../models/mimo-v2.6-pro-ultraspeed.toml | 19 +++++++++++++ .../mistral-nemo-instruct-2407-tee.toml | 14 ++++++++++ .../models/nemotron-3-nano-omni-30b-tee.toml | 19 +++++++++++++ providers/saygm/models/o3.toml | 10 +++++++ providers/saygm/models/o4-mini.toml | 10 +++++++ providers/saygm/models/ornith-1.5-397b.toml | 18 ++++++++++++ .../qwen3-235b-a22b-thinking-2507-tee.toml | 17 +++++++++++ providers/saygm/models/qwen3-32b-tee.toml | 21 ++++++++++++++ .../saygm/models/qwen3.5-397b-a17b-tee.toml | 20 +++++++++++++ providers/saygm/models/qwen3.6-27b-tee.toml | 21 ++++++++++++++ providers/saygm/models/qwen3.6-35b-a3b.toml | 23 +++++++++++++++ providers/saygm/models/qwen3.8-27b.toml | 20 +++++++++++++ providers/saygm/provider.toml | 5 ++++ 57 files changed, 993 insertions(+) create mode 100644 models/alibaba/qwen3-235b-a22b-thinking-2507.toml create mode 100644 models/deepreinforce/ornith-1.5-397b.toml create mode 100644 providers/saygm/logo.svg create mode 100644 providers/saygm/models/claude-fable-5-1.toml create mode 100644 providers/saygm/models/claude-fable-5.toml create mode 100644 providers/saygm/models/claude-haiku-4-5.toml create mode 100644 providers/saygm/models/claude-opus-4-7.toml create mode 100644 providers/saygm/models/claude-opus-4-8.toml create mode 100644 providers/saygm/models/claude-opus-5-5.toml create mode 100644 providers/saygm/models/claude-opus-5.toml create mode 100644 providers/saygm/models/claude-sonnet-4-6.toml create mode 100644 providers/saygm/models/claude-sonnet-5.toml create mode 100644 providers/saygm/models/deepseek-v3.2-tee.toml create mode 100644 providers/saygm/models/deepseek-v4-flash-0731-tee.toml create mode 100644 providers/saygm/models/deepseek-v4-flash-0731.toml create mode 100644 providers/saygm/models/deepseek-v4.1-flash.toml create mode 100644 providers/saygm/models/gemini-3.1-flash-image.toml create mode 100644 providers/saygm/models/gemini-3.1-flash-lite-image.toml create mode 100644 providers/saygm/models/gemini-3.1-flash-lite.toml create mode 100644 providers/saygm/models/gemini-3.1-pro-preview.toml create mode 100644 providers/saygm/models/gemini-3.5-flash-lite.toml create mode 100644 providers/saygm/models/gemini-3.6-flash.toml create mode 100644 providers/saygm/models/gemini-3.8-flash.toml create mode 100644 providers/saygm/models/gemma-4-31b-turbo-tee.toml create mode 100644 providers/saygm/models/glm-5.1-tee.toml create mode 100644 providers/saygm/models/glm-5.2-tee.toml create mode 100644 providers/saygm/models/glm-5.2.toml create mode 100644 providers/saygm/models/glm-5.3-flash.toml create mode 100644 providers/saygm/models/glm-5.3.toml create mode 100644 providers/saygm/models/gpt-5.4-mini.toml create mode 100644 providers/saygm/models/gpt-5.4-nano.toml create mode 100644 providers/saygm/models/gpt-5.4.toml create mode 100644 providers/saygm/models/gpt-5.5-pro.toml create mode 100644 providers/saygm/models/gpt-5.5.toml create mode 100644 providers/saygm/models/gpt-5.6-luna.toml create mode 100644 providers/saygm/models/gpt-5.6-sol.toml create mode 100644 providers/saygm/models/gpt-5.6-terra.toml create mode 100644 providers/saygm/models/gpt-6-astra.toml create mode 100644 providers/saygm/models/gpt-6-luna.toml create mode 100644 providers/saygm/models/gpt-6-sol.toml create mode 100644 providers/saygm/models/gpt-oss-20b.toml create mode 100644 providers/saygm/models/kimi-k2.6-tee.toml create mode 100644 providers/saygm/models/kimi-k3-tee.toml create mode 100644 providers/saygm/models/kimi-k3.toml create mode 100644 providers/saygm/models/mimo-v2.6-pro-ultraspeed.toml create mode 100644 providers/saygm/models/mistral-nemo-instruct-2407-tee.toml create mode 100644 providers/saygm/models/nemotron-3-nano-omni-30b-tee.toml create mode 100644 providers/saygm/models/o3.toml create mode 100644 providers/saygm/models/o4-mini.toml create mode 100644 providers/saygm/models/ornith-1.5-397b.toml create mode 100644 providers/saygm/models/qwen3-235b-a22b-thinking-2507-tee.toml create mode 100644 providers/saygm/models/qwen3-32b-tee.toml create mode 100644 providers/saygm/models/qwen3.5-397b-a17b-tee.toml create mode 100644 providers/saygm/models/qwen3.6-27b-tee.toml create mode 100644 providers/saygm/models/qwen3.6-35b-a3b.toml create mode 100644 providers/saygm/models/qwen3.8-27b.toml create mode 100644 providers/saygm/provider.toml diff --git a/models/alibaba/qwen3-235b-a22b-thinking-2507.toml b/models/alibaba/qwen3-235b-a22b-thinking-2507.toml new file mode 100644 index 00000000000..498540a0dca --- /dev/null +++ b/models/alibaba/qwen3-235b-a22b-thinking-2507.toml @@ -0,0 +1,24 @@ +name = "Qwen3 235B-A22B Thinking 2507" +description = "Updated large open Qwen3 MoE thinking model for deliberate reasoning, math, and coding" +family = "qwen" +release_date = "2025-07-25" +last_updated = "2025-07-25" +attachment = false +reasoning = true +temperature = true +tool_call = true +knowledge = "2025-04" +open_weights = true +license = "Apache 2.0" + +[limit] +context = 262_144 +output = 81_920 + +[modalities] +input = ["text"] +output = ["text"] + +[[weights]] +label = "Hugging Face" +url = "https://huggingface.co/Qwen/Qwen3-235B-A22B-Thinking-2507" diff --git a/models/deepreinforce/ornith-1.5-397b.toml b/models/deepreinforce/ornith-1.5-397b.toml new file mode 100644 index 00000000000..95b2a00ffc2 --- /dev/null +++ b/models/deepreinforce/ornith-1.5-397b.toml @@ -0,0 +1,28 @@ +name = "Ornith 1.5 397B" +description = "Large mixture-of-experts coding-reasoning model for agentic software tasks, tool use, and image understanding" +family = "ornith" +release_date = "2026-08-18" +last_updated = "2026-08-23" +attachment = true +reasoning = true +temperature = true +tool_call = true +structured_output = true +open_weights = true +license = "MIT" + +[limit] +context = 262_144 + +[modalities] +input = ["text", "image"] +output = ["text"] + +[[weights]] +label = "Hugging Face" +url = "https://huggingface.co/ornith-ai/Ornith-1.5-397B" + +[[links]] +label = "Model card" +url = "https://huggingface.co/ornith-ai/Ornith-1.5-397B" +type = "model_card" diff --git a/providers/saygm/logo.svg b/providers/saygm/logo.svg new file mode 100644 index 00000000000..64b29067084 --- /dev/null +++ b/providers/saygm/logo.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/providers/saygm/models/claude-fable-5-1.toml b/providers/saygm/models/claude-fable-5-1.toml new file mode 100644 index 00000000000..bf8597b6078 --- /dev/null +++ b/providers/saygm/models/claude-fable-5-1.toml @@ -0,0 +1,15 @@ +base_model = "anthropic/claude-fable-5-1" + +[[reasoning_options]] +type = "effort" +values = ["low", "medium", "high", "xhigh", "max"] + +[cost] +input = 9 +output = 45 +cache_read = 0.225 +cache_write = 11.25 + +[provider] +npm = "@ai-sdk/anthropic" +api = "https://api.saygm.com/v1" diff --git a/providers/saygm/models/claude-fable-5.toml b/providers/saygm/models/claude-fable-5.toml new file mode 100644 index 00000000000..f13bcc696e1 --- /dev/null +++ b/providers/saygm/models/claude-fable-5.toml @@ -0,0 +1,15 @@ +base_model = "anthropic/claude-fable-5" + +[[reasoning_options]] +type = "effort" +values = ["low", "medium", "high", "xhigh", "max"] + +[cost] +input = 9 +output = 45 +cache_read = 0.9 +cache_write = 11.25 + +[provider] +npm = "@ai-sdk/anthropic" +api = "https://api.saygm.com/v1" diff --git a/providers/saygm/models/claude-haiku-4-5.toml b/providers/saygm/models/claude-haiku-4-5.toml new file mode 100644 index 00000000000..500917daea3 --- /dev/null +++ b/providers/saygm/models/claude-haiku-4-5.toml @@ -0,0 +1,15 @@ +base_model = "anthropic/claude-haiku-4-5" + +[[reasoning_options]] +type = "budget_tokens" +min = 1_024 + +[cost] +input = 0.9 +output = 4.5 +cache_read = 0.09 +cache_write = 1.125 + +[provider] +npm = "@ai-sdk/anthropic" +api = "https://api.saygm.com/v1" diff --git a/providers/saygm/models/claude-opus-4-7.toml b/providers/saygm/models/claude-opus-4-7.toml new file mode 100644 index 00000000000..300e3763db1 --- /dev/null +++ b/providers/saygm/models/claude-opus-4-7.toml @@ -0,0 +1,15 @@ +base_model = "anthropic/claude-opus-4-7" + +[[reasoning_options]] +type = "effort" +values = ["low", "medium", "high", "xhigh", "max"] + +[cost] +input = 4.5 +output = 22.5 +cache_read = 0.45 +cache_write = 5.625 + +[provider] +npm = "@ai-sdk/anthropic" +api = "https://api.saygm.com/v1" diff --git a/providers/saygm/models/claude-opus-4-8.toml b/providers/saygm/models/claude-opus-4-8.toml new file mode 100644 index 00000000000..6b4adf135ed --- /dev/null +++ b/providers/saygm/models/claude-opus-4-8.toml @@ -0,0 +1,15 @@ +base_model = "anthropic/claude-opus-4-8" + +[[reasoning_options]] +type = "effort" +values = ["low", "medium", "high", "xhigh", "max"] + +[cost] +input = 4.5 +output = 22.5 +cache_read = 0.45 +cache_write = 5.625 + +[provider] +npm = "@ai-sdk/anthropic" +api = "https://api.saygm.com/v1" diff --git a/providers/saygm/models/claude-opus-5-5.toml b/providers/saygm/models/claude-opus-5-5.toml new file mode 100644 index 00000000000..fba7bd209d7 --- /dev/null +++ b/providers/saygm/models/claude-opus-5-5.toml @@ -0,0 +1,15 @@ +base_model = "anthropic/claude-opus-5-5" + +[[reasoning_options]] +type = "effort" +values = ["low", "medium", "high", "xhigh", "max"] + +[cost] +input = 3.6 +output = 18 +cache_read = 0.18 +cache_write = 4.5 + +[provider] +npm = "@ai-sdk/anthropic" +api = "https://api.saygm.com/v1" diff --git a/providers/saygm/models/claude-opus-5.toml b/providers/saygm/models/claude-opus-5.toml new file mode 100644 index 00000000000..e5fdba9360d --- /dev/null +++ b/providers/saygm/models/claude-opus-5.toml @@ -0,0 +1,15 @@ +base_model = "anthropic/claude-opus-5" + +[[reasoning_options]] +type = "effort" +values = ["low", "medium", "high", "xhigh", "max"] + +[cost] +input = 4.5 +output = 22.5 +cache_read = 0.45 +cache_write = 5.625 + +[provider] +npm = "@ai-sdk/anthropic" +api = "https://api.saygm.com/v1" diff --git a/providers/saygm/models/claude-sonnet-4-6.toml b/providers/saygm/models/claude-sonnet-4-6.toml new file mode 100644 index 00000000000..a5c5c3d5ee2 --- /dev/null +++ b/providers/saygm/models/claude-sonnet-4-6.toml @@ -0,0 +1,19 @@ +base_model = "anthropic/claude-sonnet-4-6" + +[[reasoning_options]] +type = "effort" +values = ["low", "medium", "high", "max"] + +[[reasoning_options]] +type = "budget_tokens" +min = 1_024 + +[cost] +input = 2.7 +output = 13.5 +cache_read = 0.27 +cache_write = 3.375 + +[provider] +npm = "@ai-sdk/anthropic" +api = "https://api.saygm.com/v1" diff --git a/providers/saygm/models/claude-sonnet-5.toml b/providers/saygm/models/claude-sonnet-5.toml new file mode 100644 index 00000000000..5f7cd85676a --- /dev/null +++ b/providers/saygm/models/claude-sonnet-5.toml @@ -0,0 +1,20 @@ +# Toggle: thinking.type = adaptive|disabled (Anthropic Messages wire; SayGM mirrors upstream) +# Effort: output_config.effort = low|medium|high|xhigh|max +base_model = "anthropic/claude-sonnet-5" + +[[reasoning_options]] +type = "toggle" + +[[reasoning_options]] +type = "effort" +values = ["low", "medium", "high", "xhigh", "max"] + +[cost] +input = 1.8 +output = 9 +cache_read = 0.18 +cache_write = 2.25 + +[provider] +npm = "@ai-sdk/anthropic" +api = "https://api.saygm.com/v1" diff --git a/providers/saygm/models/deepseek-v3.2-tee.toml b/providers/saygm/models/deepseek-v3.2-tee.toml new file mode 100644 index 00000000000..5125a28a0f9 --- /dev/null +++ b/providers/saygm/models/deepseek-v3.2-tee.toml @@ -0,0 +1,20 @@ +# Confidential (TEE) id; served inside a TEE by the same enclave deployments as +# https://llm.chutes.ai/v1/models, whose limits and chat-template controls this entry follows. +# Toggle: chat_template_kwargs.thinking = true|false +base_model = "deepseek/deepseek-v3.2" +name = "DeepSeek V3.2 TEE" + +[interleaved] +field = "reasoning_content" + +[[reasoning_options]] +type = "toggle" + +[cost] +input = 0.95 +output = 0.95 +cache_read = 0.095 + +[limit] +context = 131_072 +output = 65_536 diff --git a/providers/saygm/models/deepseek-v4-flash-0731-tee.toml b/providers/saygm/models/deepseek-v4-flash-0731-tee.toml new file mode 100644 index 00000000000..70c54f8edba --- /dev/null +++ b/providers/saygm/models/deepseek-v4-flash-0731-tee.toml @@ -0,0 +1,21 @@ +# Confidential (TEE) id; served inside a TEE by the same enclave deployments as +# https://llm.chutes.ai/v1/models, whose limits and chat-template controls this entry follows. +# Toggle: chat_template_kwargs.thinking = true|false +# Reasoning output: reasoning_content +base_model = "deepseek/deepseek-v4-flash-0731" +name = "DeepSeek V4 Flash 0731 TEE" + +[interleaved] +field = "reasoning_content" + +[[reasoning_options]] +type = "toggle" + +[cost] +input = 0.418 +output = 1.254 +cache_read = 0.0418 + +[limit] +context = 1_048_576 +output = 131_072 diff --git a/providers/saygm/models/deepseek-v4-flash-0731.toml b/providers/saygm/models/deepseek-v4-flash-0731.toml new file mode 100644 index 00000000000..aaaac9947fc --- /dev/null +++ b/providers/saygm/models/deepseek-v4-flash-0731.toml @@ -0,0 +1,18 @@ +# Toggle: thinking.type = enabled|disabled +# Effort: reasoning_effort = low|high|max +base_model = "deepseek/deepseek-v4-flash-0731" + +[interleaved] +field = "reasoning_content" + +[[reasoning_options]] +type = "toggle" + +[[reasoning_options]] +type = "effort" +values = ["low", "high", "max"] + +[cost] +input = 0.4312 +output = 1.2936 +cache_read = 0.01372 diff --git a/providers/saygm/models/deepseek-v4.1-flash.toml b/providers/saygm/models/deepseek-v4.1-flash.toml new file mode 100644 index 00000000000..21c76b790f1 --- /dev/null +++ b/providers/saygm/models/deepseek-v4.1-flash.toml @@ -0,0 +1,18 @@ +# Toggle: thinking.type = enabled|disabled +# Effort: reasoning_effort = low|high|max +base_model = "deepseek/deepseek-v4.1-flash" + +[interleaved] +field = "reasoning_content" + +[[reasoning_options]] +type = "toggle" + +[[reasoning_options]] +type = "effort" +values = ["low", "high", "max"] + +[cost] +input = 0.294 +output = 1.176 +cache_read = 0.00588 diff --git a/providers/saygm/models/gemini-3.1-flash-image.toml b/providers/saygm/models/gemini-3.1-flash-image.toml new file mode 100644 index 00000000000..96ed4b1b777 --- /dev/null +++ b/providers/saygm/models/gemini-3.1-flash-image.toml @@ -0,0 +1,14 @@ +base_model = "google/gemini-3.1-flash-image" + +[[reasoning_options]] +type = "effort" +values = ["minimal", "high"] + +[cost] +input = 0.3475 +output = 41.7 +input_audio = 0.3475 + +[provider] +npm = "@ai-sdk/google" +api = "https://api.saygm.com/v1beta" diff --git a/providers/saygm/models/gemini-3.1-flash-lite-image.toml b/providers/saygm/models/gemini-3.1-flash-lite-image.toml new file mode 100644 index 00000000000..4af94904508 --- /dev/null +++ b/providers/saygm/models/gemini-3.1-flash-lite-image.toml @@ -0,0 +1,14 @@ +base_model = "google/gemini-3.1-flash-lite-image" + +[[reasoning_options]] +type = "effort" +values = ["minimal", "high"] + +[cost] +input = 0.17375 +output = 20.85 +input_audio = 0.17375 + +[provider] +npm = "@ai-sdk/google" +api = "https://api.saygm.com/v1beta" diff --git a/providers/saygm/models/gemini-3.1-flash-lite.toml b/providers/saygm/models/gemini-3.1-flash-lite.toml new file mode 100644 index 00000000000..06a9f44cdb2 --- /dev/null +++ b/providers/saygm/models/gemini-3.1-flash-lite.toml @@ -0,0 +1,15 @@ +base_model = "google/gemini-3.1-flash-lite" + +[[reasoning_options]] +type = "effort" +values = ["minimal", "low", "medium", "high"] + +[cost] +input = 0.17375 +output = 1.0425 +cache_read = 0.017375 +input_audio = 0.3475 + +[provider] +npm = "@ai-sdk/google" +api = "https://api.saygm.com/v1beta" diff --git a/providers/saygm/models/gemini-3.1-pro-preview.toml b/providers/saygm/models/gemini-3.1-pro-preview.toml new file mode 100644 index 00000000000..ce5c71f66d8 --- /dev/null +++ b/providers/saygm/models/gemini-3.1-pro-preview.toml @@ -0,0 +1,21 @@ +base_model = "google/gemini-3.1-pro-preview" + +[[reasoning_options]] +type = "effort" +values = ["low", "medium", "high"] + +[cost] +input = 1.39 +output = 8.34 +cache_read = 0.139 +input_audio = 1.39 + +[[cost.tiers]] +tier = { type = "context", size = 200_000 } +input = 2.78 +output = 12.51 +cache_read = 0.278 + +[provider] +npm = "@ai-sdk/google" +api = "https://api.saygm.com/v1beta" diff --git a/providers/saygm/models/gemini-3.5-flash-lite.toml b/providers/saygm/models/gemini-3.5-flash-lite.toml new file mode 100644 index 00000000000..cb7ac9a7c4c --- /dev/null +++ b/providers/saygm/models/gemini-3.5-flash-lite.toml @@ -0,0 +1,15 @@ +base_model = "google/gemini-3.5-flash-lite" + +[[reasoning_options]] +type = "effort" +values = ["minimal", "low", "medium", "high"] + +[cost] +input = 0.2085 +output = 1.7375 +cache_read = 0.02085 +input_audio = 0.2085 + +[provider] +npm = "@ai-sdk/google" +api = "https://api.saygm.com/v1beta" diff --git a/providers/saygm/models/gemini-3.6-flash.toml b/providers/saygm/models/gemini-3.6-flash.toml new file mode 100644 index 00000000000..d2aa516f4fd --- /dev/null +++ b/providers/saygm/models/gemini-3.6-flash.toml @@ -0,0 +1,15 @@ +base_model = "google/gemini-3.6-flash" + +[[reasoning_options]] +type = "effort" +values = ["minimal", "low", "medium", "high"] + +[cost] +input = 0.52125 +output = 2.60625 +cache_read = 0.052125 +input_audio = 0.52125 + +[provider] +npm = "@ai-sdk/google" +api = "https://api.saygm.com/v1beta" diff --git a/providers/saygm/models/gemini-3.8-flash.toml b/providers/saygm/models/gemini-3.8-flash.toml new file mode 100644 index 00000000000..0611ed42904 --- /dev/null +++ b/providers/saygm/models/gemini-3.8-flash.toml @@ -0,0 +1,15 @@ +base_model = "google/gemini-3.8-flash" + +[[reasoning_options]] +type = "effort" +values = ["low", "medium", "high"] + +[cost] +input = 0.52125 +output = 2.60625 +cache_read = 0.052125 +input_audio = 0.52125 + +[provider] +npm = "@ai-sdk/google" +api = "https://api.saygm.com/v1beta" diff --git a/providers/saygm/models/gemma-4-31b-turbo-tee.toml b/providers/saygm/models/gemma-4-31b-turbo-tee.toml new file mode 100644 index 00000000000..b27141fc0dd --- /dev/null +++ b/providers/saygm/models/gemma-4-31b-turbo-tee.toml @@ -0,0 +1,21 @@ +# Confidential (TEE) id; served inside a TEE by the same enclave deployments as +# https://llm.chutes.ai/v1/models, whose limits and chat-template controls this entry follows. +# Toggle: chat_template_kwargs.enable_thinking = true|false +# Reasoning output: reasoning_content +base_model = "google/gemma-4-31b-it" +name = "Gemma 4 31B Turbo TEE" + +[interleaved] +field = "reasoning_content" + +[[reasoning_options]] +type = "toggle" + +[cost] +input = 0.114 +output = 0.3515 +cache_read = 0.0114 + +[limit] +context = 131_072 +output = 65_536 diff --git a/providers/saygm/models/glm-5.1-tee.toml b/providers/saygm/models/glm-5.1-tee.toml new file mode 100644 index 00000000000..dbfa9bb7c5d --- /dev/null +++ b/providers/saygm/models/glm-5.1-tee.toml @@ -0,0 +1,20 @@ +# Confidential (TEE) id; served inside a TEE by the same enclave deployments as +# https://llm.chutes.ai/v1/models, whose limits and chat-template controls this entry follows. +# Toggle: chat_template_kwargs.thinking = true|false +base_model = "zhipuai/glm-5.1" +name = "GLM 5.1 TEE" + +[interleaved] +field = "reasoning_content" + +[[reasoning_options]] +type = "toggle" + +[cost] +input = 1.33 +output = 4.18 +cache_read = 0.247 + +[limit] +context = 202_752 +output = 65_535 diff --git a/providers/saygm/models/glm-5.2-tee.toml b/providers/saygm/models/glm-5.2-tee.toml new file mode 100644 index 00000000000..8fdbf25ed99 --- /dev/null +++ b/providers/saygm/models/glm-5.2-tee.toml @@ -0,0 +1,20 @@ +# Confidential (TEE) id; served inside a TEE by the same enclave deployments as +# https://llm.chutes.ai/v1/models, whose limits and chat-template controls this entry follows. +# Toggle: chat_template_kwargs.thinking = true|false +base_model = "zhipuai/glm-5.2" +name = "GLM 5.2 TEE" + +[interleaved] +field = "reasoning_content" + +[[reasoning_options]] +type = "toggle" + +[cost] +input = 1.33 +output = 4.18 +cache_read = 0.285 + +[limit] +context = 1_048_576 +output = 65_535 diff --git a/providers/saygm/models/glm-5.2.toml b/providers/saygm/models/glm-5.2.toml new file mode 100644 index 00000000000..8bd0b712ab0 --- /dev/null +++ b/providers/saygm/models/glm-5.2.toml @@ -0,0 +1,14 @@ +# Effort: reasoning_effort = high|max (Z.ai maps low/medium to high and xhigh to max) +base_model = "zhipuai/glm-5.2" + +[interleaved] +field = "reasoning_content" + +[[reasoning_options]] +type = "effort" +values = ["high", "max"] + +[cost] +input = 1.26 +output = 3.96 +cache_read = 0.234 diff --git a/providers/saygm/models/glm-5.3-flash.toml b/providers/saygm/models/glm-5.3-flash.toml new file mode 100644 index 00000000000..2bcd76ac428 --- /dev/null +++ b/providers/saygm/models/glm-5.3-flash.toml @@ -0,0 +1,14 @@ +# GLM-5.3-Flash reasons by default; effort low|high|max with default max. +base_model = "zhipuai/glm-5.3-flash" + +[interleaved] +field = "reasoning_content" + +[[reasoning_options]] +type = "effort" +values = ["low", "high", "max"] + +[cost] +input = 0.15 +output = 0.5 +cache_read = 0.03 diff --git a/providers/saygm/models/glm-5.3.toml b/providers/saygm/models/glm-5.3.toml new file mode 100644 index 00000000000..db709dd7db3 --- /dev/null +++ b/providers/saygm/models/glm-5.3.toml @@ -0,0 +1,14 @@ +# GLM-5.3 always reasons; effort low|high|max with default max. +base_model = "zhipuai/glm-5.3" + +[interleaved] +field = "reasoning_content" + +[[reasoning_options]] +type = "effort" +values = ["low", "high", "max"] + +[cost] +input = 1.26 +output = 3.96 +cache_read = 0.234 diff --git a/providers/saygm/models/gpt-5.4-mini.toml b/providers/saygm/models/gpt-5.4-mini.toml new file mode 100644 index 00000000000..42a76759a0a --- /dev/null +++ b/providers/saygm/models/gpt-5.4-mini.toml @@ -0,0 +1,10 @@ +base_model = "openai/gpt-5.4-mini" + +[[reasoning_options]] +type = "effort" +values = ["none", "low", "medium", "high", "xhigh"] + +[cost] +input = 0.5535 +output = 3.321 +cache_read = 0.05535 diff --git a/providers/saygm/models/gpt-5.4-nano.toml b/providers/saygm/models/gpt-5.4-nano.toml new file mode 100644 index 00000000000..12b84c61cae --- /dev/null +++ b/providers/saygm/models/gpt-5.4-nano.toml @@ -0,0 +1,10 @@ +base_model = "openai/gpt-5.4-nano" + +[[reasoning_options]] +type = "effort" +values = ["none", "low", "medium", "high", "xhigh"] + +[cost] +input = 0.1476 +output = 0.9225 +cache_read = 0.01476 diff --git a/providers/saygm/models/gpt-5.4.toml b/providers/saygm/models/gpt-5.4.toml new file mode 100644 index 00000000000..bfab72c342b --- /dev/null +++ b/providers/saygm/models/gpt-5.4.toml @@ -0,0 +1,16 @@ +base_model = "openai/gpt-5.4" + +[[reasoning_options]] +type = "effort" +values = ["none", "low", "medium", "high", "xhigh"] + +[cost] +input = 1.845 +output = 11.07 +cache_read = 0.1845 + +[[cost.tiers]] +tier = { type = "context", size = 272_000 } +input = 3.69 +output = 16.605 +cache_read = 0.369 diff --git a/providers/saygm/models/gpt-5.5-pro.toml b/providers/saygm/models/gpt-5.5-pro.toml new file mode 100644 index 00000000000..74eacf0cb02 --- /dev/null +++ b/providers/saygm/models/gpt-5.5-pro.toml @@ -0,0 +1,21 @@ +# Served only on the Responses API (SayGM /v1/models api_shapes = ["responses"]). +base_model = "openai/gpt-5.5-pro" + +[[reasoning_options]] +type = "effort" +values = ["medium", "high", "xhigh"] + +[cost] +input = 22.14 +output = 132.84 +cache_read = 2.214 + +[[cost.tiers]] +tier = { type = "context", size = 272_000 } +input = 44.28 +output = 199.26 + +[provider] +npm = "@ai-sdk/openai" +api = "https://api.saygm.com/v1" +shape = "responses" diff --git a/providers/saygm/models/gpt-5.5.toml b/providers/saygm/models/gpt-5.5.toml new file mode 100644 index 00000000000..912915e7647 --- /dev/null +++ b/providers/saygm/models/gpt-5.5.toml @@ -0,0 +1,16 @@ +base_model = "openai/gpt-5.5" + +[[reasoning_options]] +type = "effort" +values = ["none", "low", "medium", "high", "xhigh"] + +[cost] +input = 3.69 +output = 22.14 +cache_read = 0.369 + +[[cost.tiers]] +tier = { type = "context", size = 272_000 } +input = 7.38 +output = 33.21 +cache_read = 0.738 diff --git a/providers/saygm/models/gpt-5.6-luna.toml b/providers/saygm/models/gpt-5.6-luna.toml new file mode 100644 index 00000000000..415393691f5 --- /dev/null +++ b/providers/saygm/models/gpt-5.6-luna.toml @@ -0,0 +1,25 @@ +# Routed over the Responses API: OpenAI rejects function tools combined with +# reasoning_effort on /v1/chat/completions for this model. +base_model = "openai/gpt-5.6-luna" + +[[reasoning_options]] +type = "effort" +values = ["none", "low", "medium", "high", "xhigh", "max"] + +[cost] +input = 0.1476 +output = 0.8856 +cache_read = 0.01476 +cache_write = 0.1845 + +[[cost.tiers]] +tier = { type = "context", size = 272_000 } +input = 0.2952 +output = 1.3284 +cache_read = 0.02952 +cache_write = 0.369 + +[provider] +npm = "@ai-sdk/openai" +api = "https://api.saygm.com/v1" +shape = "responses" diff --git a/providers/saygm/models/gpt-5.6-sol.toml b/providers/saygm/models/gpt-5.6-sol.toml new file mode 100644 index 00000000000..42a7e0cfc3c --- /dev/null +++ b/providers/saygm/models/gpt-5.6-sol.toml @@ -0,0 +1,25 @@ +# Routed over the Responses API: OpenAI rejects function tools combined with +# reasoning_effort on /v1/chat/completions for this model. +base_model = "openai/gpt-5.6-sol" + +[[reasoning_options]] +type = "effort" +values = ["none", "low", "medium", "high", "xhigh", "max"] + +[cost] +input = 2.952 +output = 14.76 +cache_read = 0.2952 +cache_write = 3.69 + +[[cost.tiers]] +tier = { type = "context", size = 272_000 } +input = 5.904 +output = 22.14 +cache_read = 0.5904 +cache_write = 7.38 + +[provider] +npm = "@ai-sdk/openai" +api = "https://api.saygm.com/v1" +shape = "responses" diff --git a/providers/saygm/models/gpt-5.6-terra.toml b/providers/saygm/models/gpt-5.6-terra.toml new file mode 100644 index 00000000000..1de666346a7 --- /dev/null +++ b/providers/saygm/models/gpt-5.6-terra.toml @@ -0,0 +1,25 @@ +# Routed over the Responses API: OpenAI rejects function tools combined with +# reasoning_effort on /v1/chat/completions for this model. +base_model = "openai/gpt-5.6-terra" + +[[reasoning_options]] +type = "effort" +values = ["none", "low", "medium", "high", "xhigh", "max"] + +[cost] +input = 1.476 +output = 8.856 +cache_read = 0.1476 +cache_write = 1.845 + +[[cost.tiers]] +tier = { type = "context", size = 272_000 } +input = 2.952 +output = 13.284 +cache_read = 0.2952 +cache_write = 3.69 + +[provider] +npm = "@ai-sdk/openai" +api = "https://api.saygm.com/v1" +shape = "responses" diff --git a/providers/saygm/models/gpt-6-astra.toml b/providers/saygm/models/gpt-6-astra.toml new file mode 100644 index 00000000000..5bbedb66b8f --- /dev/null +++ b/providers/saygm/models/gpt-6-astra.toml @@ -0,0 +1,25 @@ +# Routed over the Responses API: OpenAI rejects function tools combined with +# reasoning_effort on /v1/chat/completions for this model. +base_model = "openai/gpt-6-astra" + +[[reasoning_options]] +type = "effort" +values = ["low", "medium", "high", "xhigh", "max"] + +[cost] +input = 7.38 +output = 36.9 +cache_read = 0.738 +cache_write = 9.225 + +[[cost.tiers]] +tier = { type = "context", size = 272_000 } +input = 14.76 +output = 55.35 +cache_read = 1.476 +cache_write = 18.45 + +[provider] +npm = "@ai-sdk/openai" +api = "https://api.saygm.com/v1" +shape = "responses" diff --git a/providers/saygm/models/gpt-6-luna.toml b/providers/saygm/models/gpt-6-luna.toml new file mode 100644 index 00000000000..ae83ddceaa1 --- /dev/null +++ b/providers/saygm/models/gpt-6-luna.toml @@ -0,0 +1,25 @@ +# Routed over the Responses API: OpenAI rejects function tools combined with +# reasoning_effort on /v1/chat/completions for this model. +base_model = "openai/gpt-6-luna" + +[[reasoning_options]] +type = "effort" +values = ["none", "low", "medium", "high", "xhigh", "max"] + +[cost] +input = 0.0738 +output = 0.369 +cache_read = 0.00738 +cache_write = 0.09225 + +[[cost.tiers]] +tier = { type = "context", size = 272_000 } +input = 0.1476 +output = 0.5535 +cache_read = 0.01476 +cache_write = 0.1845 + +[provider] +npm = "@ai-sdk/openai" +api = "https://api.saygm.com/v1" +shape = "responses" diff --git a/providers/saygm/models/gpt-6-sol.toml b/providers/saygm/models/gpt-6-sol.toml new file mode 100644 index 00000000000..820511295d5 --- /dev/null +++ b/providers/saygm/models/gpt-6-sol.toml @@ -0,0 +1,25 @@ +# Routed over the Responses API: OpenAI rejects function tools combined with +# reasoning_effort on /v1/chat/completions for this model. +base_model = "openai/gpt-6-sol" + +[[reasoning_options]] +type = "effort" +values = ["none", "low", "medium", "high", "xhigh", "max"] + +[cost] +input = 1.476 +output = 7.38 +cache_read = 0.1476 +cache_write = 1.845 + +[[cost.tiers]] +tier = { type = "context", size = 272_000 } +input = 2.952 +output = 11.07 +cache_read = 0.2952 +cache_write = 3.69 + +[provider] +npm = "@ai-sdk/openai" +api = "https://api.saygm.com/v1" +shape = "responses" diff --git a/providers/saygm/models/gpt-oss-20b.toml b/providers/saygm/models/gpt-oss-20b.toml new file mode 100644 index 00000000000..6035d930761 --- /dev/null +++ b/providers/saygm/models/gpt-oss-20b.toml @@ -0,0 +1,9 @@ +base_model = "openai/gpt-oss-20b" + +[[reasoning_options]] +type = "effort" +values = ["low", "medium", "high"] + +[cost] +input = 0.07 +output = 0.3 diff --git a/providers/saygm/models/kimi-k2.6-tee.toml b/providers/saygm/models/kimi-k2.6-tee.toml new file mode 100644 index 00000000000..a3d3de71ae5 --- /dev/null +++ b/providers/saygm/models/kimi-k2.6-tee.toml @@ -0,0 +1,19 @@ +# Confidential (TEE) id; served inside a TEE by the same enclave deployments as +# https://llm.chutes.ai/v1/models, whose limits and chat-template controls this entry follows. +# Toggle: chat_template_kwargs.thinking = true|false +base_model = "moonshotai/kimi-k2.6" +name = "Kimi K2.6 TEE" + +[interleaved] +field = "reasoning_content" + +[[reasoning_options]] +type = "toggle" + +[cost] +input = 0.475 +output = 2.7075 +cache_read = 0.0475 + +[limit] +output = 65_535 diff --git a/providers/saygm/models/kimi-k3-tee.toml b/providers/saygm/models/kimi-k3-tee.toml new file mode 100644 index 00000000000..96d8d6e5b15 --- /dev/null +++ b/providers/saygm/models/kimi-k3-tee.toml @@ -0,0 +1,19 @@ +# Confidential (TEE) id; served inside a TEE by the same enclave deployments as +# https://llm.chutes.ai/v1/models, whose limits and chat-template controls this entry follows. +# Toggle: chat_template_kwargs.thinking = true|false +base_model = "moonshotai/kimi-k3" +name = "Kimi K3 TEE" + +[interleaved] +field = "reasoning_content" + +[[reasoning_options]] +type = "toggle" + +[cost] +input = 2.85 +output = 14.25 +cache_read = 0.285 + +[limit] +output = 65_535 diff --git a/providers/saygm/models/kimi-k3.toml b/providers/saygm/models/kimi-k3.toml new file mode 100644 index 00000000000..c8f407005aa --- /dev/null +++ b/providers/saygm/models/kimi-k3.toml @@ -0,0 +1,15 @@ +# Effort: reasoning_effort = low|high|max +# Source: https://platform.kimi.ai/docs/api/models-overview (K3 always reasons). +base_model = "moonshotai/kimi-k3" + +[interleaved] +field = "reasoning_content" + +[[reasoning_options]] +type = "effort" +values = ["low", "high", "max"] + +[cost] +input = 2.7 +output = 13.5 +cache_read = 0.27 diff --git a/providers/saygm/models/mimo-v2.6-pro-ultraspeed.toml b/providers/saygm/models/mimo-v2.6-pro-ultraspeed.toml new file mode 100644 index 00000000000..ada01e452a1 --- /dev/null +++ b/providers/saygm/models/mimo-v2.6-pro-ultraspeed.toml @@ -0,0 +1,19 @@ +# Toggle: thinking.type = enabled|disabled +# SayGM serves this id text-only (its /v1/models capabilities report vision: false). +# Reasoning output: reasoning_content +base_model = "xiaomi/mimo-v2.6-pro-ultraspeed" +attachment = false + +[interleaved] +field = "reasoning_content" + +[[reasoning_options]] +type = "toggle" + +[cost] +input = 3.915 +output = 7.83 +cache_read = 0.0324 + +[modalities] +input = ["text"] diff --git a/providers/saygm/models/mistral-nemo-instruct-2407-tee.toml b/providers/saygm/models/mistral-nemo-instruct-2407-tee.toml new file mode 100644 index 00000000000..e22999b7397 --- /dev/null +++ b/providers/saygm/models/mistral-nemo-instruct-2407-tee.toml @@ -0,0 +1,14 @@ +# Confidential (TEE) id; served inside a TEE by the same enclave deployments as +# https://llm.chutes.ai/v1/models, whose limits and chat-template controls this entry follows. +# The TEE deployment does not advertise tool support. +base_model = "mistral/mistral-nemo" +name = "Mistral Nemo Instruct 2407 TEE" +tool_call = false + +[cost] +input = 0.023275 +output = 0.09291 +cache_read = 0.0023275 + +[limit] +context = 131_072 diff --git a/providers/saygm/models/nemotron-3-nano-omni-30b-tee.toml b/providers/saygm/models/nemotron-3-nano-omni-30b-tee.toml new file mode 100644 index 00000000000..07b38b8d24a --- /dev/null +++ b/providers/saygm/models/nemotron-3-nano-omni-30b-tee.toml @@ -0,0 +1,19 @@ +# Confidential (TEE) id; served inside a TEE by the same enclave deployments as +# https://llm.chutes.ai/v1/models, whose limits and chat-template controls this entry follows. +# The TEE deployment serves text only and advertises neither reasoning nor tool support. +base_model = "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning" +name = "Nemotron 3 Nano Omni 30B TEE" +attachment = false +reasoning = false +tool_call = false + +[cost] +input = 0.023275 +output = 0.09291 +cache_read = 0.0023275 + +[limit] +context = 131_072 + +[modalities] +input = ["text"] diff --git a/providers/saygm/models/o3.toml b/providers/saygm/models/o3.toml new file mode 100644 index 00000000000..65700f8bc89 --- /dev/null +++ b/providers/saygm/models/o3.toml @@ -0,0 +1,10 @@ +base_model = "openai/o3" + +[[reasoning_options]] +type = "effort" +values = ["low", "medium", "high"] + +[cost] +input = 1.476 +output = 5.904 +cache_read = 0.369 diff --git a/providers/saygm/models/o4-mini.toml b/providers/saygm/models/o4-mini.toml new file mode 100644 index 00000000000..cba155b3285 --- /dev/null +++ b/providers/saygm/models/o4-mini.toml @@ -0,0 +1,10 @@ +base_model = "openai/o4-mini" + +[[reasoning_options]] +type = "effort" +values = ["low", "medium", "high"] + +[cost] +input = 0.8118 +output = 3.2472 +cache_read = 0.20295 diff --git a/providers/saygm/models/ornith-1.5-397b.toml b/providers/saygm/models/ornith-1.5-397b.toml new file mode 100644 index 00000000000..99433a8a179 --- /dev/null +++ b/providers/saygm/models/ornith-1.5-397b.toml @@ -0,0 +1,18 @@ +# Toggle: chat_template_kwargs.enable_thinking = true|false +# Source: https://huggingface.co/ornith-ai/Ornith-1.5-397B (chat template exposes enable_thinking; +# the model card documents a 262,144-token context and evaluates with max_new_tokens=131072) +base_model = "deepreinforce/ornith-1.5-397b" + +[interleaved] +field = "reasoning_content" + +[[reasoning_options]] +type = "toggle" + +[cost] +input = 0.7 +output = 2.2 +cache_read = 0.13 + +[limit] +output = 131_072 diff --git a/providers/saygm/models/qwen3-235b-a22b-thinking-2507-tee.toml b/providers/saygm/models/qwen3-235b-a22b-thinking-2507-tee.toml new file mode 100644 index 00000000000..29c902859fb --- /dev/null +++ b/providers/saygm/models/qwen3-235b-a22b-thinking-2507-tee.toml @@ -0,0 +1,17 @@ +# Confidential (TEE) id; served inside a TEE by the same enclave deployments as +# https://llm.chutes.ai/v1/models, whose limits and chat-template controls this entry follows. +# Thinking-only model: reasoning is always on and has no request control. +base_model = "alibaba/qwen3-235b-a22b-thinking-2507" +name = "Qwen3 235B A22B Thinking 2507 TEE" +reasoning_options = [] + +[interleaved] +field = "reasoning_content" + +[cost] +input = 0.283955 +output = 1.135915 +cache_read = 0.0283955 + +[limit] +output = 262_144 diff --git a/providers/saygm/models/qwen3-32b-tee.toml b/providers/saygm/models/qwen3-32b-tee.toml new file mode 100644 index 00000000000..4038f92d0c1 --- /dev/null +++ b/providers/saygm/models/qwen3-32b-tee.toml @@ -0,0 +1,21 @@ +# Confidential (TEE) id; served inside a TEE by the same enclave deployments as +# https://llm.chutes.ai/v1/models, whose limits and chat-template controls this entry follows. +# Toggle: chat_template_kwargs.enable_thinking = true|false +# Reasoning output: reasoning_content +base_model = "alibaba/qwen3-32b" +name = "Qwen3 32B TEE" + +[interleaved] +field = "reasoning_content" + +[[reasoning_options]] +type = "toggle" + +[cost] +input = 0.0988 +output = 0.3952 +cache_read = 0.00988 + +[limit] +context = 40_960 +output = 40_960 diff --git a/providers/saygm/models/qwen3.5-397b-a17b-tee.toml b/providers/saygm/models/qwen3.5-397b-a17b-tee.toml new file mode 100644 index 00000000000..e6bf3ab1b00 --- /dev/null +++ b/providers/saygm/models/qwen3.5-397b-a17b-tee.toml @@ -0,0 +1,20 @@ +# Confidential (TEE) id; served inside a TEE by the same enclave deployments as +# https://llm.chutes.ai/v1/models, whose limits and chat-template controls this entry follows. +# Toggle: chat_template_kwargs.enable_thinking = true|false +# Chutes input_modalities = ["text", "image"]; audio and video are not served. +base_model = "alibaba/qwen3.5-397b-a17b" +name = "Qwen3.5 397B A17B TEE" + +[interleaved] +field = "reasoning_content" + +[[reasoning_options]] +type = "toggle" + +[cost] +input = 0.4275 +output = 2.85 +cache_read = 0.04275 + +[modalities] +input = ["text", "image"] diff --git a/providers/saygm/models/qwen3.6-27b-tee.toml b/providers/saygm/models/qwen3.6-27b-tee.toml new file mode 100644 index 00000000000..5692828b978 --- /dev/null +++ b/providers/saygm/models/qwen3.6-27b-tee.toml @@ -0,0 +1,21 @@ +# Confidential (TEE) id; served inside a TEE by the same enclave deployments as +# https://llm.chutes.ai/v1/models, whose limits and chat-template controls this entry follows. +# Toggle: chat_template_kwargs.enable_thinking = true|false +# Chutes input_modalities = ["text", "image"]; audio and video are not served. +# Reasoning output: reasoning_content +base_model = "alibaba/qwen3.6-27b" +name = "Qwen3.6 27B TEE" + +[interleaved] +field = "reasoning_content" + +[[reasoning_options]] +type = "toggle" + +[cost] +input = 0.285 +output = 1.9 +cache_read = 0.0285 + +[modalities] +input = ["text", "image"] diff --git a/providers/saygm/models/qwen3.6-35b-a3b.toml b/providers/saygm/models/qwen3.6-35b-a3b.toml new file mode 100644 index 00000000000..8723eab80ca --- /dev/null +++ b/providers/saygm/models/qwen3.6-35b-a3b.toml @@ -0,0 +1,23 @@ +# Toggle: enable_thinking true|false +# Budget: thinking_budget (integer reasoning tokens) +# SayGM serves this id text-only (its /v1/models capabilities report vision: false). +# Reasoning output: reasoning_content +base_model = "alibaba/qwen3.6-35b-a3b" +attachment = false + +[interleaved] +field = "reasoning_content" + +[[reasoning_options]] +type = "toggle" + +[[reasoning_options]] +type = "budget_tokens" + +[cost] +input = 0.24304 +output = 1.4553 +cache_read = 0.24304 + +[modalities] +input = ["text"] diff --git a/providers/saygm/models/qwen3.8-27b.toml b/providers/saygm/models/qwen3.8-27b.toml new file mode 100644 index 00000000000..01b2075ea5b --- /dev/null +++ b/providers/saygm/models/qwen3.8-27b.toml @@ -0,0 +1,20 @@ +# Effort: reasoning_effort = low|medium|xhigh +# Source: https://huggingface.co/Qwen/Qwen3.8-27B +# Toggle: chat_template_kwargs.enable_thinking = true|false +# Reasoning output: reasoning_content +base_model = "alibaba/qwen3.8-27b" + +[interleaved] +field = "reasoning_content" + +[[reasoning_options]] +type = "toggle" + +[[reasoning_options]] +type = "effort" +values = ["low", "medium", "xhigh"] + +[cost] +input = 0.5 +output = 3 +cache_read = 0.1 diff --git a/providers/saygm/provider.toml b/providers/saygm/provider.toml new file mode 100644 index 00000000000..4b5786a9bc1 --- /dev/null +++ b/providers/saygm/provider.toml @@ -0,0 +1,5 @@ +name = "SayGM" +npm = "@ai-sdk/openai-compatible" +env = ["SAYGM_API_KEY"] +api = "https://api.saygm.com/v1" +doc = "https://saygm.com"