Skip to content

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 很简单

只需在配置中添加一行代码:

typescript
precisionMode: PrecisionMode.relaxed

当您设置 precisionMode 时,SDK 会自动使用 V2 服务器(CrimsonLion 后端)。您不需要手动设置 serverId。

就这样!这一行代码即可启用 V2 及其所有增强功能。

要迁移到 V2,只需在您的 SDK 配置中添加这一行代码

typescript
const config = {
  sdkCredentials: {
    apiKey: "YOUR_API_KEY",
    userId: "YOUR_USER_ID"
  },
  precisionMode: PrecisionMode.relaxed  // ← 添加这一行代码 - 就这样!
}
javascript
const config = {
  sdkCredentials: {
    apiKey: "YOUR_API_KEY",
    userId: "YOUR_USER_ID"
  },
  precisionMode: PrecisionMode.relaxed  // ← 添加这一行代码 - 就这样!
}
kotlin
camera.configure {
    sdkCredentials = SdkCredentials(
        apiKey = "YOUR_API_KEY",
        userId = "YOUR_USER_ID"
    )
    precisionMode = PrecisionMode.Relaxed  // ← 添加这一行代码 - 就这样!
}
swift
camera.setup { camera in
    camera.sdkCredentials = .init(
        apiKey: "YOUR_API_KEY",
        userId: "YOUR_USER_ID"
    )
    camera.precisionMode = .relaxed  // ← 添加这一行代码 - 就这样!
}
dart
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 / JavaScriptsdkCredentials: { apiKey: "...", userId: "..." }
Android(Kotlin)sdkCredentials = SdkCredentials(apiKey = "...", userId = "...")
iOS(Swift)camera.sdkCredentials = SdkCredentials(apiKey: "...", userId: "...")
Flutter(Dart)sdkCredentials: SdkCredentials(apiKey: '...', userId: '...')

apiKeyuserId 作为顶层配置属性传入目前仍受支持,但将于未来版本中弃用。我们强烈建议您现在迁移至 SdkCredentials,以避免未来发生破坏性变更。

步骤 2:更新用户资讯要求

V2 服务器对用户资讯有更严格的要求。确保您提供:

  • 年龄(必需)
  • 性别(必需)
  • 体重(必需)
  • 身高(必需)

重要

虽然这些栏位在 V1 中是可选的,但在 V2 中它们是必需的,特别是对于血压和其他生命体征的准确测量。

示例:

typescript
const userInfo = {
  age: 30,
  gender: Gender.Male,
  weight: 70,  // 公斤
  height: 175  // 公分
}

步骤 3:测试您的整合

进行更改后:

  1. 测试所有生命体征测量
  2. 验证扫描条件和信号品质
  3. 检查健康结果的准确性
  4. 确保错误处理正常运作
  5. 在所有支援的平台上测试

步骤 4:更新 SDK 版本(如需要)

确保您使用完全支援 V2 服务器的最新 SDK 版本:

  • 查看下载页面以获取最新 SDK 版本
  • 查看更新日志以了解 V2 相关的更新

API 差异

扫描条件

在 V1 中,扫描条件通过阵列索引访问。在 V2 中,使用命名属性:

V1(已弃用):

typescript
const conditions = healthResult.health.scanParameters.conditions
const hrSteadiness = conditions[0]
const goodSnr = conditions[1]

V2(推荐):

typescript
const signalConditions = healthResult.health.scanParameters.signalConditions
const hrSteadiness = signalConditions.hrSteadiness
const goodSnr = signalConditions.goodSnr

V2 中的额外生命体征

V2 服务器提供 V1 中不可用的额外生命体征:

  • 身体健康指标
  • 心理健康评估
  • 增强的心血管分析
  • 额外的风险评估

请参阅解读结果部分以获取 V2 生命体征的完整列表。

常见问题和解决方案

问题:缺少必需的用户资讯

问题:V2 需要 年龄、性别、体重和身高。

解决方案:确保提供所有用户资讯栏位:

typescript
const userInfo = {
  age: userAge,
  gender: userGender,
  weight: userWeight,
  height: userHeight
}

问题:不同的扫描条件结构

问题:通过阵列索引访问扫描条件的程式码失败。

解决方案:更新为使用 signalConditions 中的命名属性。

问题:未设置精确度模式

问题:默以为传统模式(V1)。

解决方案:在配置中明确设置精确度模式。

支援

如果您在迁移过程中遇到问题:

  1. 查看本指南和 Vitals 云端服务文档
  2. 查看 FAQ 以获取常见问题
  3. 通过 support@panoptic.ai 联系我们的支援团队
  4. 参考下载部分中的示例程式码

时间表提醒

关键日期

  • 现在:开始迁移至 V2 服务器
  • 2026 年 6 月 30 日:V1 服务器弃用,V2 测试版结束
  • 2026 年 6 月 30 日之后:仅 V2 服务器可用

提前计划您的迁移以避免服务中断。我们建议至少在弃用日期前一个月完成迁移。

下一步

  • 查看 Vitals 云端服务以了解 V2 功能
  • 更新您的应用程式配置
  • 在 V2 服务器上进行全面测试
  • 将更新版本部署到生产环境