Skip to content

Add multi-provider support for transcription and post-processing#30

Merged
tindotdev merged 6 commits intomainfrom
feat/multi-provider
Mar 24, 2026
Merged

Add multi-provider support for transcription and post-processing#30
tindotdev merged 6 commits intomainfrom
feat/multi-provider

Conversation

@tindotdev
Copy link
Copy Markdown
Owner

Summary

Extends dictate to support Groq, Fireworks, and generic OpenAI-compatible providers for both speech-to-text and post-processing. Transcription and post-processing can now be resolved independently, allowing users to combine providers flexibly. Retry behavior preserves the saved provider choices by default while remaining fully overridable.

User-Visible Changes

Add provider selection flags:

dictate --transcription-provider groq              # default
dictate --transcription-provider fireworks
dictate -p --post-process-provider fireworks       # independent choice
dictate --transcription-provider openai-compatible --base-url https://host/v1/audio/transcriptions --transcription-model-id my-model

Environment variables for API key and endpoint override:

GROQ_API_KEY=...
GROQ_BASE_URL=...
GROQ_CHAT_BASE_URL=...
FIREWORKS_API_KEY=...
FIREWORKS_BASE_URL=...
FIREWORKS_CHAT_BASE_URL=...
OPENAI_COMPATIBLE_API_KEY=...
OPENAI_COMPATIBLE_BASE_URL=...
OPENAI_COMPATIBLE_CHAT_BASE_URL=...

Retry behavior: dictate retry preserves the saved recording's provider choices unless overridden:

dictate --save-last-audio --transcription-provider fireworks
dictate retry                                        # uses Fireworks
dictate retry --transcription-provider groq         # override to Groq

Implementation

Shared OpenAI-compatible request/response handling for both transcription and chat completions, avoiding duplicated provider stacks.

Named providers (Groq, Fireworks) remain explicit in the CLI and retry manifests for default endpoints, default models, and environment variable resolution.

Generic openai-compatible mode serves as an escape hatch for arbitrary compatible backends, requiring explicit endpoint and model configuration.

Provider and model resolution happens per-stage in the CLI before pipeline construction, making provider targets explicit throughout.

Saved recording manifests bumped to version 2 with backward-compatible Groq defaults for version 1 recordings.

Testing

just smoke-all

@tindotdev tindotdev merged commit d45b5ad into main Mar 24, 2026
11 checks passed
@tindotdev tindotdev deleted the feat/multi-provider branch March 24, 2026 15:33
@github-actions github-actions Bot mentioned this pull request Mar 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant