From 63192d9339236fc49f27057ab33a0f81782d74ca Mon Sep 17 00:00:00 2001 From: Gabriel Gordon-Hall Date: Thu, 30 Nov 2023 17:40:44 +0000 Subject: [PATCH] bump tiktoken-rs version --- Cargo.lock | 4 ++-- server/bleep/Cargo.toml | 2 +- server/bleep/src/agent.rs | 4 ++-- server/bleep/src/llm_gateway.rs | 15 ++++++++++++--- server/bleep/src/webserver/studio.rs | 9 ++++++--- 5 files changed, 23 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ec38df52d2..60aebca233 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7475,9 +7475,9 @@ dependencies = [ [[package]] name = "tiktoken-rs" -version = "0.4.5" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52aacc1cff93ba9d5f198c62c49c77fa0355025c729eed3326beaf7f33bc8614" +checksum = "a4427b6b1c6b38215b92dd47a83a0ecc6735573d0a5a4c14acc0ac5b33b28adb" dependencies = [ "anyhow", "base64 0.21.5", diff --git a/server/bleep/Cargo.toml b/server/bleep/Cargo.toml index da4a4e390f..4157d657e3 100644 --- a/server/bleep/Cargo.toml +++ b/server/bleep/Cargo.toml @@ -112,7 +112,7 @@ gix = { git = "https://github.com/BloopAI/gitoxide", version="0.55.2", features # semantic qdrant-client = { version = "1.5.0", default-features = false } -tiktoken-rs = "0.4.5" +tiktoken-rs = "0.5.7" tokenizers = { version = "0.14.0", default-features = false, features = ["progressbar", "cli", "onig", "esaxx_fast"] } # answer parsing diff --git a/server/bleep/src/agent.rs b/server/bleep/src/agent.rs index 995e982956..133e365089 100644 --- a/server/bleep/src/agent.rs +++ b/server/bleep/src/agent.rs @@ -503,7 +503,7 @@ fn trim_history( } => { if role == "assistant" && content != HIDDEN { *content = HIDDEN.into(); - tm.content = HIDDEN.into(); + tm.content = Some(HIDDEN.into()); true } else { false @@ -515,7 +515,7 @@ fn trim_history( ref mut content, } if content != HIDDEN => { *content = HIDDEN.into(); - tm.content = HIDDEN.into(); + tm.content = Some(HIDDEN.into()); true } _ => false, diff --git a/server/bleep/src/llm_gateway.rs b/server/bleep/src/llm_gateway.rs index e60c20d794..6b45f9dffa 100644 --- a/server/bleep/src/llm_gateway.rs +++ b/server/bleep/src/llm_gateway.rs @@ -160,8 +160,9 @@ impl From<&api::Message> for tiktoken_rs::ChatCompletionRequestMessage { api::Message::PlainText { role, content } => { tiktoken_rs::ChatCompletionRequestMessage { role: role.clone(), - content: content.clone(), + content: Some(content.clone()), name: None, + function_call: None, } } api::Message::FunctionReturn { @@ -170,8 +171,9 @@ impl From<&api::Message> for tiktoken_rs::ChatCompletionRequestMessage { content, } => tiktoken_rs::ChatCompletionRequestMessage { role: role.clone(), - content: content.clone(), + content: Some(content.clone()), name: Some(name.clone()), + function_call: None, }, api::Message::FunctionCall { role, @@ -179,8 +181,15 @@ impl From<&api::Message> for tiktoken_rs::ChatCompletionRequestMessage { content: _, } => tiktoken_rs::ChatCompletionRequestMessage { role: role.clone(), - content: serde_json::to_string(&function_call).unwrap(), + content: None, name: None, + function_call: Some(tiktoken_rs::FunctionCall { + name: function_call + .name + .clone() + .expect("FunctionCall has no name"), + arguments: function_call.arguments.clone(), + }), }, } } diff --git a/server/bleep/src/webserver/studio.rs b/server/bleep/src/webserver/studio.rs index 6dd7c3a6f7..12edeed4a8 100644 --- a/server/bleep/src/webserver/studio.rs +++ b/server/bleep/src/webserver/studio.rs @@ -512,8 +512,9 @@ async fn token_counts( let empty_context = generate_llm_context(app.clone(), &[], &[]).await?; let empty_system_message = tiktoken_rs::ChatCompletionRequestMessage { role: "system".to_owned(), - content: prompts::studio_article_prompt(&empty_context), + content: Some(prompts::studio_article_prompt(&empty_context)), name: None, + function_call: None, }; let baseline = @@ -523,13 +524,15 @@ async fn token_counts( let tiktoken_messages = messages.iter().cloned().map(|message| match message { Message::User(content) => tiktoken_rs::ChatCompletionRequestMessage { role: "user".to_owned(), - content, + content: Some(content), name: None, + function_call: None, }, Message::Assistant(content) => tiktoken_rs::ChatCompletionRequestMessage { role: "assistant".to_owned(), - content, + content: Some(content), name: None, + function_call: None, }, });