Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added apps/ui/public/changelog/canopywave75.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
63 changes: 63 additions & 0 deletions apps/ui/src/content/changelog/2025-11-08-canopywave-new-models.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
id: "13"
slug: "canopywave-new-models"
date: "2025-11-08"
title: "CanopyWave: 3 New Models with 75% Off"
summary: "CanopyWave brings Qwen3 Coder, MiniMax M2, and GLM-4.6 to LLM Gateway with an exclusive 75% discount on all three models."
image:
src: "/changelog/canopywave75.png"
alt: "CanopyWave: 3 New Models with 75% Off"
width: 2046
height: 1102
---

We're excited to announce three new models from **CanopyWave** with an exclusive **75% discount** on all models!

## 🎯 New Models Available

### **GLM-4.6** - Advanced Reasoning

- **Model ID**: `glm-4.6`
- **Provider**: `canopywave/zai/glm-4.6`
- **Context Window**: 202,752 tokens
- **Pricing**: $0.45 per 1M input tokens / $1.50 per 1M output tokens (75% off)
- Enhanced reasoning and tool calling capabilities

### **Qwen3 Coder** - Specialized Coding Model

- **Model ID**: `qwen3-coder`
- **Provider**: `canopywave/qwen/qwen3-coder`
- **Context Window**: 262,000 tokens
- **Pricing**: $0.22 per 1M input tokens / $0.95 per 1M output tokens (75% off)
- Advanced coding capabilities with massive context window

### **MiniMax M2** - High-Performance Chat

- **Model ID**: `minimax-m2`
- **Provider**: `canopywave/minimax/minimax-m2`
- **Context Window**: 196,608 tokens
- **Pricing**: $0.25 per 1M input tokens / $1.00 per 1M output tokens (75% off)
- Powerful conversational AI with large context support

## 🚀 Getting Started

All models support streaming, tool calling, and JSON output mode:

```bash
curl -X POST https://api.llmgateway.io/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-coder",
"messages": [{"role": "user", "content": "Write a Python function"}]
}'
```

✅ **75% Discount** - Exclusive pricing for all three models
✅ **Large Context Windows** - 196k-262k tokens
✅ **Full Feature Support** - Streaming, tools, JSON output
✅ **Instant Access** - Available now

---

**[Get started now](/signup)** 🚀
2 changes: 2 additions & 0 deletions packages/models/src/models.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { googleModels } from "./models/google.js";
import { llmgatewayModels } from "./models/llmgateway.js";
import { metaModels } from "./models/meta.js";
import { microsoftModels } from "./models/microsoft.js";
import { minimaxModels } from "./models/minimax.js";
import { mistralModels } from "./models/mistral.js";
import { moonshotModels } from "./models/moonshot.js";
import { nousresearchModels } from "./models/nousresearch.js";
Expand Down Expand Up @@ -175,6 +176,7 @@ export const models = [
...deepseekModels,
...mistralModels,
...microsoftModels,
...minimaxModels,
...moonshotModels,
...alibabaModels,
...nousresearchModels,
Expand Down
21 changes: 21 additions & 0 deletions packages/models/src/models/alibaba.ts
Original file line number Diff line number Diff line change
Expand Up @@ -578,4 +578,25 @@ export const alibabaModels = [
},
],
},
{
id: "qwen3-coder",
name: "Qwen3 Coder",
family: "alibaba",
providers: [
{
providerId: "canopywave",
modelName: "qwen/qwen3-coder",
inputPrice: 0.22 / 1e6,
outputPrice: 0.95 / 1e6,
discount: 0.75,
requestPrice: 0,
contextSize: 262000,
maxOutput: 8192,
streaming: true,
vision: false,
tools: true,
jsonOutput: true,
},
],
},
] as const satisfies ModelDefinition[];
25 changes: 25 additions & 0 deletions packages/models/src/models/minimax.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import type { ModelDefinition } from "@/models.js";

export const minimaxModels = [
{
id: "minimax-m2",
name: "MiniMax M2",
family: "minimax",
providers: [
{
providerId: "canopywave",
modelName: "minimax/minimax-m2",
inputPrice: 0.25 / 1e6,
outputPrice: 1.0 / 1e6,
discount: 0.75,
requestPrice: 0,
contextSize: 196608,
maxOutput: undefined,
streaming: true,
vision: false,
tools: true,
jsonOutput: true,
},
],
},
] as const satisfies ModelDefinition[];
Comment on lines +3 to +25

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify pricing and discount calculation consistency.

