diff options
| author | sigoden <sigoden@gmail.com> | 2024-09-06 06:38:29 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-06 06:38:29 +0800 |
| commit | b16913fec38f604ab045d6f16ddba62481b09a6c (patch) | |
| tree | 4cd36b11b85c4613e9022e423a06b40f7589a49c /src/client/common.rs | |
| parent | d92f102a85eb98ee0cb3eaa8a775b7d3528090ac (diff) | |
| download | aichat-b16913fec38f604ab045d6f16ddba62481b09a6c.tar.gz | |
fix: render stream failed due to read cursor position timeout (#835)
Diffstat (limited to 'src/client/common.rs')
| -rw-r--r-- | src/client/common.rs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/client/common.rs b/src/client/common.rs index 9d6480a..9232a2b 100644 --- a/src/client/common.rs +++ b/src/client/common.rs @@ -3,7 +3,7 @@ use super::*; use crate::{ config::{GlobalConfig, Input}, function::{eval_tool_calls, FunctionDeclaration, ToolCall, ToolResult}, - render::{render_error, render_stream}, + render::render_stream, utils::*, }; @@ -84,11 +84,11 @@ pub trait Client: Sync + Send { let data = input.prepare_completion_data(self.model(), true)?; self.chat_completions_streaming_inner(&client, handler, data).await } => { - handler.done()?; + handler.done(); ret.with_context(|| "Failed to call chat-completions api") } _ = watch_abort_signal(abort_signal) => { - handler.done()?; + handler.done(); Ok(()) }, } @@ -433,9 +433,9 @@ pub async fn call_chat_completions_streaming( client.chat_completions_streaming(input, &mut handler), render_stream(rx, config, abort.clone()), ); - if let Err(err) = render_ret { - render_error(err, config.read().highlight); - } + + render_ret?; + let (text, tool_calls) = handler.take(); match send_ret { Ok(_) => { @@ -465,7 +465,7 @@ where { let text = f(builder).await?; handler.text(&text)?; - handler.done()?; + handler.done(); Ok(()) } |
