mirror of
https://gitea.toothfairyai.com/ToothFairyAI/tf_code.git
synced 2026-03-29 21:33:54 +00:00
fix(provider): only set thinkingConfig for models with reasoning capability (#18283)
This commit is contained in:
parent
d5337b41f4
commit
cc818f8032
@ -755,6 +755,7 @@ export namespace ProviderTransform {
|
||||
}
|
||||
|
||||
if (input.model.api.npm === "@ai-sdk/google" || input.model.api.npm === "@ai-sdk/google-vertex") {
|
||||
if (input.model.capabilities.reasoning) {
|
||||
result["thinkingConfig"] = {
|
||||
includeThoughts: true,
|
||||
}
|
||||
@ -762,6 +763,7 @@ export namespace ProviderTransform {
|
||||
result["thinkingConfig"]["thinkingLevel"] = "high"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Enable thinking by default for kimi-k2.5/k2p5 models using anthropic SDK
|
||||
const modelId = input.model.api.id.toLowerCase()
|
||||
|
||||
@ -104,6 +104,72 @@ describe("ProviderTransform.options - setCacheKey", () => {
|
||||
})
|
||||
})
|
||||
|
||||
describe("ProviderTransform.options - google thinkingConfig gating", () => {
|
||||
const sessionID = "test-session-123"
|
||||
|
||||
const createGoogleModel = (reasoning: boolean, npm: "@ai-sdk/google" | "@ai-sdk/google-vertex") =>
|
||||
({
|
||||
id: `${npm === "@ai-sdk/google" ? "google" : "google-vertex"}/gemini-2.0-flash`,
|
||||
providerID: npm === "@ai-sdk/google" ? "google" : "google-vertex",
|
||||
api: {
|
||||
id: "gemini-2.0-flash",
|
||||
url: npm === "@ai-sdk/google" ? "https://generativelanguage.googleapis.com" : "https://vertexai.googleapis.com",
|
||||
npm,
|
||||
},
|
||||
name: "Gemini 2.0 Flash",
|
||||
capabilities: {
|
||||
temperature: true,
|
||||
reasoning,
|
||||
attachment: true,
|
||||
toolcall: true,
|
||||
input: { text: true, audio: false, image: true, video: false, pdf: true },
|
||||
output: { text: true, audio: false, image: false, video: false, pdf: false },
|
||||
interleaved: false,
|
||||
},
|
||||
cost: {
|
||||
input: 0.001,
|
||||
output: 0.002,
|
||||
cache: { read: 0.0001, write: 0.0002 },
|
||||
},
|
||||
limit: {
|
||||
context: 1_000_000,
|
||||
output: 8192,
|
||||
},
|
||||
status: "active",
|
||||
options: {},
|
||||
headers: {},
|
||||
}) as any
|
||||
|
||||
test("does not set thinkingConfig for google models without reasoning capability", () => {
|
||||
const result = ProviderTransform.options({
|
||||
model: createGoogleModel(false, "@ai-sdk/google"),
|
||||
sessionID,
|
||||
providerOptions: {},
|
||||
})
|
||||
expect(result.thinkingConfig).toBeUndefined()
|
||||
})
|
||||
|
||||
test("sets thinkingConfig for google models with reasoning capability", () => {
|
||||
const result = ProviderTransform.options({
|
||||
model: createGoogleModel(true, "@ai-sdk/google"),
|
||||
sessionID,
|
||||
providerOptions: {},
|
||||
})
|
||||
expect(result.thinkingConfig).toEqual({
|
||||
includeThoughts: true,
|
||||
})
|
||||
})
|
||||
|
||||
test("does not set thinkingConfig for vertex models without reasoning capability", () => {
|
||||
const result = ProviderTransform.options({
|
||||
model: createGoogleModel(false, "@ai-sdk/google-vertex"),
|
||||
sessionID,
|
||||
providerOptions: {},
|
||||
})
|
||||
expect(result.thinkingConfig).toBeUndefined()
|
||||
})
|
||||
})
|
||||
|
||||
describe("ProviderTransform.options - gpt-5 textVerbosity", () => {
|
||||
const sessionID = "test-session-123"
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user