Add Requesty provider#1112
Conversation
Requesty (https://requesty.ai) is an OpenAI-compatible model gateway that uses the same provider/model identifier format as OpenRouter, so it is added by mirroring the existing OpenRouter provider (only base URL + key differ). - LLMProvider union: add 'requesty' - SettingsModal: requesty option + connection test against https://router.requesty.ai/v1 with the user's Requesty key - settingsMetadata + docs/configuration: document Requesty
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughAdds Requesty as a supported LLM provider by extending the ChangesRequesty LLM Provider Support
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Greptile SummaryThis PR adds Requesty as a fourth built-in LLM provider by mirroring the existing OpenRouter implementation (same OpenAI-compatible API, different base URL and key). The changes are minimal and self-contained: a new union member in
Confidence Score: 4/5Safe to merge; changes are additive and isolated to the Settings UI and documentation. The Requesty integration closely follows the existing OpenRouter pattern and only affects the settings test-connection flow. The one rough edge is the model slug placeholder showing anthropic/claude-3.5-sonnet instead of openai/gpt-4o-mini when Requesty is selected, which could confuse users about the correct model format. src/renderer/components/Settings/SettingsModal.tsx — the model slug placeholder branch should be updated for the Requesty provider. Important Files Changed
Sequence Diagram%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
participant User
participant SettingsModal
participant RequestyAPI as Requesty API (router.requesty.ai)
User->>SettingsModal: Select Requesty provider
User->>SettingsModal: Enter API key + model slug
User->>SettingsModal: Click Test Connection
SettingsModal->>RequestyAPI: POST /v1/chat/completions (Bearer token, model, testPrompt)
RequestyAPI-->>SettingsModal: 200 OK choices[0].message.content
SettingsModal-->>User: Successfully connected to Requesty!
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
sequenceDiagram
participant User
participant SettingsModal
participant RequestyAPI as Requesty API (router.requesty.ai)
User->>SettingsModal: Select Requesty provider
User->>SettingsModal: Enter API key + model slug
User->>SettingsModal: Click Test Connection
SettingsModal->>RequestyAPI: POST /v1/chat/completions (Bearer token, model, testPrompt)
RequestyAPI-->>SettingsModal: 200 OK choices[0].message.content
SettingsModal-->>User: Successfully connected to Requesty!
|
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/shared/settingsMetadata.ts`:
- Around line 518-519: The description field in the settingsMetadata.ts file
lists outdated example LLM providers that don't match the actual allowed values
in the LLMProvider type. Update the description text to remove "openai" from the
example list and add "ollama" instead, ensuring the examples accurately reflect
the current allowed values of openrouter, requesty, anthropic, and ollama. This
will prevent users from being misled when configuring settings.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: a30c4fa8-97ae-445b-ae2e-17bbac272c8a
📒 Files selected for processing (4)
docs/configuration.mdsrc/renderer/components/Settings/SettingsModal.tsxsrc/renderer/types/index.tssrc/shared/settingsMetadata.ts
Add Requesty provider
This adds Requesty as a built-in LLM provider, alongside the existing OpenRouter / Anthropic / Ollama options.
Requesty is an OpenAI-compatible model gateway that uses the same
provider/modelidentifier format as OpenRouter, so it is implemented by mirroring the existing OpenRouter provider (only the base URL and env/key differ).Changes
src/renderer/types/index.ts— extendLLMProviderunion with'requesty'.src/renderer/components/Settings/SettingsModal.tsx— add the Requesty option and arequestybranch intestLLMConnection()that POSTs tohttps://router.requesty.ai/v1/chat/completionswith the user's Requesty key (default modelopenai/gpt-4o-mini), mirroring the OpenRouter branch.src/shared/settingsMetadata.ts— includerequestyin thellmProviderdescription.docs/configuration.md— document the built-in LLM providers including Requesty (key at https://app.requesty.ai/api-keys, models at https://app.requesty.ai/router/list).Default provider is left as
openrouter(this adds Requesty, doesn't replace anything).Testing
npm run lint(tsc typecheck across the three tsconfigs) clean; defaults + SettingsModal test suites pass (148/148).POST https://router.requesty.ai/v1/chat/completionswithmodel: openai/gpt-4o-mini-> HTTP 200, real completion.Disclosure
I work at Requesty. This mirrors the existing OpenRouter provider as closely as possible. Happy to adjust naming/placement or close it if it's not a fit.
Summary by CodeRabbit