music(chat): 去掉麻薯人格 prompt,只注入曲目 context
deploy music / build-and-deploy (push) Successful in 1m44s

This commit is contained in:
Fam Zheng
2026-05-10 14:57:36 +01:00
parent c0d6e37325
commit eed5e88dc0
2 changed files with 8 additions and 9 deletions
+1 -1
View File
@@ -233,7 +233,7 @@
<!-- 右侧 LLM chat 边栏 --> <!-- 右侧 LLM chat 边栏 -->
<aside v-if="selected" class="chat"> <aside v-if="selected" class="chat">
<header class="chat-head"> <header class="chat-head">
<span>麻薯 · {{ selected.title.slice(0, 12) }}</span> <span>Chat · {{ selected.title.slice(0, 16) }}</span>
<button class="chat-clear" @click="onChatClear" title="清空对话">清空</button> <button class="chat-clear" @click="onChatClear" title="清空对话">清空</button>
</header> </header>
<div ref="chatBodyEl" class="chat-body"> <div ref="chatBodyEl" class="chat-body">
+7 -8
View File
@@ -799,23 +799,22 @@ fn build_chat_context(
.optional()?; .optional()?;
let (title, artist, category, lyrics, notes) = row.ok_or(AppError::NotFound)?; let (title, artist, category, lyrics, notes) = row.ok_or(AppError::NotFound)?;
let mut sys = String::from( // 仅注入当前曲目上下文,不赋予 LLM 任何角色 / 人格。
"你是麻薯,一个懂音乐、会乐理、爱聊天的助手。用中文回答,简洁直接,必要时用 markdown。\n\n当前曲目:", let mut sys = String::from("Context: 用户正在查看以下曲目。\n");
); sys.push_str(&format!("Title: {}\n", title));
sys.push_str(&format!("{}", title));
if let Some(a) = artist.as_deref().filter(|s| !s.is_empty()) { if let Some(a) = artist.as_deref().filter(|s| !s.is_empty()) {
sys.push_str(&format!(" {}", a)); sys.push_str(&format!("Artist: {}\n", a));
} }
if let Some(c) = category.as_deref().filter(|s| !s.is_empty()) { if let Some(c) = category.as_deref().filter(|s| !s.is_empty()) {
sys.push_str(&format!("{}", c)); sys.push_str(&format!("Category: {}\n", c));
} }
if let Some(n) = notes.as_deref().filter(|s| !s.is_empty()) { if let Some(n) = notes.as_deref().filter(|s| !s.is_empty()) {
sys.push_str(&format!("\n用户笔记:{}", n)); sys.push_str(&format!("User notes: {}\n", n));
} }
if let Some(l) = lyrics.as_deref().filter(|s| !s.is_empty()) { if let Some(l) = lyrics.as_deref().filter(|s| !s.is_empty()) {
// LRC 太长会爆 prompt,截到 4KB // LRC 太长会爆 prompt,截到 4KB
let trimmed = if l.len() > 4096 { &l[..4096] } else { l }; let trimmed = if l.len() > 4096 { &l[..4096] } else { l };
sys.push_str(&format!("\n歌词(截断到 4KB):\n{}", trimmed)); sys.push_str(&format!("Lyrics (truncated to 4KB):\n{}\n", trimmed));
} }
let mut stmt = conn.prepare( let mut stmt = conn.prepare(