[Bug Fix] Token encoding inconsistency between encode and token_counter #13907
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Title
Fix token encoding inconsistency between encode and token_counter
Relevant issues
No relevant issues. But this PR resolves inconsistencies in token counting between the
encode
functions andtoken_counter
, particularly for openai models. The fix ensures that both systems use the correct model-specific tokenizers, eliminating discrepancies and improving accuracy for multilingual text.Pre-Submission checklist
Please complete all items before asking a LiteLLM maintainer to review your PR
tests/litellm/
directory, Adding at least 1 test is a hard requirement - see detailsmake test-unit
Type
🐛 Bug Fix
Changes
_return_openai_tokenizer
in encode process to return a tokenizer that considers the model._get_count_function
since it's assumed to be unnecessary (internally, _select_tokenizer → _select_tokenizer_helper → _return_openai_tokenizer are called in sequence).