PRININIT / src /limits.ts
Rachit-Tw's picture
Upload 50 files
7d9309d verified
Raw
History Blame Contribute Delete
1.52 kB
export class TokenLimits {
maxTokens: number
requestTokens: number
responseTokens: number
knowledgeCutOff: string
constructor(model = 'openai/gpt-oss-120b:free') {
this.knowledgeCutOff = '2023-12-01'
// Default for modern large context models
this.maxTokens = 128000
this.responseTokens = 4000 // Standardized at 4k for safety across all models
if (model.includes('kimi-k2')) {
this.maxTokens = 256000
} else if (model.includes('llama-3.3')) {
// Models with strict TPM limits
// We must cap the context to avoid 'Request too large' 413 errors
this.maxTokens = 12000
this.responseTokens = 3000 // Leave more room for input
} else if (model.includes('qwen') || model.includes('llama-4')) {
this.maxTokens = 128000
} else if (model.includes('gpt-oss-120b')) {
this.maxTokens = 128000
} else if (model.includes('3.2-11b')) {
this.maxTokens = 128000
} else if (
model.includes('llama3') ||
model.includes('llama-3') ||
model.includes('mixtral')
) {
this.maxTokens = 128000
}
// Provide some margin
this.requestTokens = this.maxTokens - this.responseTokens - 500
// Ensure requestTokens is never negative
if (this.requestTokens < 1000) {
this.requestTokens = 1000
}
}
string(): string {
return `max_tokens=${this.maxTokens}, request_tokens=${this.requestTokens}, response_tokens=${this.responseTokens}`
}
}