feat(asr): add StepFun ASR SSE transcription provider

- Add StepFunTranscriptionProvider class in nanobot/providers/transcription.py
- New _post_stepfun_asr_with_retry() function handling SSE stream parsing
  (transcript.text.delta → transcript.text.done event sequence)
- Register 'stepfun' in transcription_registry.py with default model stepaudio-2.5-asr
- Reuse existing stepfun provider config (apiBase can point to Plan endpoint)
- Add 17 tests covering SSE parsing, retry contract, empty-text edge case, and registry integration
- Update docs/configuration.md with stepfun ASR documentation

StepFun ASR uses a dedicated SSE endpoint (/v1/audio/asr/sse) rather
than the chat-completions or Whisper multipart formats used by other
providers. Users on Step Plan can set apiBase to the Plan endpoint.
This commit is contained in:
moran
2026-06-10 15:50:38 +08:00
committed by Xubin Ren
parent 31bfec58d0
commit 7930058348
5 changed files with 582 additions and 4 deletions
+5
View File
@@ -64,6 +64,11 @@ TRANSCRIPTION_PROVIDERS: tuple[TranscriptionProviderSpec, ...] = (
adapter="nanobot.providers.transcription:XiaomiMiMoTranscriptionProvider",
aliases=("mimo", "xiaomi"),
),
TranscriptionProviderSpec(
name="stepfun",
default_model="stepaudio-2.5-asr",
adapter="nanobot.providers.transcription:StepFunTranscriptionProvider",
),
TranscriptionProviderSpec(
name="assemblyai",
default_model="universal-3-pro,universal-2",