AI 能力与启动资格
TopStepAIKit 提供两类查询:supportsAIFeatures: 仅用于兼容性功能发现;真正启动任何 AI 操作前,应使用 startEligibilityForRequest: 对完整请求做实时、无副作用的资格校验。
推荐流程
展示入口:supportsAIFeatures:(可选、粗粒度)
↓
构造 TSAIStartRequest(用例 + 参数 + 可选设备协同)
↓
startEligibilityForRequest:(必需、精确)
↓ Supported
调用对应能力接口
TSAIStartEligibility.support 为 TSAICapabilitySupported 或 TSAICapabilityUnsupported。不支持时 error 必定给出原因;支持时 error 为 nil。
构造启动请求
TSAIUseCaseParameters *parameters =
[TSAIUseCaseParameters voiceTranslationParametersWithMode:
TSAIVoiceTranslationModeStandard];
TSAIAudioRouteConfiguration *route =
[TSAIAudioRouteConfiguration defaultConfiguration];
TSAIDeviceCoordination *coordination =
[TSAIDeviceCoordination coordinationWithScene:TSAIDeviceAISceneTranslation
initiator:TSAISessionInitiatorApp
audioRouteConfiguration:route];
TSAIStartRequest *request =
[TSAIStartRequest requestWithIdentifier:NSUUID.UUID.UUIDString
useCase:TSAIUseCaseVoiceTranslation
parameters:parameters
deviceCoordination:coordination];
TSAIStartEligibility *eligibility =
[context startEligibilityForRequest:request];
if (eligibility.support == TSAICapabilityUnsupported) {
TSLog(@"当前无法启动: %@", eligibility.error.localizedDescription);
return;
}
纯 App 操作的 deviceCoordination 传 nil。需要设备协同时,必须提供准确的设备场景、发起方和完整音频路由,不能只校验一个功能位。
请求模型
| 类型 | 只读属性 | 构造方法 |
|---|---|---|
TSAIStartRequest | requestIdentifier、useCase、parameters、deviceCoordination | requestWithIdentifier:useCase:parameters:deviceCoordination: |
TSAIUseCaseParameters | kind、recordingScene、voiceTranslationMode | audioRecordingParametersWithScene:、voiceTranslationParametersWithMode: |
TSAIDeviceCoordination | scene、initiator、audioRouteConfiguration | coordinationWithScene:initiator:audioRouteConfiguration: |
TSAIStartEligibility | support、error | supportedEligibility、unsupportedEligibilityWithError: |
requestIdentifier 在当前连接代际内必须唯一。模型均不可变并支持复制,启动后不要再尝试修改同一请求。
业务用例
TSAIUseCase | 说明 |
|---|---|
TSAIUseCaseInvalid | 非法用例 |
TSAIUseCaseTextSummary / TSAIUseCaseChat | 文本总结 / AI 对话 |
TSAIUseCaseTextTranslation | 文本翻译 |
TSAIUseCaseSpeechSynthesis | 语音合成 |
TSAIUseCasePCMRecognition / TSAIUseCaseFileRecognition / TSAIUseCaseOfflineRecognition | PCM / 文件 / 离线识别 |
TSAIUseCasePhoneInterpretation | 手机同声传译 |
TSAIUseCaseAIRecording / TSAIUseCaseCallRecording / TSAIUseCaseNormalRecording | AI / 通话 / 普通录音 |
TSAIUseCaseTextQuestionAnswer | 文本问答 |
TSAIUseCaseImageGeneration | 图片生成 |
TSAIUseCaseVoiceTranslation / TSAIUseCaseVoiceQuestionAnswer | 设备协同语音翻译 / 问答 |
TSAIUseCaseWatchFace / TSAIUseCaseRideHailing | 语音表盘 / 语音打车 |
设备协同枚举
| 枚举 | 值 |
|---|---|
TSAIDeviceAIScene | TSAIDeviceAISceneInvalid、TSAIDeviceAISceneChat、TSAIDeviceAISceneRecording、TSAIDeviceAISceneCallRecording、TSAIDeviceAISceneTranslation、TSAIDeviceAISceneRideHailing、TSAIDeviceAISceneWatchFace、TSAIDeviceAISceneQuestionAnswer、TSAIDeviceAISceneTranslationSelf、TSAIDeviceAISceneTranslationPeer |
TSAISessionInitiator | TSAISessionInitiatorInvalid、TSAISessionInitiatorApp、TSAISessionInitiatorDevice |
TSAIUseCaseParameterKind | TSAIUseCaseParameterKindNone、TSAIUseCaseParameterKindAudioRecording、TSAIUseCaseParameterKindVoiceTranslation |
TSAIVoiceTranslationMode | TSAIVoiceTranslationModeInvalid、TSAIVoiceTranslationModeStandard、TSAIVoiceTranslationModeConversationSelf、TSAIVoiceTranslationModeConversationPeer |
TSAIConversationTranslationMode | TSAIConversationTranslationModeInvalid、TSAIConversationTranslationModeFaceToFace、TSAIConversationTranslationModePrivate、TSAIConversationTranslationModePortable |
Service 原子能力
TSAIServiceCapabilityOptions 包含:TSAIServiceCapabilityNone、TSAIServiceCapabilityTextSummarization、TSAIServiceCapabilityConversation、TSAIServiceCapabilityTextTranslation、TSAIServiceCapabilitySpeechSynthesis、TSAIServiceCapabilityPCMRecognition、TSAIServiceCapabilityFileRecognition、TSAIServiceCapabilityOfflineRecognition、TSAIServiceCapabilityInterpretation、TSAIServiceCapabilityAudioRecordingProcessing、TSAIServiceCapabilityQuestionAnswering、TSAIServiceCapabilityImageGeneration。
Provider 实现 supportedAIServiceCapabilities 和 supportForAIServiceCapabilities:;设备桥实现 supportForDeviceAIScene:initiator:audioInputChannel:。两者只报告各自事实,由 Context 合并实时状态后生成启动资格。
兼容性功能发现
- (BOOL)supportsAIFeatures:(TSAIFeatureOptions)features;
TSAIFeatureOptions 的旧位值已冻结:TSAIFeatureNone、TSAIFeatureAISummary、TSAIFeatureAIChat、TSAIFeatureTextTranslation、TSAIFeatureSpeechSynthesis、TSAIFeaturePCMRecognition、TSAIFeatureFileRecognition、TSAIFeatureDeviceMicRecognition、TSAIFeatureOfflineRecognition、TSAIFeatureInterpretation、TSAIFeatureAIAudioRecording、TSAIFeatureCallAudioRecording、TSAIFeatureNormalAudioRecording、TSAIFeatureQuestionAnswering、TSAIFeatureImageGeneration、TSAIFeatureDeviceVoiceTranslation、TSAIFeatureDeviceQuestionAnswering;TSAIFeatureAll 固定为 0xFFFF。
该接口不表达 Context 生命周期、鉴权、权限、网络、任务互斥或精确音频路由,因此查询为 YES 也不能直接授权启动。
注意事项
- 资格校验必须紧邻真实启动调用;外部状态变化后应重新校验。
TSAICapabilityUnsupported的error应直接用于禁用原因或错误提示,不要改用功能位猜测失败原因。Unknown、Automatic音频输入不是设备能力事实;设备侧校验只接受已经解析的精确通道。TSAIFeatureAll只适合兼容性诊断,不应作为页面启用条件。