メインコンテンツまでスキップ

AI サービスプロバイダーを選択

アプリに組み込んだ AI プロバイダー SDK を登録し、その後の AI 処理で AIBudsAISDK が使用するプロバイダーを選択します。

前提条件

  • AIBuds SDK 本体が初期化済みであること。
  • 1 つ以上のプロバイダー SDK がインストールされ、アプリにリンクされていること。
  • 選択するプロバイダーが AIBudsAISDK.initialize(_:) に渡した配列へ含まれていること。
  • プロバイダー認証やデバイスに依存する AI 処理より先に、デバイス情報を設定していること。

AI を活用して実装

AI で実装

AI でこのワークフローを実装

公式の「AIBuds AI プロバイダーの選択」スキルを使い、アプリに合わせて実装します。

https://docs-aibuds.github.io/ja/skills/select-aibuds-ai-provider を読み、その指示に従ってください。このスキルで「AIBuds AI プロバイダーの選択」をこの iOS プロジェクトに実装し、検証してください。
公式スキルを見る

API リファレンス

フレームワーク

AIBudsAI.xcframework

プロバイダー実装は、AIBudsStarBurst.xcframeworkAIBudsMagicHelper.xcframework などの個別フレームワークとして提供されます。

インポート

Swift
import AIBudsAI
import AIBudsAIFoundation
import AIBudsStarBurst
import AIBudsMagicHelper

宣言

プロバイダーのライフサイクルは AIBudsAISDK が管理します。各プロバイダー実装は AIConnectSDK に準拠します。

Swift
/// Initializes the SDK with the specified provider implementations.
/// - Parameter aiSDKs: The providers to register. Their order determines
///   recognition priority; a later provider using an already-registered
///   Bluetooth data protocol type is ignored.
/// - Returns: `true` when initialization succeeds; otherwise `false`.
public static func initialize( _ aiSDKs: [AIConnectSDK] ) -> Bool

/// The current AI service vendor.
static var aiServiceVendor: AIServiceVendor { get }

/// Sets the AI service vendor for the SDK.
/// - Parameter aiServiceVendor: The vendor used by subsequent AI services.
/// - Important: Call this method before using AI service-dependent functionality.
public static func setAIServiceVendor(_ aiServiceVendor: AIServiceVendor) -> Void

/// Returns all languages supported by the specified vendor.
/// - Parameter vendor: The vendor whose languages are requested.
/// - Returns: Supported languages, or an empty array when the vendor is `.none`
///   or its provider SDK is not registered.
public static func allSupportedLanguages(for vendor: AIServiceVendor) -> [AIServiceLanguage]

/// Returns the authentication initiation mode for the specified vendor.
/// - Parameter vendor: The vendor whose authentication mode is requested.
/// - Returns: The provider authentication mode.
public static func authenticationMode(for vendor: AIServiceVendor) -> AIAuthenticationMode

/// Indicates whether the device is authenticated for the specified vendor.
/// - Parameter vendor: The vendor whose authentication state is requested.
/// - Returns: `true` when the provider reports an authenticated device.
public static func isAuthenticated(for vendor: AIServiceVendor) -> Bool

サービスプロバイダー

SwiftObjective-C説明
.noneAIBudsAIServiceVendorNoneプロバイダー未選択。既定の状態です。
.starBurstAIBudsAIServiceVendorStarBurst星芒 AI(ByteDance)。
.mltcloudAIBudsAIServiceVendorMltcloud駱方案 AI(Meilc)。

正式な列挙値は AIServiceVendor を参照してください。

使用例

プロバイダー SDK を登録

通常、プロバイダーの登録はアプリ起動時に一度だけ行います。

Swift
import AIBudsAI
import AIBudsStarBurst
import AIBudsMagicHelper

let initialized = AIBudsAISDK.initialize([
    StarBurstSDK.shared,
    MagicHelperSDK.shared,
])

guard initialized else {
    print("AIBudsAISDK initialization failed")
    return
}

アプリで AIBudsAllInOneSDK を使用する場合は、その初期化時に同梱の AI プロバイダーを登録できます。AIBudsAISDK を重ねて初期化しないでください。

プロバイダーを選択

Swift
let vendor: AIServiceVendor = .starBurst
AIBudsAISDK.setAIServiceVendor(vendor)

print("Selected provider: \(AIBudsAISDK.aiServiceVendor)")
print("Supported languages: \(AIBudsAISDK.allSupportedLanguages(for: vendor))")

認証要件を確認

接続中のデバイスに AI 情報を設定した後、アプリ起点の認証が必要なプロバイダーを認証します。

Swift
let vendor = AIBudsAISDK.aiServiceVendor

if AIBudsAISDK.authenticationMode(for: vendor) == .appInitiated,
    !AIBudsAISDK.isAuthenticated(for: vendor)
{
    AIBudsAISDK.authenticateDevice(deviceInfo) { success, error in
        guard success else {
            print(error?.localizedDescription ?? "Authentication failed")
            return
        }
        print("AI provider authenticated")
    }
}

注意事項

  • setAIServiceVendor(_:) はプロバイダー SDK の登録やインストールを行いません。
  • .none を選択すると、AI サービスに依存する処理で使用できるプロバイダーがなくなります。
  • initialize(_:) を複数回呼び出すと false が返り、既存の初期化状態が維持されます。
  • 複数の実装が同じプロバイダー列挙値を宣言した場合は、最初に登録された実装が保持されます。
  • 対応機能や対応言語はプロバイダーによって異なります。