whio-api-sdk
v1.0.239-beta-staging
Published
A JS SDK that interacts with our medical-assistant-api
Readme
whio-sdk
A JS SDK that interacts with our medical-assistant-api
Audio Transcription Queue
The SDK now supports automatic audio transcription through a background queue system. When you upload audio files, they are automatically processed and transcribed.
Upload Audio with Transcription Queue
import { ApiSDK, AudioFileStatus } from 'whio-sdk';
const sdk = new ApiSDK({ baseUrl: 'https://your-api.com' });
// Simple upload (automatically triggers transcription)
const audioFile = await sdk.uploadAudioFileToSession(sessionId, file);
// Upload with cultural context
const audioFileWithContext = await sdk.uploadAudioFileToSession(
sessionId,
file,
'audio.mp3',
'This is cultural context for the audio'
);
// Alternative method with options object
const audioFileAlt = await sdk.uploadAudioFileWithTranscriptionQueue(sessionId, file, {
fileName: 'recording.mp3',
culturalTranscription: 'Patient discussing symptoms in Māori'
});Check Transcription Results
// Get specific audio file with transcription results
const audioFile = await sdk.getAudioFile(audioFileId);
if (audioFile.status === AudioFileStatus.TRANSCRIBED) {
console.log('Transcription:', audioFile.transcription);
console.log('Cultural Context:', audioFile.cultural_transcription);
}
// Get all transcribed files
const transcribedFiles = await sdk.getTranscribedAudioFiles();
// Get files currently being processed
const processingFiles = await sdk.getProcessingAudioFiles();
// Get failed transcriptions
const failedFiles = await sdk.getFailedAudioFiles();Audio File Status
Audio files have the following status values:
UPLOADED- File uploaded, waiting for transcriptionPROCESSING- Currently being transcribedTRANSCRIBED- Transcription completeFAILED- Transcription failed
Key Features
- Automatic Processing: Upload triggers transcription automatically
- Serial Processing: Files are processed one at a time for reliability
- Cultural Context: Optional cultural transcription field for context
- Status Tracking: Monitor transcription progress
- Error Handling: Graceful handling of transcription failures
- Fire and Forget: No polling required - just upload and check later
Example Usage
// Upload and get immediate response
const audioFile = await sdk.uploadAudioFileToSession(sessionId, audioBlob, 'recording.wav');
console.log('Status:', audioFile.status); // 'UPLOADED'
// Check later for transcription results
setTimeout(async () => {
const updatedFile = await sdk.getAudioFile(audioFile.id);
if (updatedFile.status === AudioFileStatus.TRANSCRIBED) {
console.log('Transcription ready:', updatedFile.transcription);
}
}, 10000); // Check after 10 seconds