The discount: 0.75 field combined with the current inputPrice and outputPrice values creates a potential inconsistency with the changelog. According to the ProviderModelMapping interface comment in packages/models/src/models.ts (line 48-50), discount represents the discount percentage where 0.5 = 50% off. This means discount: 0.75 indicates 75% off, so the final user-facing price should be base * (1 - 0.75) = base * 0.25.

With the current values:

  • Input: 0.25 / 1e6 with 75% discount = $0.0625 per 1M tokens (final)
  • Output: 1.0 / 1e6 with 75% discount = $0.25 per 1M tokens (final)

However, the changelog (lines 39, 40) states: "$0.25 per 1M input tokens / $1.00 per 1M output tokens (75% off)", which matches the base prices in the code, not the discounted prices.

This same issue affects all three models (GLM-4.6, Qwen3 Coder, and MiniMax M2).

Either:

  1. The inputPrice/outputPrice should be 4x higher (base prices before discount), OR
  2. The changelog should show the lower final prices after discount, OR
  3. The interpretation/calculation of the discount field needs clarification

Please clarify the intended pricing model and ensure consistency between code and documentation. You may want to verify this with the team or check how the discount field is actually applied in the pricing calculation logic elsewhere in the codebase.


🏁 Script executed:

#!/bin/bash
# Search for how the discount field is used in pricing calculations
rg -n -C 5 'discount' --type ts -g '!**/models/**' -g '!**/*.test.ts'

Length of output: 27987


🏁 Script executed:

#!/bin/bash
# Check model definitions with discount field to see if pattern is consistent
rg -n 'discount:' packages/models/src/models --type ts -A 1 -B 1

Length of output: 11177


🏁 Script executed:

#!/bin/bash
# Search for changelog to verify what "$0.25" refers to (base vs final price)
find . -name 'CHANGELOG*' -o -name 'changelog*' -o -name 'CHANGES*' | head -5

Length of output: 327


🏁 Script executed:

#!/bin/bash
# Find and display the changelog entry for minimax pricing
grep -r "0.25\|minimax\|Minimax" ./apps/ui/src/content/changelog -A 5 -B 5 | head -100

Length of output: 2558


🏁 Script executed:

#!/bin/bash
# Also check if there's a specific date/entry mentioning the pricing changes
find ./apps/ui/src/content/changelog -type f -name "*.md*" -o -name "*.ts*" | head -5 | xargs ls -la

Length of output: 604


The pricing calculation is incorrect and will undercharge users by approximately 75%.

The changelog entry for MiniMax M2 explicitly states "$0.25 per 1M input tokens / $1.00 per 1M output tokens (75% off)" — these are the final prices users should pay. However, the code applies the discount as a second multiplier:

final_price = base_price × (1 - discount)
            = (0.25 / 1e6) × (1 - 0.75)
            = (0.25 / 1e6) × 0.25
            = 0.0625 / 1e6

Users would be charged $0.0625 per 1M tokens, not the documented $0.25.

Fix: Adjust inputPrice and outputPrice to represent base prices before discount:

  • inputPrice should be 1.0 / 1e6 (so 1.0 × 0.25 = 0.25 final)
  • outputPrice should be 4.0 / 1e6 (so 4.0 × 0.25 = 1.0 final)

This same issue affects other models with discounts in the codebase (alibaba, zai, etc.).

🤖 Prompt for AI Agents
In packages/models/src/models/minimax.ts around lines 3 to 25, the configured
inputPrice/outputPrice are already discounted but the code applies the discount
again, resulting in undercharging; change inputPrice to the pre-discount base of
1.0 / 1e6 and outputPrice to 4.0 / 1e6 so that applying discount: base ×
discount (0.25) yields the advertised $0.25/$1.00 per 1M tokens, and audit other
model entries that set a discount to ensure their input/output prices are the
undiscounted base values.

15 changes: 15 additions & 0 deletions packages/models/src/models/zai.ts
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,21 @@ export const zaiModels = [
tools: true,
jsonOutput: true,
},
{
providerId: "canopywave",
modelName: "zai/glm-4.6",
inputPrice: 0.45 / 1e6,
outputPrice: 1.5 / 1e6,
discount: 0.75,
requestPrice: 0,
contextSize: 202752,
maxOutput: undefined,
streaming: true,
reasoning: false,
vision: false,
tools: true,
jsonOutput: true,
},
],
},
{
Expand Down
Loading