Skip to content

Add multi-provider support with model selection and custom model input#43

Open
xROBERTINOx wants to merge 1 commit intozachlatta:mainfrom
xROBERTINOx:feature/api-providers
Open

Add multi-provider support with model selection and custom model input#43
xROBERTINOx wants to merge 1 commit intozachlatta:mainfrom
xROBERTINOx:feature/api-providers

Conversation

@xROBERTINOx
Copy link
Copy Markdown

Summary

  • Added provider selection (Groq, OpenAI, Together AI, Fireworks, NVIDIA NIM, Custom) to both the setup flow and settings
  • Added model selection for both transcription and chat/post-processing models, with descriptions for each option
  • Added "Custom" model option for every provider, allowing users to enter any model ID
  • API key step in setup dynamically adapts to the selected provider (instructions, links, placeholder text)
  • Per-provider API key storage so switching providers preserves previously entered keys

Inspired by #36 — rebuilt from scratch on top of the current main branch to avoid merge conflicts.

Setup Flow

Provider Selection:

Screenshot 2026-03-20 at 7 47 12 PM

Provider-Aware API Key:

Screenshot 2026-03-20 at 7 48 00 PM

Model Selection with Descriptions:

Screenshot 2026-03-20 at 7 48 35 PM

Settings

Provider & Model Settings:

Screenshot 2026-03-20 at 7 49 28 PM

Files Changed

  • New: Sources/APIProvider.swift — Provider enum with model lists, descriptions, URLs, and custom model support
  • Sources/SetupView.swift — Added provider and model selection steps to setup wizard
  • Sources/AppState.swift — Added custom model ID storage, effective model ID resolution, per-provider key storage
  • Sources/SettingsView.swift — Updated provider picker (dropdown) and model section (radio buttons with descriptions)
  • Sources/TranscriptionService.swift — Accepts model as constructor parameter
  • Sources/PostProcessingService.swift — Accepts model as constructor parameter
  • Sources/AppContextService.swift — Accepts model as constructor parameter

@zachlatta
Copy link
Copy Markdown
Owner

Can you make a video showing this full new process working and successfully transcribing audio?

@zachlatta
Copy link
Copy Markdown
Owner

Thanks for this awesome PR! Excited to see your video

@fif911
Copy link
Copy Markdown

fif911 commented Mar 29, 2026

@zachlatta shall we get this merged? I think everything is working good. The video could be a bit of overhead, but if one spins the branch locally - it's possible to test for regressions and see that everything is good

@zachlatta
Copy link
Copy Markdown
Owner

Yes, I'm eager to get this merged! I'd like @xROBERTINOx to make a video (or someone else) to make a video showing the full thing works because this is a big PR.

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.

3 participants