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 伺服器上進行全面測試
  • 將更新版本部署到生產環境