```
feat(AI): 集成MNN推理引擎替换MLX作为主AI运行时 - 引入MNN(alibaba) + Arm SME2 + CPU作为主AI运行时,支持A19/iPhone17的 SME2和A17的NEON加速 - 添加MLX Swift作为兜底GPU推理方案,实现双后端切换机制 - 使用单一Qwen3.5-2B多模态模型(1.2GB),替代原有的LLM+VL分离架构 - 实现InferenceEngine.current引擎选择逻辑,真机默认MNN,模拟器回退MLX - 更新AIAgent架构,通过MNNLLMBridge(ObjC++) → MNNBackend进行推理 - 修改队列机制防止并发推理导致OOM,使用信号量闸门控制显存占用 - 更新文档中的技术栈说明、模块边界和周次交付计划 ```
This commit is contained in:
@@ -140,6 +140,7 @@ struct IndicatorSeriesDetailView: View {
|
||||
} else {
|
||||
pages
|
||||
pager
|
||||
recordAnotherRow
|
||||
if bucket != nil { trendButton }
|
||||
}
|
||||
}
|
||||
@@ -311,6 +312,30 @@ struct IndicatorSeriesDetailView: View {
|
||||
.disabled(!enabled)
|
||||
}
|
||||
|
||||
// MARK: - 再记一条(与指标详情共用 RecordAnotherButton 组件)
|
||||
|
||||
/// 按当前翻到的那一页指标预选「再记一条」:血压走双字段,其余按 name/unit/range/seriesKey。
|
||||
@ViewBuilder
|
||||
private var recordAnotherRow: some View {
|
||||
if records.indices.contains(currentIndex) {
|
||||
switch records[currentIndex] {
|
||||
case .single(let i):
|
||||
RecordAnotherButton(name: i.name, prefill: .init(indicator: i))
|
||||
.padding(.horizontal, 20)
|
||||
.padding(.bottom, bucket == nil ? 20 : 10)
|
||||
case .bp(let sys, _):
|
||||
RecordAnotherButton(
|
||||
name: String(appLoc: "血压"),
|
||||
prefill: .init(seriesKey: sys.seriesKey ?? "bp.systolic",
|
||||
name: String(appLoc: "血压"),
|
||||
unit: "mmHg", range: sys.range)
|
||||
)
|
||||
.padding(.horizontal, 20)
|
||||
.padding(.bottom, bucket == nil ? 20 : 10)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - 趋势 / 删除
|
||||
|
||||
private var trendButton: some View {
|
||||
|
||||
Reference in New Issue
Block a user