V1 至 V2 服务器迁移指南
重要通知
V1 服务器(NyanCat 后端)将于 2026 年 6 月 30 日停止服务。
所有开发者必须在此日期之前迁移至 V2 服务器(CrimsonLion 后端),以确保持续的服务可用性。
此外,V2 服务器的测试版将于 2026 年 6 月 30 日结束,届时 V2 将成为稳定的生产环境后端。
概述
本指南帮助您从 V1 服务器(NyanCat 后端)迁移至 V2 服务器(CrimsonLion 后端)。V2 服务器提供增强的功能、改进的性能和额外的生命体征测量。
重要日期
| 日期 | 事件 |
|---|---|
| 2026 年 6 月 30 日 | V1 服务器(NyanCat)终止服务 |
| 2026 年 6 月 30 日 | V2 服务器(CrimsonLion)测试期结束 |
| 2026 年 6 月 30 日之后 | 仅支持 V2 服务器 |
为什么迁移至 V2?
V2 服务器(CrimsonLion 后端)提供:
- 增强的生命体征:额外的测量项目,包括身体健康、心理健康等
- 提高的准确性:更好的信号处理和分析算法
- 更好的性能:优化的云端基础设施
- 未来更新:所有新功能将仅在 V2 上提供
迁移步骤
步骤 1:启用精确度模式(一行代码!)
迁移到 V2 很简单
只需在配置中添加一行代码:
precisionMode: PrecisionMode.relaxed当您设置 precisionMode 时,SDK 会自动使用 V2 服务器(CrimsonLion 后端)。您不需要手动设置 serverId。
就这样!这一行代码即可启用 V2 及其所有增强功能。
要迁移到 V2,只需在您的 SDK 配置中添加这一行代码:
const config = {
sdkCredentials: {
apiKey: "YOUR_API_KEY",
userId: "YOUR_USER_ID"
},
precisionMode: PrecisionMode.relaxed // ← 添加这一行代码 - 就这样!
}const config = {
sdkCredentials: {
apiKey: "YOUR_API_KEY",
userId: "YOUR_USER_ID"
},
precisionMode: PrecisionMode.relaxed // ← 添加这一行代码 - 就这样!
}camera.configure {
sdkCredentials = SdkCredentials(
apiKey = "YOUR_API_KEY",
userId = "YOUR_USER_ID"
)
precisionMode = PrecisionMode.Relaxed // ← 添加这一行代码 - 就这样!
}camera.setup { camera in
camera.sdkCredentials = .init(
apiKey: "YOUR_API_KEY",
userId: "YOUR_USER_ID"
)
camera.precisionMode = .relaxed // ← 添加这一行代码 - 就这样!
}VitalSignCamera(
sdkCredentials: SdkCredentials(
apiKey: 'YOUR_API_KEY',
userId: 'YOUR_USER_ID',
),
precisionMode: PrecisionMode.relaxed, // ← 添加这一行代码 - 就这样!
// ...
)精确度模式选项
PrecisionMode.relaxed(TypeScript / JavaScript / Flutter)或PrecisionMode.Relaxed(Android):建议大多数应用程式使用。使用 V2 服务器,平衡性能和准确性。PrecisionMode.strict(TypeScript / JavaScript / Flutter)或PrecisionMode.Strict(Android):使用 V2 服务器,具有更严格的品质要求,以达到最大准确性。
使用 SdkCredentials 设置凭证
推荐做法
请始终使用 SdkCredentials 对象传入您的 API 密钥和用户 ID(如上方示例所示)。这是 V2 身份验证的推荐方式。
| 平台 | 用法 |
|---|---|
| TypeScript / JavaScript | sdkCredentials: { apiKey: "...", userId: "..." } |
| Android(Kotlin) | sdkCredentials = SdkCredentials(apiKey = "...", userId = "...") |
| iOS(Swift) | camera.sdkCredentials = SdkCredentials(apiKey: "...", userId: "...") |
| Flutter(Dart) | sdkCredentials: SdkCredentials(apiKey: '...', userId: '...') |
将 apiKey 或 userId 作为顶层配置属性传入目前仍受支持,但将于未来版本中弃用。我们强烈建议您现在迁移至 SdkCredentials,以避免未来发生破坏性变更。
步骤 2:更新用户资讯要求
V2 服务器对用户资讯有更严格的要求。确保您提供:
- 年龄(必需)
- 性别(必需)
- 体重(必需)
- 身高(必需)
重要
虽然这些栏位在 V1 中是可选的,但在 V2 中它们是必需的,特别是对于血压和其他生命体征的准确测量。
示例:
const userInfo = {
age: 30,
gender: Gender.Male,
weight: 70, // 公斤
height: 175 // 公分
}步骤 3:测试您的整合
进行更改后:
- 测试所有生命体征测量
- 验证扫描条件和信号品质
- 检查健康结果的准确性
- 确保错误处理正常运作
- 在所有支援的平台上测试
步骤 4:更新 SDK 版本(如需要)
确保您使用完全支援 V2 服务器的最新 SDK 版本:
API 差异
扫描条件
在 V1 中,扫描条件通过阵列索引访问。在 V2 中,使用命名属性:
V1(已弃用):
const conditions = healthResult.health.scanParameters.conditions
const hrSteadiness = conditions[0]
const goodSnr = conditions[1]V2(推荐):
const signalConditions = healthResult.health.scanParameters.signalConditions
const hrSteadiness = signalConditions.hrSteadiness
const goodSnr = signalConditions.goodSnrV2 中的额外生命体征
V2 服务器提供 V1 中不可用的额外生命体征:
- 身体健康指标
- 心理健康评估
- 增强的心血管分析
- 额外的风险评估
请参阅解读结果部分以获取 V2 生命体征的完整列表。
常见问题和解决方案
问题:缺少必需的用户资讯
问题:V2 需要 年龄、性别、体重和身高。
解决方案:确保提供所有用户资讯栏位:
const userInfo = {
age: userAge,
gender: userGender,
weight: userWeight,
height: userHeight
}问题:不同的扫描条件结构
问题:通过阵列索引访问扫描条件的程式码失败。
解决方案:更新为使用 signalConditions 中的命名属性。
问题:未设置精确度模式
问题:默以为传统模式(V1)。
解决方案:在配置中明确设置精确度模式。
支援
如果您在迁移过程中遇到问题:
- 查看本指南和 Vitals 云端服务文档
- 查看 FAQ 以获取常见问题
- 通过 support@panoptic.ai 联系我们的支援团队
- 参考下载部分中的示例程式码
时间表提醒
关键日期
- 现在:开始迁移至 V2 服务器
- 2026 年 6 月 30 日:V1 服务器弃用,V2 测试版结束
- 2026 年 6 月 30 日之后:仅 V2 服务器可用
提前计划您的迁移以避免服务中断。我们建议至少在弃用日期前一个月完成迁移。
下一步
- 查看 Vitals 云端服务以了解 V2 功能
- 更新您的应用程式配置
- 在 V2 服务器上进行全面测试
- 将更新版本部署到生产环境