Перейти к основному содержимому

Выбор поставщика AI-сервисов

Зарегистрируйте SDK поставщиков, включённые в приложение, затем выберите поставщика, которого AIBudsAISDK будет использовать для последующих AI-операций.

Предварительные условия

  • Базовый AIBuds SDK инициализирован.
  • Приложение установило и скомпоновало хотя бы один SDK поставщика.
  • Выбранный поставщик входит в массив, переданный в AIBudsAISDK.initialize(_:).
  • Данные устройства настроены до авторизации поставщика и AI-операций, зависящих от устройства.

Реализация с помощью AI

Разработка с AI

Реализуйте этот сценарий с AI

Используйте официальный навык «Выбор поставщика ИИ для AIBuds» и адаптируйте сценарий к приложению.

Прочитайте и выполните инструкции https://docs-aibuds.github.io/ru/skills/select-aibuds-ai-provider. Используйте этот навык, чтобы реализовать «Выбор поставщика ИИ для AIBuds» в данном iOS-проекте и проверить результат.
Открыть официальный навык

API Reference

Framework

AIBudsAI.xcframework

Реализации поставщиков распространяются отдельно, в том числе AIBudsStarBurst.xcframework и AIBudsMagicHelper.xcframework.

Import

Swift
import AIBudsAI
import AIBudsAIFoundation
import AIBudsStarBurst
import AIBudsMagicHelper

Declaration

Жизненным циклом поставщиков управляет 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

Поставщики AI-сервисов

SwiftObjective-CОписание
.noneAIBudsAIServiceVendorNoneПоставщик не выбран. Это состояние по умолчанию.
.starBurstAIBudsAIServiceVendorStarBurstStarBurst AI от ByteDance.
.mltcloudAIBudsAIServiceVendorMltcloudMltCloud 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, его инициализация может установить встроенных поставщиков. Не инициализируйте 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 и сохраняет существующую инициализацию.
  • Если несколько реализаций объявляют одно значение enum поставщика, сохраняется первая зарегистрированная реализация.
  • Поддерживаемые функции и языки могут различаться у разных поставщиков.