Skip to content

feat: add EmpirioLabs LLM provider#5816

Open
Adam-Dalloul wants to merge 1 commit into
Mintplex-Labs:masterfrom
Adam-Dalloul:feat/empiriolabs-llm-provider
Open

feat: add EmpirioLabs LLM provider#5816
Adam-Dalloul wants to merge 1 commit into
Mintplex-Labs:masterfrom
Adam-Dalloul:feat/empiriolabs-llm-provider

Conversation

@Adam-Dalloul

Copy link
Copy Markdown

What this does

Adds EmpirioLabs (https://empiriolabs.ai) as a built-in LLM provider.

EmpirioLabs is an OpenAI-compatible, multi-model API that hosts open and proprietary models (Qwen, DeepSeek, GLM, Kimi, MiniMax, Gemma, and more) behind a single base URL with pay-as-you-go pricing. It exposes:

  • Chat Completions at https://api.empiriolabs.ai/v1 (OpenAI-compatible, streaming supported)
  • GET /v1/models for the live model catalog, so the existing dynamic model-listing pattern works as-is
  • API keys from https://platform.empiriolabs.ai/dashboard/api-keys

Users could already reach EmpirioLabs through the Generic OpenAI connector, but a named provider with a logo, onboarding entry, and data-handling disclosure makes it discoverable and removes base-URL setup friction, the same way the CometAPI integration (#4379) did.

Resolves #5814.

Approach

This mirrors the CometAPI integration (#4379) file-for-file, following the current in-tree CometAPI shape:

Server

  • server/utils/AiProviders/empiriolabs/index.js (LLM class, OpenAI-compatible, cached /v1/models listing)
  • server/utils/AiProviders/empiriolabs/constants.js (filters the catalog down to chat-capable models)
  • server/utils/agents/aibitat/providers/empiriolabs.js (agent provider with native tool calling + UnTooled fallback)
  • Registered in server/utils/helpers/index.js, server/utils/helpers/customModels.js, server/utils/helpers/updateENV.js, server/models/systemSettings.js, server/utils/agents/index.js, server/utils/agents/aibitat/index.js, and server/utils/agents/aibitat/providers/index.js and ai-provider.js

Frontend

  • frontend/src/components/LLMSelection/EmpirioLabsOptions/index.jsx (API key + dynamic model selection + stream-timeout advanced control)
  • Registered in GeneralSettings/LLMPreference, both OnboardingFlow steps (LLM preference + data-handling privacy disclosure via ProviderPrivacy/constants.js), and WorkspaceSettings/AgentConfig/AgentLLMSelection
  • frontend/src/media/llmprovider/empiriolabs.png (logo)

Config / docs

  • Env blocks in docker/.env.example and server/.env.example
  • Provider rows in README.md, locales/README.ja-JP.md, locales/README.zh-CN.md
  • Storage cache dir in server/storage/models/.gitignore

Env vars

LLM_PROVIDER='empiriolabs'
EMPIRIOLABS_API_KEY='your-empiriolabs-api-key-here'
EMPIRIOLABS_MODEL_PREF='qwen3-7-plus'
EMPIRIOLABS_LLM_TIMEOUT_MS=3000 # Optional; stream idle timeout in ms (min 500ms)

Notes

  • Prettier-clean against the repo .prettierrc; all new server modules pass node --check.
  • The agent provider supports native OpenAI-style tool calling (EmpirioLabs serves tool-capable models such as DeepSeek, GLM, and Kimi), with the standard UnTooled fallback for models without tool support.

Adds EmpirioLabs (https://empiriolabs.ai) as a built-in LLM provider.
EmpirioLabs is an OpenAI-compatible multi-model API hosting open and
proprietary models (Qwen, DeepSeek, GLM, Kimi, MiniMax, and more) with a
GET /v1/models catalog for dynamic model listing.

Mirrors the CometAPI integration (Mintplex-Labs#4379): server LLM class + agent
provider, custom model listing via /v1/models, ENV/system settings
wiring, frontend options component, onboarding and privacy disclosure
entries, env examples, and README provider rows.

Resolves Mintplex-Labs#5814

Co-Authored-By: Claude Fable 5 <noreply@anthropic.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.

[FEAT]: EmpirioLabs LLM provider integration

1 participant