Merge pull request #3221 from Succubyss/manual_selection tokenizers.js: Add MANUAL_SELECTION (& removes turbo-0301 lines)
Signed| @@ -32,6 +32,7 @@ export const tokenizers = { | ||
| 32 | 32 | COMMAND_R: 16, |
| 33 | 33 | NEMO: 17, |
| 34 | 34 | BEST_MATCH: 99, |
| 35 | + MANUAL_SELECTION: 411, | |
| 35 | 36 | }; |
| 36 | 37 | |
| 37 | 38 | // A list of local tokenizers that support encoding and decoding token ids. |
| @@ -536,7 +537,6 @@ export function getTokenizerModel() { | ||
| 536 | 537 | return oai_settings.openai_model; |
| 537 | 538 | } |
| 538 | 539 | |
| 539 | - const turbo0301Tokenizer = 'gpt-3.5-turbo-0301'; | |
| 540 | 540 | const turboTokenizer = 'gpt-3.5-turbo'; |
| 541 | 541 | const gpt4Tokenizer = 'gpt-4'; |
| 542 | 542 | const gpt4oTokenizer = 'gpt-4o'; |
| @@ -562,9 +562,6 @@ export function getTokenizerModel() { | ||
| 562 | 562 | if (oai_settings.windowai_model.includes('gpt-4')) { |
| 563 | 563 | return gpt4Tokenizer; |
| 564 | 564 | } |
| 565 | - else if (oai_settings.windowai_model.includes('gpt-3.5-turbo-0301')) { | |
| 566 | - return turbo0301Tokenizer; | |
| 567 | - } | |
| 568 | 565 | else if (oai_settings.windowai_model.includes('gpt-3.5-turbo')) { |
| 569 | 566 | return turboTokenizer; |
| 570 | 567 | } |
| @@ -610,9 +607,6 @@ export function getTokenizerModel() { | ||
| 610 | 607 | else if (oai_settings.openrouter_model.includes('gpt-4')) { |
| 611 | 608 | return gpt4Tokenizer; |
| 612 | 609 | } |
| 613 | - else if (oai_settings.openrouter_model.includes('gpt-3.5-turbo-0301')) { | |
| 614 | - return turbo0301Tokenizer; | |
| 615 | - } | |
| 616 | 610 | else if (oai_settings.openrouter_model.includes('gpt-3.5-turbo')) { |
| 617 | 611 | return turboTokenizer; |
| 618 | 612 | } |
| @@ -1064,9 +1058,14 @@ function decodeTextTokensFromServer(endpoint, ids, resolve) { | ||
| 1064 | 1058 | * Encodes a string to tokens using the server API. |
| 1065 | 1059 | * @param {number} tokenizerType Tokenizer type. |
| 1066 | 1060 | * @param {string} str String to tokenize. |
| 1061 | + * @param {string} overrideModel Tokenizer for {tokenizers.MANUAL_SELECTION}. | |
| 1067 | 1062 | * @returns {number[]} Array of token ids. |
| 1068 | 1063 | */ |
| 1069 | 1064 | export function getTextTokens(tokenizerType, str, overrideModel = undefined) { |
| 1065 | + if (overrideModel && tokenizerType !== tokenizers.MANUAL_SELECTION) { | |
| 1066 | + console.warn('overrideModel must be undefined unless using tokenizers.MANUAL_SELECTION', tokenizerType); | |
| 1067 | + return []; | |
| 1068 | + } | |
| 1070 | 1069 | switch (tokenizerType) { |
| 1071 | 1070 | case tokenizers.API_CURRENT: |
| 1072 | 1071 | return getTextTokens(currentRemoteTokenizerAPI(), str); |
| @@ -1087,6 +1086,9 @@ export function getTextTokens(tokenizerType, str) { | ||
| 1087 | 1086 | console.warn('This tokenizer type does not support encoding', tokenizerType); |
| 1088 | 1087 | return []; |
| 1089 | 1088 | } |
| 1089 | + if (tokenizerType === tokenizers.MANUAL_SELECTION) { | |
| 1090 | + endpointUrl += `?model=${overrideModel}`; | |
| 1091 | + } | |
| 1090 | 1092 | if (tokenizerType === tokenizers.OPENAI) { |
| 1091 | 1093 | endpointUrl += `?model=${getTokenizerModel()}`; |
| 1092 | 1094 | } |