The Ambient Session feature in the Suki Mobile SDK allows you to manage the lifecycle of clinical note-taking sessions, including session creation, recording controls, status checks, content retrieval, and event handling.
SukiAmbientCore.shared.status(for: recordingId) { result in switch result { case .success(let status): print("status \(status)") case .failure(let error): print("error \(error)") }}
Get Generated Suggestions
Copy
Ask AI
SukiAmbientCore.shared.content(for: recordingId) { result in switch result { case .success(let suggestions): print("suggestions \(suggestions)") case .failure(let error): print("error \(error)") }}
Get Audio Transcript
Copy
Ask AI
SukiAmbientCoreManager.shared.transcript(for: recordingId) { result in switch result { case .success(let response): let transcriptText = (response.finalTranscript ?? []).compactMap { $0.transcript }.joined() print(transcriptText) case .failure(let error): print(error) }}
All methods are asynchronous and require a valid recording ID.
The completion block returns either the result or an error.
Implement the delegate to listen for session events:
Copy
Ask AI
extension AppDelegate: SukiAmbientSessionDelegate { func sukiAmbient(sessionEvent event: SukiAmbientCore.SessionEvent, for recordingId: SukiAmbientCore.RecordingId) { // Handle session events here }}
Session Events enum:
Copy
Ask AI
public enum SessionEvent { case started case resumed case paused case ended case cancelled case suggestionGenerationInProgress case suggestionsGenerated case suggestionsGenerationFailed case audioInterruptionStarted case audioInterruptionEnded case convertedToOfflineSession case pendingOfflineUpload case preparingOfflineUpload case uploadingAudio case audioUploadFailed case audioUploadAllRetryFailed case audioUploaded case processingUpload case processingUploadFailed}