Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions components/icons/providers/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,4 @@ export { default as VLLMIcon } from './vllm'
export { default as VultrIcon } from './vultr'
export { default as WolframIcon } from './wolfram'
export { default as XAIIcon } from './xai'
export { default as ZeroLimitAIIcon } from './zerolimitai'
25 changes: 25 additions & 0 deletions components/icons/providers/zerolimitai.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import React from 'react'

// Monochrome mark from https://www.zerolimitai.com (the "Z" route between two nodes)
export default function ZeroLimitAIIcon({ className, ...props }: React.SVGProps<SVGSVGElement>) {
return (
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
fill="none"
className={className}
aria-hidden="true"
{...props}
>
<path
d="M5 5.5H19L5 18.5H19"
stroke="currentColor"
strokeWidth="2.4"
strokeLinecap="round"
strokeLinejoin="round"
/>
<circle cx="5" cy="5.5" r="3" fill="currentColor" />
<circle cx="19" cy="18.5" r="3" fill="currentColor" />
</svg>
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
"truefoundry",
"vllm",
"vultrcloudinference",
"xai"
"xai",
"zerolimitai"
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
title: ZeroLimitAI
icon: ZeroLimitAI
description: Configure ZeroLimitAI as a custom endpoint in LibreChat.
---

ZeroLimitAI is an OpenAI-compatible endpoint that routes each request to the best free model available at that moment, with automatic failover when a model is rate-limited or down.

## Get an API key

Create a key on the [ZeroLimitAI developer page](https://www.zerolimitai.com/developer). Add it to your `.env` file:

```bash filename=".env"
ZEROLIMITAI_API_KEY=your-api-key
```

## Configuration

Add the endpoint under `endpoints.custom` in your `librechat.yaml`:

```yaml filename="librechat.yaml"
- name: "ZeroLimitAI"
apiKey: "${ZEROLIMITAI_API_KEY}"
baseURL: "https://www.zerolimitai.com/api/v1"
models:
default: ["auto"]
fetch: true
titleConvo: true
titleModel: "auto"
modelDisplayLabel: "ZeroLimitAI"
```

## Notes

- `auto` lets the router choose the model for each request; the `model` field of the response names the model that answered. The live ranking is on the [leaderboard](https://www.zerolimitai.com/leaderboard).
- With `fetch: true`, LibreChat lists the models currently in the ranking (`GET /v1/models`). The free catalogue changes over time, so `auto` is the stable choice.
- Streaming and tool calls are supported; embeddings and image inputs are not.
- A new key works for 7 days with 100 requests a day; after that the account needs a paid plan. See the [API reference](https://www.zerolimitai.com/docs/api) for limits and error codes.
2 changes: 2 additions & 0 deletions lib/icons.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ import {
VultrIcon,
WolframIcon,
XAIIcon,
ZeroLimitAIIcon,
} from '../components/icons/providers'
import {
Rocket,
Expand Down Expand Up @@ -288,6 +289,7 @@ const icons: Record<string, ReactElement> = {
Vultr: <VultrIcon />,
Wolfram: <WolframIcon />,
XAI: <XAIIcon />,
ZeroLimitAI: <ZeroLimitAIIcon />,
}

export function resolveIcon(icon: string | undefined): ReactElement | undefined {
Expand Down