Skip to content

Add Requesty as an OpenAI-compatible LLM provider#102

Open
Thibaultjaigu wants to merge 1 commit into
CoreWorxLab:mainfrom
Thibaultjaigu:add-requesty-provider
Open

Add Requesty as an OpenAI-compatible LLM provider#102
Thibaultjaigu wants to merge 1 commit into
CoreWorxLab:mainfrom
Thibaultjaigu:add-requesty-provider

Conversation

@Thibaultjaigu

Copy link
Copy Markdown

Adds a dedicated requesty provider mirroring the existing OpenRouter provider.

What this does

  • New RequestyProvider (src/caal/llm/providers/requesty_provider.py) subclasses OpenAICompatibleProvider with base URL https://router.requesty.ai/v1. Auth is Authorization: Bearer <key>, plus the same HTTP-Referer / X-Title attribution headers the OpenRouter provider sets.
  • Registered in both factories in src/caal/llm/providers/__init__.py: create_provider("requesty", ...) and create_provider_from_settings(...) (api_key from requesty_api_key setting or REQUESTY_API_KEY env; model from requesty_model, default openai/gpt-4o-mini). Supported-provider strings in docstrings and both ValueError messages updated.
  • Model naming is provider/model (same convention as OpenRouter), e.g. openai/gpt-4o-mini, anthropic/claude-sonnet-4-5.

Config sites mirrored (every place OpenRouter appears for config)

  • src/caal/llm/providers/requesty_provider.py (new)
  • src/caal/llm/providers/__init__.py (imports, __all__, both factories, docstrings, error messages)
  • src/caal/settings.py (requesty_api_key / requesty_model defaults)
  • voice_agent.py (runtime config block + startup log line)
  • src/caal/chat/api.py (runtime config block + reload model resolution)
  • .env.example (LLM_PROVIDER=requesty choice + Requesty block)
  • README.md (provider mentions + acknowledgements list)

Live test

Tested live against https://router.requesty.ai/v1: a real chat completion with openai/gpt-4o-mini (the same request shape RequestyProvider produces — bearer auth + the attribution headers) returned HTTP 200 with a valid completion.

Notes

This intentionally does not touch the frontend setup wizard / settings UI, the webhooks.py /setup/test-* endpoint, or the i18n message JSONs (frontend/messages/*.json, mobile l10n). Those can follow in a separate change if wanted.

Docs: https://requesty.ai , https://docs.requesty.ai , https://app.requesty.ai/api-keys , https://app.requesty.ai/router/list

I work at Requesty. This mirrors the existing OpenRouter provider as closely as possible. Happy to adjust wording/placement or close it if it's not a fit.

Signed-off-by: Thibault Jaigu <thibault.jaigu@gmail.com>
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