翻译兜底引擎与摘要A/B解耦:固定 gemma4-e2b(日语强项+本机已验证),不再寄生 useMinicpm5(纪要方向的开关;MiniCPM5日语未标定、本工程纪要场景日语表现差);新增 fallbackModelDirName/GgufName/ChatTemplate 三常量,translateFallback 改用;摘要管线维持原开关不动

This commit is contained in:
liwenhao2 2026-09-16 11:31:43 +08:00
parent 9a8391d913
commit d18554d731
1 changed files with 9 additions and 3 deletions

View File

@ -314,6 +314,12 @@ class MainActivity : AppCompatActivity() {
else "gemma-4-E2B_q4_0-it.gguf" else "gemma-4-E2B_q4_0-it.gguf"
private val summarizeChatTemplate: String private val summarizeChatTemplate: String
get() = if (useMinicpm5) "minicpm" else "gemma4" get() = if (useMinicpm5) "minicpm" else "gemma4"
// 翻译兜底引擎(2026-09-16 用户拍板与摘要 A/B 解耦):固定 E2B——日语强项、
// 本机已验证(9/11 纪要首跑);不再寄生 useMinicpm5(那只是纪要方向的决定,
// MiniCPM5 日语未标定且本工程纪要场景对日语表现差)
private val fallbackModelDirName = "gemma4-e2b"
private val fallbackGgufName = "gemma-4-E2B_q4_0-it.gguf"
private val fallbackChatTemplate = "gemma4"
private lateinit var summarizeButton: Button private lateinit var summarizeButton: Button
private lateinit var copyMinutesButton: Button private lateinit var copyMinutesButton: Button
private lateinit var minutesStatus: TextView private lateinit var minutesStatus: TextView
@ -2375,8 +2381,8 @@ class MainActivity : AppCompatActivity() {
Log.i(TAG, "TAP-FALLBACK sid=$sid skipped=budget") Log.i(TAG, "TAP-FALLBACK sid=$sid skipped=budget")
return null return null
} }
val gguf = File(File(externalModelDir, summarizeModelDirName), val gguf = File(File(externalModelDir, fallbackModelDirName),
summarizeGgufName) fallbackGgufName)
if (!gguf.isFile) { if (!gguf.isFile) {
Log.i(TAG, "TAP-FALLBACK sid=$sid skipped=no-model " + Log.i(TAG, "TAP-FALLBACK sid=$sid skipped=no-model " +
gguf.absolutePath) gguf.absolutePath)
@ -2391,7 +2397,7 @@ class MainActivity : AppCompatActivity() {
return try { return try {
e = LlmEngine(gguf.absolutePath, SUMMARY_CTX, e = LlmEngine(gguf.absolutePath, SUMMARY_CTX,
if (isRecording) SUMMARY_THREADS_BUSY else SUMMARY_THREADS, if (isRecording) SUMMARY_THREADS_BUSY else SUMMARY_THREADS,
chatTemplate = summarizeChatTemplate) chatTemplate = fallbackChatTemplate)
val out = e.generate( val out = e.generate(
systemPrompt = "你是专业翻译。把给出的句子翻译成" + transTargetName() + systemPrompt = "你是专业翻译。把给出的句子翻译成" + transTargetName() +
"。只输出译文本身,不要解释、不要引号、不要抄写原文," + "。只输出译文本身,不要解释、不要引号、不要抄写原文," +