Skip to content

feat: add multi-provider support (Gemini + OpenAI) with per-provider embedder config#101

Merged
Gerifield merged 1 commit into
mainfrom
feat/multi-provider-support
May 18, 2026
Merged

feat: add multi-provider support (Gemini + OpenAI) with per-provider embedder config#101
Gerifield merged 1 commit into
mainfrom
feat/multi-provider-support

Conversation

@Gerifield
Copy link
Copy Markdown
Owner

Introduces a provider abstraction so the AI backend can be swapped via config.yaml without code changes. Gemini remains the default; OpenAI (and any OpenAI-compatible endpoint) is the new alternative.

  • New internal/ai/providers package with a Provider interface and factory; Gemini and OpenAI implementations backed by genkit's native plugins.
  • Config gains provider, providers.gemini/openai (api_key + base_url) blocks; legacy api_keys.gemini is migrated automatically on load.
  • RAG embedder is independently configurable: embedder_provider, embedder_base_url, and embedding_model under capabilities.rag.
  • internal/ai/gemini/config.go removed; all logic lives in the providers package.
  • Gemini-specific settings (google_search, thinking_level) are silently ignored for non-Gemini providers.

…embedder config

Introduces a provider abstraction so the AI backend can be swapped via config.yaml
without code changes. Gemini remains the default; OpenAI (and any OpenAI-compatible
endpoint) is the new alternative.

- New `internal/ai/providers` package with a `Provider` interface and factory;
  Gemini and OpenAI implementations backed by genkit's native plugins.
- Config gains `provider`, `providers.gemini/openai` (api_key + base_url) blocks;
  legacy `api_keys.gemini` is migrated automatically on load.
- RAG embedder is independently configurable: `embedder_provider`, `embedder_base_url`,
  and `embedding_model` under `capabilities.rag`.
- `internal/ai/gemini/config.go` removed; all logic lives in the providers package.
- Gemini-specific settings (google_search, thinking_level) are silently ignored for
  non-Gemini providers.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@Gerifield
Copy link
Copy Markdown
Owner Author

Fixes #13

@Gerifield Gerifield merged commit a60d333 into main May 18, 2026
1 check passed
@Gerifield Gerifield deleted the feat/multi-provider-support branch May 18, 2026 14:26
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