learning_ai_common_plat/services/extraction-service
saravanakumardb1 a77b3ff931 refactor(extraction-service): provider-agnostic transcription — OpenAI + Azure Speech + Mock
- TranscriptionProvider interface with transcribe() + isConfigured()
- OpenAITranscriptionProvider: Whisper API (existing behavior)
- AzureTranscriptionProvider: Azure Speech REST API for short audio
- MockTranscriptionProvider: deterministic results for testing
- Factory: getSTT() singleton with env-driven auto-detection
  - STT_PROVIDER=openai|azure|mock (explicit)
  - Auto-detect: AZURE_SPEECH_KEY → azure, OPENAI_API_KEY → openai, else mock
- Config: add STT_PROVIDER, AZURE_SPEECH_KEY, AZURE_SPEECH_REGION env vars
- Route refactored: audio download (common) → provider.transcribe() (swappable)
- deriveFilename() extracted to types.ts (shared by route + providers)
- 35 transcription tests (was 12), 171 total passing
- Follows same pattern as @bytelyst/llm provider abstraction
2026-04-06 11:30:22 -07:00
..
evals docs(local-llm): update original setup doc to redirect to docs/ structure 2026-02-19 13:01:35 -08:00
python fix(devops): harden local shared-service docker bring-up 2026-03-22 12:34:38 -07:00
src refactor(extraction-service): provider-agnostic transcription — OpenAI + Azure Speech + Mock 2026-04-06 11:30:22 -07:00
.env.example feat(extraction): scaffold extraction-service + @bytelyst/extraction package 2026-02-14 13:31:40 -08:00
Dockerfile feat(extraction): back product rate limits with valkey 2026-03-31 08:08:53 +00:00
package.json feat(extraction): back product rate limits with valkey 2026-03-31 08:08:53 +00:00
supervisord.conf fix(extraction-service): run python sidecar on railway 2026-02-17 11:32:40 -08:00
tsconfig.json feat(extraction): scaffold extraction-service + @bytelyst/extraction package 2026-02-14 13:31:40 -08:00