ym88659208ym87991671
Интеграция в проект | Документация для разработчиков
Skip to main content

Интеграция в проект

Обновлено 20 апреля 2022
caution
  • При редактировании и добавлении новой версии в AssistantSDK.xcdatamodeld необходимо обновить ссылку на нее в таргете, в который интегрируется SDK.

  • Для миграции данных на шестую версию CoreData, обязательно добавьте файл MappingModelV6.xcmappingmodel.

После подключения SDK в приложение, интегрируйте его в код прикладного проекта.

SDK iOS состоит из следующих модулей:

  • AssistantSDK.xcframework;
  • AssistantAPI.xcframework;
  • DevicesCore.xcframework;
  • DeviceDesignSystem.xcframework;
  • DevicesUI.xcframework;
  • OKNIKS.xcframework;
  • PaylibAPI.xcframework;
  • PaylibImpl.xcframework;
  • SDPermormanceAPI.xcframework;
  • SpotterAPI.xcframework;
  • TrayAPI.xcframework;
  • VoiceProcessingServiceSDK.xcframework.

Далее привяжите фреймворки к нужному таргету и отключите Embedded, т. к. они собраны статически.

Установите Build Setting: Frameworks Search Path на директорию, в которой размещены фреймворки SDK в проекте.   

Пример базовой интеграции можно посмотреть в примерах: Examples/ASDKBasicExample.

Для создания основных зависимостей используется класс AssistantGraph:

assistantGraph = AssistantGraph(
vpsConfiguration: vpsConfiguration,
remoteImageHostPolicy: settings.remoteContentHostPolicy,
okniksResourcesParams: settings.okniksResourcesParams,
spotterSettings: settings.spotterSettings,
navigationSettings: navigationSettings,
audioSettings: audioSettings,
dependencies: dependencies,
deserializationContext: .default
)

Чтобы создать граф, необходимы следующие зависимости:

  • vpsConfiguration — настройки VPS-соединения.
  • remoteImageHostPolicy — политика разрешенных хостов для скачиваемых изображений. По умолчанию все разрешены (.allGranted).
  • okniksResourcesParams — параметры загрузки ресурсов ОКНИКС.
  • spotterSettings — настройки споттера или сущности, которая стартует слушание по голосовой фразе пользователя.
  • navigationSettings — настройки навигации ассистента.
  • audioSettings — настройки аудиосессии.
  • dependencies — зависимости графа с поверхности.
  • deserializationContext – контекст десериализации при парсинге DTO-файлов. Значение по умолчанию — .default.

Настройки ассистента в службе обработки голоса (VoiceProcessingService)

Для авторизации приложения в службе обработки голоса нужно указать обязательные параметры в VoiceConfiguration

  • host — URL для уставновки соединения. Значения:
    • prod - "wss://nlp2vps.online.sberbank.ru:443/vps/";
    • psi"wss://nlp2vpspsi.online.sberbank.ru/vps/";
      • ift"wss://nlp2vpsift.online.sberbank.ru/vps/";
    • demo"wss://vpstest2.online.sberbank.ru:443/vpsdemo2/".
  • protocolVersion – версия протокола VPS. Необходимо использовать последнюю (текущая — nlp20v5).
  • channelName — идентификатор приложения-хоста. Передается значение "MP_SBOL_IOS".
  • channelVersion — версия приложения. Например: "1", "8.1.0.2932_RC", "8.9.1.8".
  • surface – поверхность в терминах VPS/NLP.
  • hostAppBundleIDCFBundleIdentifier приложения.
  • userIDProvider – провайдер для user_id, уникального UUID установки. При первом запуске на клиенте генерируется идентификатор, который потом сохраняется локально и используется при следующих запусках.
  • connectionTimeout – pingpong-таймаут общения с сервисом. Значение по умолчанию — 10 секунд.
  • isConnectionCheckerEnabled – pingpong-чекер соединения. По умолчанию включен.
  • sslPinningConfiguration – настройка sslPinning. Для более безопасного соединения необходимо передать сертификат globalSign из подключаемых ресурсов.(см. раздел Подключение SDK.
  • userChannel – название канала. Значение, которое было настроено при получении архива с SDK.
  • vpsToken – токен авторизации для канала приложения, который был настроен при получении архива с SDK.
  • deviceInfo – информация об устройстве. Создается по умолчанию.
  • sdkVersion – версия Assistant SDK. Создается по умолчанию.
  • asrEngine – движок для кодирования исходящего аудио. Значение по умолчанию — nil. Внутренний PCM.
  • ttsEngine – движок для декодирования входящего аудио. Значение по умолчанию — nil. Внутренний PCM.
  • vpsAuthMode – движок авторизации. Значение по умолчанию — .bacckendDefault. Определяется на бэкенде.
  • tenant – идентификатор органзации, в которой находится устройство. Значение по умолчанию пустое. Не требуется передавать.
  • asrLimit – ограничения по отправке книги контактов в ASR. Значение по умолчанию — 5000.
  • hostAppParametersProvider – провайдер данных хоста в VPS. Значение по умолчанию пустое.

После создания graph: AssistantGraph необходимо создать пользовательский иитерфейс ассистента: graph.makeViewController.

public func makeViewController(
withLaunchOptions launchOptions: AssistantLaunchOptions,
closeScreen: ((UIViewController) -> Void)? = nil
) -> UIViewController

Настройки старта показа ассистента

При открытии интерфейса ассистента можно указать параметры открытия — AssistantLaunchOptions.

AssistantLaunchOptions содержит в себе события (экшены), которые могут возникнуть при открытии ассистента, и информацию о точке входа в ассистента.

Доступны следующие события:

  • startAutolistening – старт автослушания во время открытия ассистента с указанием триггера (открытия).
  • sendTextMessage – отправка текстового сообщения.
  • continueScenario / runApplication – события для отправки RUN_APP сервер-экшена в VPS со стартом или продолжением сценария.
  • openKeyboad – открытие клавиатуры.
  • runPaylib – открытие окна оплаты.
caution

Перечисленные события можно отправлять и после открытия ассистента. Для этого воспользуйтесь интерфейсом graph.assistantActionPerformer.

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней