feat(iOS): 更新MNN后端模型配置优化性能 将MNN主模型从Qwen3.5-4B(~2.64GiB)降级为Qwen3.5-2B(~1.1GiB),因为4B版本 实测运行过慢,影响用户体验。iPhone17+/SME2设备使用2B模型,保留MLX 兜底方案用于模拟器和备用场景,确保AI推理性能和存储效率的平衡。 ```
35 lines
1.6 KiB
Swift
35 lines
1.6 KiB
Swift
import SwiftUI
|
|
|
|
/// 全 App 统一的 AI 免责声明(上架合规:医疗类内容必须声明不做诊断)。
|
|
/// 任何展示 AI 生成的归纳/解读/建议文本的地方,都应在结果末尾附上 `AIDisclaimerFooter`;
|
|
/// 离开 App 的文本(复制/分享)用 `AIDisclaimer.appended(to:)` 把声明带上。
|
|
enum AIDisclaimer {
|
|
/// 面向用户展示的完整声明文本。
|
|
static let text =
|
|
"本内容由本机本地 AI 依据你录入的健康记录自动归纳整理,仅供个人健康管理与就医沟通参考," +
|
|
"不构成医学诊断、治疗建议或专业医疗意见;具体健康问题请咨询执业医师。"
|
|
|
|
/// 复制/分享时把声明追加到正文末尾(分隔线 + 声明),让文本离开 App 也带着免责。
|
|
static func appended(to body: String) -> String {
|
|
let trimmed = body.trimmingCharacters(in: .whitespacesAndNewlines)
|
|
return "\(trimmed)\n\n———\n\(text)"
|
|
}
|
|
}
|
|
|
|
/// AI 结果下方的免责声明脚注:小字、弱色、信息图标。放在任何 AI 生成文本块末尾。
|
|
struct AIDisclaimerFooter: View {
|
|
var body: some View {
|
|
HStack(alignment: .top, spacing: 6) {
|
|
Image(systemName: "info.circle")
|
|
.font(.tjScaled( 10))
|
|
.foregroundStyle(Tj.Palette.text3)
|
|
Text(AIDisclaimer.text)
|
|
.font(.tjScaled( 10))
|
|
.lineSpacing(2)
|
|
.foregroundStyle(Tj.Palette.text3)
|
|
.fixedSize(horizontal: false, vertical: true)
|
|
}
|
|
.frame(maxWidth: .infinity, alignment: .leading)
|
|
}
|
|
}
|