From bb35125fe49c84cb33219b799472c205dfd61cd5 Mon Sep 17 00:00:00 2001 From: Guillaume Gay Date: Tue, 14 Jul 2026 11:20:57 +0200 Subject: [PATCH] feat: add GPT-OSS, GLM-5.2, and Gemma 4 --- models/google/gemma-4-26b-a4b-it.yaml | 59 +++++++++++++++++++ models/google/gemma-4-31b-it.yaml | 59 +++++++++++++++++++ models/openai/gpt-oss-120b.yaml | 22 ++++++++ models/openai/gpt-oss-20b.yaml | 22 ++++++++ models/z-ai/glm-5.2-subscription.yaml | 81 +++++++++++++++++++++++++++ models/z-ai/glm-5.2.yaml | 81 +++++++++++++++++++++++++++ tests/catalog.test.ts | 1 + 7 files changed, 325 insertions(+) create mode 100644 models/google/gemma-4-26b-a4b-it.yaml create mode 100644 models/google/gemma-4-31b-it.yaml create mode 100644 models/openai/gpt-oss-120b.yaml create mode 100644 models/openai/gpt-oss-20b.yaml create mode 100644 models/z-ai/glm-5.2-subscription.yaml create mode 100644 models/z-ai/glm-5.2.yaml diff --git a/models/google/gemma-4-26b-a4b-it.yaml b/models/google/gemma-4-26b-a4b-it.yaml new file mode 100644 index 0000000..67ccff5 --- /dev/null +++ b/models/google/gemma-4-26b-a4b-it.yaml @@ -0,0 +1,59 @@ +# yaml-language-server: $schema=https://modelparams.dev/api/v1/schema.json +provider: google +authType: api_key +model: gemma-4-26b-a4b-it +params: + - path: generationConfig.maxOutputTokens + type: integer + label: Max output tokens + description: Maximum number of tokens to include in a response candidate. + range: + min: 1 + group: generation_length + - path: generationConfig.temperature + type: number + label: Temperature + description: Controls randomness. Lower values make outputs more focused; higher values make them more varied. + range: + min: 0 + max: 2 + step: 0.1 + group: sampling + - path: generationConfig.topP + type: number + label: Top P + description: Controls nucleus sampling by limiting generation to the selected cumulative probability. + range: + min: 0 + max: 1 + step: 0.01 + group: sampling + - path: generationConfig.topK + type: integer + label: Top K + description: Limits token sampling to the top K most likely next tokens. + range: + min: 0 + group: sampling + - path: generationConfig.seed + type: integer + label: Seed + description: Optional seed used in decoding when reproducible sampling is desired. + group: sampling + - path: generationConfig.thinkingConfig.thinkingLevel + type: enum + label: Thinking level + description: Toggles Gemma 4's internal reasoning process. + values: + - minimal + - high + group: reasoning + - path: generationConfig.responseMimeType + type: enum + label: Response MIME type + description: MIME type for generated text candidates. + default: text/plain + values: + - text/plain + - application/json + group: output_format diff --git a/models/google/gemma-4-31b-it.yaml b/models/google/gemma-4-31b-it.yaml new file mode 100644 index 0000000..692fd82 --- /dev/null +++ b/models/google/gemma-4-31b-it.yaml @@ -0,0 +1,59 @@ +# yaml-language-server: $schema=https://modelparams.dev/api/v1/schema.json +provider: google +authType: api_key +model: gemma-4-31b-it +params: + - path: generationConfig.maxOutputTokens + type: integer + label: Max output tokens + description: Maximum number of tokens to include in a response candidate. + range: + min: 1 + group: generation_length + - path: generationConfig.temperature + type: number + label: Temperature + description: Controls randomness. Lower values make outputs more focused; higher values make them more varied. + range: + min: 0 + max: 2 + step: 0.1 + group: sampling + - path: generationConfig.topP + type: number + label: Top P + description: Controls nucleus sampling by limiting generation to the selected cumulative probability. + range: + min: 0 + max: 1 + step: 0.01 + group: sampling + - path: generationConfig.topK + type: integer + label: Top K + description: Limits token sampling to the top K most likely next tokens. + range: + min: 0 + group: sampling + - path: generationConfig.seed + type: integer + label: Seed + description: Optional seed used in decoding when reproducible sampling is desired. + group: sampling + - path: generationConfig.thinkingConfig.thinkingLevel + type: enum + label: Thinking level + description: Toggles Gemma 4's internal reasoning process. + values: + - minimal + - high + group: reasoning + - path: generationConfig.responseMimeType + type: enum + label: Response MIME type + description: MIME type for generated text candidates. + default: text/plain + values: + - text/plain + - application/json + group: output_format diff --git a/models/openai/gpt-oss-120b.yaml b/models/openai/gpt-oss-120b.yaml new file mode 100644 index 0000000..1720147 --- /dev/null +++ b/models/openai/gpt-oss-120b.yaml @@ -0,0 +1,22 @@ +# yaml-language-server: $schema=https://modelparams.dev/api/v1/schema.json +provider: openai +authType: api_key +model: gpt-oss-120b +params: + - path: max_completion_tokens + type: integer + label: Max tokens + description: Maximum number of output tokens the model may generate. + range: + min: 1 + max: 131072 + group: generation_length + - path: reasoning_effort + type: enum + label: Reasoning effort + description: Controls how much reasoning the model should perform before producing an answer. + values: + - low + - medium + - high + group: reasoning diff --git a/models/openai/gpt-oss-20b.yaml b/models/openai/gpt-oss-20b.yaml new file mode 100644 index 0000000..2ca5a24 --- /dev/null +++ b/models/openai/gpt-oss-20b.yaml @@ -0,0 +1,22 @@ +# yaml-language-server: $schema=https://modelparams.dev/api/v1/schema.json +provider: openai +authType: api_key +model: gpt-oss-20b +params: + - path: max_completion_tokens + type: integer + label: Max tokens + description: Maximum number of output tokens the model may generate. + range: + min: 1 + max: 131072 + group: generation_length + - path: reasoning_effort + type: enum + label: Reasoning effort + description: Controls how much reasoning the model should perform before producing an answer. + values: + - low + - medium + - high + group: reasoning diff --git a/models/z-ai/glm-5.2-subscription.yaml b/models/z-ai/glm-5.2-subscription.yaml new file mode 100644 index 0000000..2c5d9c1 --- /dev/null +++ b/models/z-ai/glm-5.2-subscription.yaml @@ -0,0 +1,81 @@ +# yaml-language-server: $schema=https://modelparams.dev/api/v1/schema.json +provider: z-ai +authType: subscription +model: glm-5.2 +params: + - path: max_tokens + type: integer + label: Max tokens + description: Maximum number of tokens to generate in the response. + default: 65536 + range: + min: 1 + max: 131072 + group: generation_length + - path: temperature + type: number + label: Temperature + description: Controls randomness. Lower values make outputs more focused; higher values make them more varied. + default: 1 + range: + min: 0 + max: 1 + step: 0.1 + group: sampling + applicability: + except: + do_sample: false + - path: top_p + type: number + label: Top P + description: Controls nucleus sampling by limiting generation to tokens within the selected cumulative probability. + default: 0.95 + range: + min: 0.01 + max: 1 + step: 0.01 + group: sampling + applicability: + except: + do_sample: false + - path: do_sample + type: boolean + label: Do sample + description: When false, the model uses greedy decoding and ignores temperature and top_p. + default: true + group: sampling + - path: thinking.type + type: enum + label: Thinking mode + description: Toggles the model's extended reasoning before it produces the final answer. + default: enabled + values: + - enabled + - disabled + group: reasoning + - path: reasoning_effort + type: enum + label: Reasoning effort + description: Controls how much reasoning the model performs when thinking is enabled. + default: max + values: + - max + - xhigh + - high + - medium + - low + - minimal + - none + group: reasoning + applicability: + only: + thinking.type: enabled + - path: response_format.type + type: enum + label: Response format + description: Forces the response into plain text or a JSON object. + default: text + values: + - text + - json_object + group: output_format diff --git a/models/z-ai/glm-5.2.yaml b/models/z-ai/glm-5.2.yaml new file mode 100644 index 0000000..52e8de4 --- /dev/null +++ b/models/z-ai/glm-5.2.yaml @@ -0,0 +1,81 @@ +# yaml-language-server: $schema=https://modelparams.dev/api/v1/schema.json +provider: z-ai +authType: api_key +model: glm-5.2 +params: + - path: max_tokens + type: integer + label: Max tokens + description: Maximum number of tokens to generate in the response. + default: 65536 + range: + min: 1 + max: 131072 + group: generation_length + - path: temperature + type: number + label: Temperature + description: Controls randomness. Lower values make outputs more focused; higher values make them more varied. + default: 1 + range: + min: 0 + max: 1 + step: 0.1 + group: sampling + applicability: + except: + do_sample: false + - path: top_p + type: number + label: Top P + description: Controls nucleus sampling by limiting generation to tokens within the selected cumulative probability. + default: 0.95 + range: + min: 0.01 + max: 1 + step: 0.01 + group: sampling + applicability: + except: + do_sample: false + - path: do_sample + type: boolean + label: Do sample + description: When false, the model uses greedy decoding and ignores temperature and top_p. + default: true + group: sampling + - path: thinking.type + type: enum + label: Thinking mode + description: Toggles the model's extended reasoning before it produces the final answer. + default: enabled + values: + - enabled + - disabled + group: reasoning + - path: reasoning_effort + type: enum + label: Reasoning effort + description: Controls how much reasoning the model performs when thinking is enabled. + default: max + values: + - max + - xhigh + - high + - medium + - low + - minimal + - none + group: reasoning + applicability: + only: + thinking.type: enabled + - path: response_format.type + type: enum + label: Response format + description: Forces the response into plain text or a JSON object. + default: text + values: + - text + - json_object + group: output_format diff --git a/tests/catalog.test.ts b/tests/catalog.test.ts index ff1af93..1b33192 100644 --- a/tests/catalog.test.ts +++ b/tests/catalog.test.ts @@ -218,6 +218,7 @@ describe("provider catalog rows", () => { const byId = new Map(models.map((model) => [modelId(model), model])); const sharedModels = [ "glm-5.1", + "glm-5.2", "glm-5-turbo", "glm-5", "glm-4.7",