From b16913fec38f604ab045d6f16ddba62481b09a6c Mon Sep 17 00:00:00 2001 From: sigoden Date: Fri, 6 Sep 2024 06:38:29 +0800 Subject: fix: render stream failed due to read cursor position timeout (#835) --- src/client/common.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src/client/common.rs') 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(()) } -- cgit v1.2.3