( modelString: string, metadataModelOverride?: string )
| 201 | } |
| 202 | |
| 203 | export async function getTokenizerForModel( |
| 204 | modelString: string, |
| 205 | metadataModelOverride?: string |
| 206 | ): Promise<Tokenizer> { |
| 207 | if (shouldUseApproxTokenizer()) { |
| 208 | return getApproxTokenizer(); |
| 209 | } |
| 210 | |
| 211 | const resolvedModel = metadataModelOverride ?? modelString; |
| 212 | const modelName = resolveModelName(resolvedModel); |
| 213 | const encodingName = await resolveEncoding(modelName); |
| 214 | |
| 215 | return { |
| 216 | encoding: encodingName, |
| 217 | countTokens: (input: string) => countTokensInternal(modelName, input), |
| 218 | }; |
| 219 | } |
| 220 | |
| 221 | export function countTokens(modelString: string, text: string): Promise<number> { |
| 222 | if (shouldUseApproxTokenizer()) { |
no test coverage detected