Loading workspace insights... Statistics interval
7 days30 daysLatest CI Pipeline Executions
c7e4f1cb feat: add OpenAI diarization support (#651)
* add diarization support
* fix coderabbit recommendations
* refactor: update transcription options and support for diarization
- Removed `transcribe-provider-options.ts` file and integrated its options into `transcription-provider-options.ts`.
- Updated documentation to reflect changes in response formats, emphasizing the use of `modelOptions.response_format` for diarization.
- Enhanced the transcription adapter to handle new model options and response formats, including support for speaker diarization.
- Adjusted various components and tests to accommodate the new structure and ensure compatibility with the updated transcription features.
* fix coderabbit findings
* refactor: update transcription response formats and validation
- Removed 'diarized_json' from the allowed response formats in both the server functions and API schemas.
- Updated the TranscriptionResponseFormat type to reflect the removal of 'diarized_json'.
- Enhanced error handling in the OpenAI transcription adapter to ensure that known speaker names and references are provided together.
- Added tests to validate the new requirements for speaker diarization in the transcription process.
* fix: address review findings for diarization support
- Allow chunking_strategy with non-diarize models (it's a general OpenAI
transcription parameter, only *required* for diarize inputs >30s)
- Guard the diarized response cast: throw a descriptive error when
segments are missing, and always return segments (even empty) for
diarized requests instead of silently omitting them
- Throw on conflicting responseFormat vs modelOptions.response_format
instead of silently preferring the top-level value
- Spread modelOptions before model/file and strip stream so untyped
passthrough options can't override validated request fields
- Surface duration-billed usage on gpt-4o-transcribe-diarize responses
instead of discarding it
- Guard Number('') in diarized segment id mapping (collided with seg_0)
- Move request building inside try so validation errors hit the
provider-scoped error log; include offending values in messages
- Fix stale/contradictory JSDoc about gpt-4o-* response formats
- Docs: correct chunking_strategy framing, document the diarized_json
default opt-out and known-speaker pairing rules, add snippet imports
for kiira, replace an `as string` cast with a typeof narrow, bump
docs/config.json updatedAt
- Tests: whisper modelOptions.response_format resolution (verbose_json
and text), 4-speaker acceptance boundary, diarized usage/duration
mapping (tokens and duration), segment id parsing, empty-segments
contract, format-conflict rejection, modelOptions override hardening,
missing-segments error
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* ci: apply automated fixes