Skip to content

Commit c0cc2a3

Browse files
committed
Tighten free-string budget so we don’t exhaust the token budget on multi-string structures
1 parent dfb2f5d commit c0cc2a3

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

Sources/AnyLanguageModel/StructuredGeneration.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,9 @@ struct ConstrainedJSONGenerator<Backend: TokenBackend> {
150150
}
151151

152152
private func maxFreeStringTokens() -> Int {
153-
let perStringLimit = max(32, backend.totalTokenBudget / 4)
154-
return min(backend.remainingTokens, perStringLimit)
153+
let perStringLimit = max(16, backend.totalTokenBudget / 16)
154+
let remainingAfterClosingQuote = max(0, backend.remainingTokens - 1)
155+
return min(remainingAfterClosingQuote, perStringLimit)
155156
}
156157

157158
private mutating func generateFreeString(maxTokens: Int) throws -> String {

0 commit comments

Comments
 (0)