mirror of
https://github.com/sst/opencode.git
synced 2025-12-23 10:11:41 +00:00
fix: max output tokens when setting budget thinking tokens (#2056)
Co-authored-by: rekram1-node <aidenpcline@gmail.com>
This commit is contained in:
parent
e915a3720e
commit
4654fb88de
2 changed files with 15 additions and 1 deletions
|
|
@ -98,4 +98,18 @@ export namespace ProviderTransform {
|
|||
}
|
||||
return result
|
||||
}
|
||||
|
||||
export function maxOutputTokens(providerID: string, outputLimit: number, options: Record<string, any>): number {
|
||||
if (providerID === "anthropic") {
|
||||
const thinking = options["thinking"]
|
||||
if (typeof thinking === "object" && thinking !== null) {
|
||||
const type = thinking["type"]
|
||||
const budgetTokens = thinking["budgetTokens"]
|
||||
if (type === "enabled" && typeof budgetTokens === "number" && budgetTokens > 0) {
|
||||
return outputLimit - budgetTokens
|
||||
}
|
||||
}
|
||||
}
|
||||
return outputLimit
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1019,7 +1019,7 @@ export namespace Session {
|
|||
: undefined,
|
||||
maxRetries: 3,
|
||||
activeTools: Object.keys(tools).filter((x) => x !== "invalid"),
|
||||
maxOutputTokens: outputLimit,
|
||||
maxOutputTokens: ProviderTransform.maxOutputTokens(model.providerID, outputLimit, params.options),
|
||||
abortSignal: abort.signal,
|
||||
stopWhen: async ({ steps }) => {
|
||||
if (steps.length >= 1000) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue