fix: 修复中文 prompt 截取时的 UTF-8 字符边界问题

使用 .chars().take(50) 按字符数截取,而不是按字节索引,
避免切到中文字符中间导致 panic
This commit is contained in:
liubu
2026-01-03 23:44:00 +08:00
parent 3ff24e060e
commit 635262403e
@@ -86,18 +86,18 @@ pub async fn handle_image_generation(
}
// 记录请求日志
// 安全截取 prompt,避免 UTF-8 字符边界问题
let prompt_preview: String = request.prompt.chars().take(50).collect();
let prompt_display = if request.prompt.chars().count() > 50 {
format!("{}...", prompt_preview)
} else {
request.prompt.clone()
};
state.logs.write().await.add(
"info",
&format!(
"[IMAGE] 收到图像生成请求: model={}, prompt={}, n={}, response_format={}",
request.model,
if request.prompt.len() > 50 {
format!("{}...", &request.prompt[..50])
} else {
request.prompt.clone()
},
request.n,
request.response_format
request.model, prompt_display, request.n, request.response_format
),
);