diff options
| author | sigoden <sigoden@gmail.com> | 2023-03-09 15:30:39 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-09 15:30:39 +0800 |
| commit | 05d20f207fedf03c2a564438a0d44a2d85d4ed2d (patch) | |
| tree | eb7c9ae402632c5827cd4faa323b138510716f22 /src/utils/mod.rs | |
| parent | c7eb261abc32ac4d6fc5364244a6246bcdc462d9 (diff) | |
| download | aichat-05d20f207fedf03c2a564438a0d44a2d85d4ed2d.tar.gz | |
feat: add remain tokens indicator and max tokens guard (#50)
Diffstat (limited to 'src/utils/mod.rs')
| -rw-r--r-- | src/utils/mod.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/utils/mod.rs b/src/utils/mod.rs new file mode 100644 index 0000000..fd178ba --- /dev/null +++ b/src/utils/mod.rs @@ -0,0 +1,29 @@ +mod tiktoken; + +pub use self::tiktoken::{cl100k_base_singleton, count_tokens, text_to_tokens, tokens_to_text}; + +use chrono::prelude::*; +use crossterm::style::{Color, Stylize}; +use std::io::{stdout, Write}; + +#[macro_export] +macro_rules! print_now { + ($($arg:tt)*) => { + $crate::utils::print_now(&format!($($arg)*)) + }; +} + +pub fn print_now<T: ToString>(text: T) { + print!("{}", text.to_string()); + let _ = stdout().flush(); +} + +pub fn now() -> String { + let now = Local::now(); + now.to_rfc3339_opts(SecondsFormat::Secs, false) +} + +#[allow(unused)] +pub fn emphasis(text: &str) -> String { + text.stylize().with(Color::White).to_string() +} |
