summaryrefslogtreecommitdiffstats
path: root/src/config/message.rs
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2023-03-10 07:25:33 +0800
committersigoden <sigoden@gmail.com>2023-03-10 07:25:33 +0800
commit978d4c54c0d5ac71fa0407d26ff06f16268e4ec3 (patch)
tree03b717c613e8d11f3c9a94becfd05e49e49ca497 /src/config/message.rs
parent899c4af9ea4dedd295a909f6ddc968b20157a505 (diff)
downloadaichat-978d4c54c0d5ac71fa0407d26ff06f16268e4ec3.tar.gz
chore: opitmize code, move MAX_TOKENS related to config/message.rs
Diffstat (limited to 'src/config/message.rs')
-rw-r--r--src/config/message.rs13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/config/message.rs b/src/config/message.rs
index 514a2fa..3fd5935 100644
--- a/src/config/message.rs
+++ b/src/config/message.rs
@@ -1,6 +1,9 @@
+use crate::utils::count_tokens;
+
+use anyhow::{bail, Result};
use serde::{Deserialize, Serialize};
-use crate::utils::count_tokens;
+pub const MAX_TOKENS: usize = 4096;
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct Message {
@@ -25,6 +28,14 @@ pub enum MessageRole {
User,
}
+pub fn within_max_tokens_limit(messages: &[Message]) -> Result<()> {
+ let tokens = num_tokens_from_messages(messages);
+ if tokens >= MAX_TOKENS {
+ bail!("Exceed max tokens limit")
+ }
+ Ok(())
+}
+
pub fn num_tokens_from_messages(messages: &[Message]) -> usize {
let mut num_tokens = 0;
for message in messages.iter() {