Browse Source

feat: add Qwen/Qwen3-235B-A22B-Instruct-2507 model to Chutes AI provider (#6052)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
roomote[bot] 5 months ago
parent
commit
8dcc078d85
2 changed files with 32 additions and 0 deletions
  1. 10 0
      packages/types/src/providers/chutes.ts
  2. 22 0
      src/api/providers/__tests__/chutes.spec.ts

+ 10 - 0
packages/types/src/providers/chutes.ts

@@ -18,6 +18,7 @@ export type ChutesModelId =
 	| "deepseek-ai/DeepSeek-R1-Zero"
 	| "deepseek-ai/DeepSeek-V3-0324"
 	| "Qwen/Qwen3-235B-A22B"
+	| "Qwen/Qwen3-235B-A22B-Instruct-2507"
 	| "Qwen/Qwen3-32B"
 	| "Qwen/Qwen3-30B-A3B"
 	| "Qwen/Qwen3-14B"
@@ -163,6 +164,15 @@ export const chutesModels = {
 		outputPrice: 0,
 		description: "DeepSeek V3 (0324) model.",
 	},
+	"Qwen/Qwen3-235B-A22B-Instruct-2507": {
+		maxTokens: 32768,
+		contextWindow: 262144,
+		supportsImages: false,
+		supportsPromptCache: false,
+		inputPrice: 0,
+		outputPrice: 0,
+		description: "Qwen3 235B A22B Instruct 2507 model with 262K context window.",
+	},
 	"Qwen/Qwen3-235B-A22B": {
 		maxTokens: 32768,
 		contextWindow: 40960,

+ 22 - 0
src/api/providers/__tests__/chutes.spec.ts

@@ -163,6 +163,28 @@ describe("ChutesHandler", () => {
 		expect(model.info).toEqual(expect.objectContaining(chutesModels[testModelId]))
 	})
 
+	it("should return Qwen3-235B-A22B-Instruct-2507 model with correct configuration", () => {
+		const testModelId: ChutesModelId = "Qwen/Qwen3-235B-A22B-Instruct-2507"
+		const handlerWithModel = new ChutesHandler({
+			apiModelId: testModelId,
+			chutesApiKey: "test-chutes-api-key",
+		})
+		const model = handlerWithModel.getModel()
+		expect(model.id).toBe(testModelId)
+		expect(model.info).toEqual(
+			expect.objectContaining({
+				maxTokens: 32768,
+				contextWindow: 262144,
+				supportsImages: false,
+				supportsPromptCache: false,
+				inputPrice: 0,
+				outputPrice: 0,
+				description: "Qwen3 235B A22B Instruct 2507 model with 262K context window.",
+				temperature: 0.5, // Default temperature for non-DeepSeek models
+			}),
+		)
+	})
+
 	it("completePrompt method should return text from Chutes API", async () => {
 		const expectedResponse = "This is a test response from Chutes"
 		mockCreate.mockResolvedValueOnce({ choices: [{ message: { content: expectedResponse } }] })