summaryrefslogtreecommitdiffstats
path: root/src/client/mod.rs
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2023-10-30 16:32:11 +0800
committerGitHub <noreply@github.com>2023-10-30 16:32:11 +0800
commit5c0383f908eaee86539103b536a95bd94d32d401 (patch)
treec7a4b26c31a6b7b59a4f017a1db1731bbfab5ea2 /src/client/mod.rs
parent2168610dbda294420a88a0bee4e56157c8fa3407 (diff)
downloadaichat-5c0383f908eaee86539103b536a95bd94d32d401.tar.gz
fix: dry run on role or session (#181)
Diffstat (limited to 'src/client/mod.rs')
-rw-r--r--src/client/mod.rs12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/client/mod.rs b/src/client/mod.rs
index 3397453..810fac2 100644
--- a/src/client/mod.rs
+++ b/src/client/mod.rs
@@ -17,7 +17,7 @@ use crate::{
client::localai::LocalAIClient,
config::{Config, SharedConfig},
repl::{ReplyStreamHandler, SharedAbortSignal},
- utils::split_text,
+ utils::tokenize,
};
#[derive(Debug, Clone, Deserialize)]
@@ -64,7 +64,8 @@ pub trait Client {
fn send_message(&self, content: &str) -> Result<String> {
init_tokio_runtime()?.block_on(async {
if self.get_config().read().dry_run {
- return Ok(self.get_config().read().echo_messages(content));
+ let content = self.get_config().read().echo_messages(content);
+ return Ok(content);
}
self.send_message_inner(content)
.await
@@ -90,10 +91,11 @@ pub trait Client {
tokio::select! {
ret = async {
if self.get_config().read().dry_run {
- let words = split_text(content)?;
- for word in words {
+ let content = self.get_config().read().echo_messages(content);
+ let tokens = tokenize(&content);
+ for token in tokens {
tokio::time::sleep(Duration::from_millis(25)).await;
- handler.text(&self.get_config().read().echo_messages(&word))?;
+ handler.text(&token)?;
}
return Ok(());
}