From 15ab383603098d7bf6a920554e2a22b3e69f574b Mon Sep 17 00:00:00 2001 From: pulsareonbot Date: Sat, 4 Jul 2026 17:35:45 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=BC=96=E8=AF=91=E9=94=99=E8=AF=AF=20(?= =?UTF-8?q?\b=20=E8=BD=AC=E4=B9=89=20+=20=E4=B8=B4=E6=97=B6=E5=8F=98?= =?UTF-8?q?=E9=87=8F=E7=94=9F=E5=91=BD=E5=91=A8=E6=9C=9F)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/plugins/ai/backend.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/plugins/ai/backend.rs b/src/plugins/ai/backend.rs index ca659da..1b1f3ba 100644 --- a/src/plugins/ai/backend.rs +++ b/src/plugins/ai/backend.rs @@ -337,16 +337,16 @@ fn parse_llama_output(raw: &str) -> String { // 清理进度动画字符 |/-\ 和转义序列 \b // llama-cli 的进度动画用 \b(退格)刷新,stdout 捕获后变成字面 \b let cleaned: String = trimmed - .replace("\\b", "") // 退格转义 + .replace("\\b", "") .chars() .filter(|c| !"|\\-/".contains(*c)) - .collect(); - let cleaned = cleaned.trim(); - if cleaned.is_empty() { + .collect::(); + let cleaned_str = cleaned.trim(); + if cleaned_str.is_empty() { continue; } - reply_lines.push(cleaned); + reply_lines.push(cleaned_str.to_string()); } reply_lines.join("\n").trim().to_string() @@ -359,12 +359,12 @@ mod tests { #[test] fn test_parse_llama_output() { // 进度动画和回复在同一行,用 \b 分隔 - let raw = " █ █ build : b1-fdb1db8\n\ + let raw = " build : b1-fdb1db8\n\ model : model_store/llm/qwen2.5-0.5b-q4_k_m.gguf\n\ \n\ > hello\n\ \n\ -\\b-\\b\\\\\\b|\\b/\\b-\\b\\\\\\b|\\b/\\b \b汪!\n\ +\\b-\\b\\\\\\b|\\b/\\b-\\b\\\\\\b|\\b/\\b 汪!\n\ \n\ [ Prompt: 31.1 t/s | Generation: 26.3 t/s ]\n\ \n\