( modelName: string, maxTokens: number, prompt: string, )
| 351 | } |
| 352 | |
| 353 | function pruneStringFromTop( |
| 354 | modelName: string, |
| 355 | maxTokens: number, |
| 356 | prompt: string, |
| 357 | ): string { |
| 358 | const encoding = encodingForModel(modelName); |
| 359 | |
| 360 | const tokens = encoding.encode(prompt, "all", []); |
| 361 | if (tokens.length <= maxTokens) { |
| 362 | return prompt; |
| 363 | } |
| 364 | |
| 365 | return encoding.decode(tokens.slice(tokens.length - maxTokens)); |
| 366 | } |
| 367 | |
| 368 | const MAX_TOKEN_SAFETY_BUFFER = 1000; |
| 369 | const TOKEN_SAFETY_PROPORTION = 0.02; |
no test coverage detected