summaryrefslogtreecommitdiffstats
path: root/src/client
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2023-11-09 08:55:52 +0800
committerGitHub <noreply@github.com>2023-11-09 08:55:52 +0800
commit757c192829cd434b3c72bc6a44a1a9d4973705e2 (patch)
tree12125f987ff942fb0a09f9d3785bc1417a394764 /src/client
parent01cf8acb814a6713c1fa95ca5438c35817589e30 (diff)
downloadaichat-757c192829cd434b3c72bc6a44a1a9d4973705e2.tar.gz
refactor: qianwen client use incremental_output (#240)
Diffstat (limited to 'src/client')
-rw-r--r--src/client/qianwen.rs10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/client/qianwen.rs b/src/client/qianwen.rs
index 2ed9945..1ee5f3d 100644
--- a/src/client/qianwen.rs
+++ b/src/client/qianwen.rs
@@ -94,7 +94,6 @@ async fn send_message_streaming(
handler: &mut ReplyHandler,
) -> Result<()> {
let mut es = builder.eventsource()?;
- let mut offset = 0;
while let Some(event) = es.next().await {
match event {
@@ -102,10 +101,7 @@ async fn send_message_streaming(
Ok(Event::Message(message)) => {
let data: Value = serde_json::from_str(&message.data)?;
if let Some(text) = data["output"]["text"].as_str() {
-
- let text = &text[offset..];
handler.text(text)?;
- offset += text.len();
}
}
Err(err) => {
@@ -143,11 +139,15 @@ fn build_body(data: SendData, model: String) -> Value {
let SendData {
messages,
temperature,
- stream: _,
+ stream,
} = data;
let mut parameters = json!({});
+ if stream {
+ parameters["incremental_output"] = true.into();
+ }
+
if let Some(v) = temperature {
parameters["temperature"] = v.into();
}