* Get or create a cached encoding for a model
(modelName: string)
| 16 | * Get or create a cached encoding for a model |
| 17 | */ |
| 18 | function getEncoding(modelName: string): Tiktoken { |
| 19 | if (encodingCache.has(modelName)) { |
| 20 | return encodingCache.get(modelName)! |
| 21 | } |
| 22 | |
| 23 | try { |
| 24 | const encoding = encodingForModel(modelName as Parameters<typeof encodingForModel>[0]) |
| 25 | encodingCache.set(modelName, encoding) |
| 26 | return encoding |
| 27 | } catch (error) { |
| 28 | logger.warn(`Failed to get encoding for model ${modelName}, falling back to cl100k_base`) |
| 29 | const encoding = encodingForModel('gpt-4') |
| 30 | encodingCache.set(modelName, encoding) |
| 31 | return encoding |
| 32 | } |
| 33 | } |
| 34 | |
| 35 | if (typeof process !== 'undefined') { |
| 36 | process.on('beforeExit', () => { |
no test coverage detected