Skip to content

Commit af580c5

Browse files
committed
Fix streaming output
1 parent 7e7df3d commit af580c5

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ license = "MIT"
88
[dependencies]
99
clap = { version = "4.5.29", features = ["derive"] }
1010
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
11-
transformrs = { git = "https://github.com/rikhuijzer/transformrs.git", rev = "06b759f" }
11+
transformrs = "0.6"
1212
anyhow = "1"
1313
futures-util = "0.3.31"
1414

src/chat.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1+
use futures_util::stream::StreamExt;
12
use std::fs::File;
23
use std::io::Write;
34
use transformrs::Message;
45
use transformrs::Provider;
5-
use futures_util::stream::StreamExt;
66

77
#[derive(clap::Parser)]
88
pub(crate) struct ChatArgs {
@@ -44,12 +44,15 @@ pub(crate) async fn chat(args: &ChatArgs, key: &transformrs::Key, input: &str) {
4444
.unwrap_or_else(|| default_model(&provider));
4545
let messages = vec![Message::from_str("user", input)];
4646
if args.stream {
47-
let mut stream = transformrs::chat::stream_chat_completion(&provider, key, &model, &messages)
48-
.await
49-
.expect("Streaming chat completion failed");
47+
let mut stream =
48+
transformrs::chat::stream_chat_completion(&provider, key, &model, &messages)
49+
.await
50+
.expect("Streaming chat completion failed");
5051
while let Some(resp) = stream.next().await {
5152
let msg = resp.choices[0].delta.content.clone().unwrap_or_default();
5253
print!("{}", msg);
54+
// Ensure the output is printed immediately.
55+
std::io::stdout().flush().unwrap();
5356
}
5457
} else {
5558
let resp = transformrs::chat::chat_completion(&provider, key, &model, &messages)

0 commit comments

Comments
 (0)