Skip to content
Closed
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
10 changes: 10 additions & 0 deletions packages/types/src/providers/chutes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ export type ChutesModelId =
| "zai-org/GLM-4.5-Air"
| "zai-org/GLM-4.5-FP8"
| "moonshotai/Kimi-K2-Instruct-75k"
| "openai/gpt-oss-120b"
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Has it been confirmed that the openai/gpt-oss-120b model is actually available on the Chutes API? The naming pattern differs from other Chutes models which typically use organization prefixes like "deepseek-ai/", "unsloth/", "chutesai/", etc. We should verify this model exists on their API before merging.


export const chutesDefaultModelId: ChutesModelId = "deepseek-ai/DeepSeek-R1-0528"

Expand Down Expand Up @@ -278,4 +279,13 @@ export const chutesModels = {
outputPrice: 0.5926,
description: "Moonshot AI Kimi K2 Instruct model with 75k context window.",
},
"openai/gpt-oss-120b": {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I notice that openai/gpt-oss-120b already exists in other providers (Groq and IO Intelligence) with different configurations:

  • Groq: maxTokens=32766, has pricing (/bin/sh.15//bin/sh.75)
  • IO Intelligence: maxTokens=8192
  • Here in Chutes: maxTokens=32768, no pricing

Is this intentional? Different providers might have different limits, but we should verify these values are correct for the Chutes API specifically.

maxTokens: 32768,
contextWindow: 131072,
supportsImages: false,
supportsPromptCache: false,
inputPrice: 0,
Copy link
Contributor Author

Choose a reason for hiding this comment

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

The pricing is set to 0 for both input and output. Could we verify if Chutes actually offers this model for free, or if we need to add the correct pricing? Groq charges /bin/sh.15//bin/sh.75 for the same model.

outputPrice: 0,
description: "OpenAI GPT OSS 120B model - latest open source coding model.",
Copy link
Contributor Author

Choose a reason for hiding this comment

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

The description differs from other providers:

  • Groq: "GPT-OSS 120B is OpenAI's flagship open source model, built on a Mixture-of-Experts (MoE) architecture with 20 billion parameters and 128 experts."
  • IO Intelligence: "OpenAI GPT-OSS 120B model"
  • Here: "OpenAI GPT OSS 120B model - latest open source coding model."

Should we align these descriptions for consistency?

},
} as const satisfies Record<string, ModelInfo>
22 changes: 22 additions & 0 deletions src/api/providers/__tests__/chutes.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -275,6 +275,28 @@ describe("ChutesHandler", () => {
)
})

it("should return openai/gpt-oss-120b model with correct configuration", () => {
const testModelId: ChutesModelId = "openai/gpt-oss-120b"
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: 131072,
supportsImages: false,
supportsPromptCache: false,
inputPrice: 0,
outputPrice: 0,
description: "OpenAI GPT OSS 120B model - latest open source coding model.",
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 } }] })
Expand Down
Loading