feat: use tiktoken-rs instead of tokenizers, single global tokenizer (#3115)

Co-authored-by: jack <>
This commit is contained in:
Salman Mohammed
2025-07-01 14:42:51 -04:00
committed by GitHub
parent 0c36f9ea04
commit 75454b96da
12 changed files with 228 additions and 786 deletions
+6 -8
View File
@@ -16,10 +16,9 @@ impl Agent {
messages: &[Message], // last message is a user msg that led to assistant message with_context_length_exceeded
) -> Result<(Vec<Message>, Vec<usize>), anyhow::Error> {
let provider = self.provider().await?;
let token_counter =
create_async_token_counter(provider.get_model_config().tokenizer_name())
.await
.map_err(|e| anyhow::anyhow!("Failed to create token counter: {}", e))?;
let token_counter = create_async_token_counter()
.await
.map_err(|e| anyhow::anyhow!("Failed to create token counter: {}", e))?;
let target_context_limit = estimate_target_context_limit(provider);
let token_counts = get_messages_token_counts_async(&token_counter, messages);
@@ -54,10 +53,9 @@ impl Agent {
messages: &[Message], // last message is a user msg that led to assistant message with_context_length_exceeded
) -> Result<(Vec<Message>, Vec<usize>), anyhow::Error> {
let provider = self.provider().await?;
let token_counter =
create_async_token_counter(provider.get_model_config().tokenizer_name())
.await
.map_err(|e| anyhow::anyhow!("Failed to create token counter: {}", e))?;
let token_counter = create_async_token_counter()
.await
.map_err(|e| anyhow::anyhow!("Failed to create token counter: {}", e))?;
let target_context_limit = estimate_target_context_limit(provider.clone());
let (mut new_messages, mut new_token_counts) =