OpenAI-compatible endpoints
The generic path, which covers most providers.
LensHub speaks the OpenAI API format. Anything that implements it works, whether or not it is OpenAI.
Settings
| Setting | What it is |
|---|---|
| Provider | openai for anything OpenAI-compatible |
| Base URL | The API root, ending in /v1. Leave empty for OpenAI itself |
| API key | Your key. Some local servers accept any value |
| Chat model | Pick it from Load models, or type the id exactly as the provider spells it. Required, except on OpenAI itself (defaults to gpt-4o-mini) and on a self-hosted server, which may leave it empty |
Example: a hosted provider
Provider: openai
Base URL: https://api.example-provider.com/v1
API key: your-key
Chat model: their-model-nameKeeping the local embedding model
Setting a chat provider does not move embeddings off your instance.
Embeddings are deployment configuration (LLM_EMBED_BASE_URL,
LLM_EMBED_MODEL), not an AI provider setting, so embedding stays local unless
the instance is deliberately set up otherwise — and your content is not sent
anywhere to be indexed.
That is usually what you want. Embedding touches every chunk of every document; chat touches only what a person asks about.
Checking it works
Load models in Manage → Settings → LLM provider checks the base URL and key before you save: it lists the provider's models, or shows the provider's error. Then open the chat interface and ask anything; a configuration error shows up there immediately, rather than silently failing later during a sync.
The API key is stored encrypted, and the interface only ever shows it masked. Even so, use a key scoped to this purpose so you can rotate it independently.