This commit is contained in:
@@ -408,7 +408,6 @@ export function variants(model: Provider.Model): Record<string, Record<string, a
|
|||||||
id.includes("deepseek") ||
|
id.includes("deepseek") ||
|
||||||
id.includes("minimax") ||
|
id.includes("minimax") ||
|
||||||
id.includes("glm") ||
|
id.includes("glm") ||
|
||||||
id.includes("mistral") ||
|
|
||||||
id.includes("kimi") ||
|
id.includes("kimi") ||
|
||||||
id.includes("k2p") ||
|
id.includes("k2p") ||
|
||||||
id.includes("qwen") ||
|
id.includes("qwen") ||
|
||||||
@@ -713,7 +712,14 @@ export function variants(model: Provider.Model): Record<string, Record<string, a
|
|||||||
|
|
||||||
case "@ai-sdk/mistral":
|
case "@ai-sdk/mistral":
|
||||||
// https://v5.ai-sdk.dev/providers/ai-sdk-providers/mistral
|
// https://v5.ai-sdk.dev/providers/ai-sdk-providers/mistral
|
||||||
return {}
|
// https://docs.mistral.ai/capabilities/reasoning/adjustable
|
||||||
|
if (!model.capabilities.reasoning) return {}
|
||||||
|
// Only Mistral Small 4 supports reasoning (mistral-small-2603, mistral-small-latest)
|
||||||
|
const mistralId = model.api.id.toLowerCase()
|
||||||
|
if (!mistralId.includes("mistral-small-2603") && !mistralId.includes("mistral-small-latest")) return {}
|
||||||
|
return {
|
||||||
|
high: { reasoningEffort: "high" },
|
||||||
|
}
|
||||||
|
|
||||||
case "@ai-sdk/cohere":
|
case "@ai-sdk/cohere":
|
||||||
// https://v5.ai-sdk.dev/providers/ai-sdk-providers/cohere
|
// https://v5.ai-sdk.dev/providers/ai-sdk-providers/cohere
|
||||||
|
|||||||
@@ -2113,7 +2113,24 @@ describe("ProviderTransform.variants", () => {
|
|||||||
expect(result).toEqual({})
|
expect(result).toEqual({})
|
||||||
})
|
})
|
||||||
|
|
||||||
test("mistral returns empty object", () => {
|
test("mistral with reasoning returns variants", () => {
|
||||||
|
const model = createMockModel({
|
||||||
|
id: "mistral/mistral-small-latest",
|
||||||
|
providerID: "mistral",
|
||||||
|
api: {
|
||||||
|
id: "mistral-small-latest",
|
||||||
|
url: "https://api.mistral.com",
|
||||||
|
npm: "@ai-sdk/mistral",
|
||||||
|
},
|
||||||
|
capabilities: { reasoning: true },
|
||||||
|
})
|
||||||
|
const result = ProviderTransform.variants(model)
|
||||||
|
expect(result).toEqual({
|
||||||
|
high: { reasoningEffort: "high" },
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
test("mistral without reasoning returns empty object", () => {
|
||||||
const model = createMockModel({
|
const model = createMockModel({
|
||||||
id: "mistral/mistral-large",
|
id: "mistral/mistral-large",
|
||||||
providerID: "mistral",
|
providerID: "mistral",
|
||||||
@@ -2122,6 +2139,22 @@ describe("ProviderTransform.variants", () => {
|
|||||||
url: "https://api.mistral.com",
|
url: "https://api.mistral.com",
|
||||||
npm: "@ai-sdk/mistral",
|
npm: "@ai-sdk/mistral",
|
||||||
},
|
},
|
||||||
|
capabilities: { reasoning: false },
|
||||||
|
})
|
||||||
|
const result = ProviderTransform.variants(model)
|
||||||
|
expect(result).toEqual({})
|
||||||
|
})
|
||||||
|
|
||||||
|
test("mistral large with reasoning returns empty object (only small supports reasoning)", () => {
|
||||||
|
const model = createMockModel({
|
||||||
|
id: "mistral/mistral-large",
|
||||||
|
providerID: "mistral",
|
||||||
|
api: {
|
||||||
|
id: "mistral-large-latest",
|
||||||
|
url: "https://api.mistral.com",
|
||||||
|
npm: "@ai-sdk/mistral",
|
||||||
|
},
|
||||||
|
capabilities: { reasoning: true },
|
||||||
})
|
})
|
||||||
const result = ProviderTransform.variants(model)
|
const result = ProviderTransform.variants(model)
|
||||||
expect(result).toEqual({})
|
expect(result).toEqual({})
|
||||||
|
|||||||
Reference in New Issue
Block a user