diff options
| author | sigoden <sigoden@gmail.com> | 2024-04-20 09:21:52 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-20 09:21:52 +0800 |
| commit | 5d763fc10c4e3d40268ead473ccb0000b4923bd1 (patch) | |
| tree | 5c8e498edfed073dc4e82f34cfb96a3f18c7ad7c /src/repl | |
| parent | 8b806db85791a23f9725adbe09f414464adb6605 (diff) | |
| download | aichat-5d763fc10c4e3d40268ead473ccb0000b4923bd1.tar.gz | |
feat: add `.prompt` repl command (#420)
Diffstat (limited to 'src/repl')
| -rw-r--r-- | src/repl/mod.rs | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/repl/mod.rs b/src/repl/mod.rs index 3f30317..564bdf9 100644 --- a/src/repl/mod.rs +++ b/src/repl/mod.rs @@ -25,10 +25,15 @@ use std::{env, process}; const MENU_NAME: &str = "completion_menu"; lazy_static! { - static ref REPL_COMMANDS: [ReplCommand; 15] = [ + static ref REPL_COMMANDS: [ReplCommand; 16] = [ ReplCommand::new(".help", "Print this help message", State::all()), ReplCommand::new(".info", "Print system info", State::all()), ReplCommand::new(".model", "Switch LLM model", State::all()), + ReplCommand::new( + ".prompt", + "Use a temp role with this prompt", + State::able_change_role() + ), ReplCommand::new(".role", "Use a role", State::able_change_role()), ReplCommand::new(".info role", "Show the role info", State::in_role(),), ReplCommand::new(".exit role", "Leave current role", State::in_role(),), @@ -169,6 +174,12 @@ impl Repl { } None => println!("Usage: .model <name>"), }, + ".prompt" => match args { + Some(text) => { + self.config.write().set_prompt(text)?; + } + None => println!("Usage: .prompt <text>..."), + }, ".role" => match args { Some(args) => match args.split_once(|c| c == '\n' || c == ' ') { Some((name, text)) => { @@ -181,7 +192,7 @@ impl Repl { self.config.write().set_role(args)?; } }, - None => println!(r#"Usage: .role <name> [text...]"#), + None => println!(r#"Usage: .role <name> [text]..."#), }, ".session" => { self.config.write().start_session(args)?; |
