feat(providers): add 14 free-tier providers — Chinese regional + dev tools (Wave 1b) (#2488)
Integrated into release/v3.8.2
@@ -3,7 +3,7 @@
|
||||
## Project
|
||||
|
||||
Unified AI proxy/router — route any LLM through one endpoint. Multi-provider support
|
||||
with **160+ providers** (OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Fireworks,
|
||||
with **212 providers** (OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Fireworks,
|
||||
Cohere, NVIDIA, Cerebras, Pollinations, Puter, Cloudflare AI, HuggingFace, DeepInfra,
|
||||
SambaNova, Meta Llama API, Moonshot AI, AI21 Labs, Databricks, Snowflake, and many more)
|
||||
with **MCP Server** (37 tools), **A2A v0.3 Protocol**, and **Electron desktop app**.
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
### Never stop coding. Save 15-95% eligible tokens with RTK+Caveman compression + auto-fallback to **FREE & low-cost AI models**.
|
||||
|
||||
_The most complete open-source AI proxy — **one endpoint**, **160+ providers**, **13 routing strategies**, zero downtime. Multi-platform: **Web**, **Desktop (Electron)**, **Mobile (PWA + Termux)**. Fully extensible via **MCP Server (37 tools)**, **A2A Protocol**, and **Memory/Skills** systems. Available in **40+ languages**._
|
||||
_The most complete open-source AI proxy — **one endpoint**, **212 providers**, **13 routing strategies**, zero downtime. Multi-platform: **Web**, **Desktop (Electron)**, **Mobile (PWA + Termux)**. Fully extensible via **MCP Server (37 tools)**, **A2A Protocol**, and **Memory/Skills** systems. Available in **40+ languages**._
|
||||
|
||||
[](https://www.npmjs.com/package/omniroute)
|
||||
[](LICENSE)
|
||||
@@ -1444,7 +1444,7 @@ Code blocks, URLs, JSON, and structured data are **always protected** from compr
|
||||
2. **Per-provider proxy** — different proxy per provider
|
||||
3. **Per-API-key proxy** — different proxy per key
|
||||
|
||||
Plus the **1proxy free marketplace** for community-shared proxies. Users in Russia, China, Iran, and other restricted regions can access all 160+ providers through OmniRoute's proxy infrastructure.
|
||||
Plus the **1proxy free marketplace** for community-shared proxies. Users in Russia, China, Iran, and other restricted regions can access all 212 providers through OmniRoute's proxy infrastructure.
|
||||
|
||||
See the [Proxy Guide](docs/PROXY_GUIDE.md) for setup instructions.
|
||||
|
||||
|
||||
5
public/providers/360ai.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
|
||||
<circle cx="16" cy="16" r="14" fill="#00B96B" opacity="0.15"/>
|
||||
<circle cx="16" cy="16" r="14" fill="none" stroke="#00B96B" stroke-width="2"/>
|
||||
<text x="16" y="16" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,sans-serif" font-size="11" font-weight="600" fill="#00B96B">360</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 416 B |
5
public/providers/baichuan.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
|
||||
<circle cx="16" cy="16" r="14" fill="#6366F1" opacity="0.15"/>
|
||||
<circle cx="16" cy="16" r="14" fill="none" stroke="#6366F1" stroke-width="2"/>
|
||||
<text x="16" y="16" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,sans-serif" font-size="11" font-weight="600" fill="#6366F1">BC</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 415 B |
5
public/providers/baidu.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
|
||||
<circle cx="16" cy="16" r="14" fill="#2932E1" opacity="0.15"/>
|
||||
<circle cx="16" cy="16" r="14" fill="none" stroke="#2932E1" stroke-width="2"/>
|
||||
<text x="16" y="16" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,sans-serif" font-size="11" font-weight="600" fill="#2932E1">BD</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 415 B |
5
public/providers/coze.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
|
||||
<circle cx="16" cy="16" r="14" fill="#3B82F6" opacity="0.15"/>
|
||||
<circle cx="16" cy="16" r="14" fill="none" stroke="#3B82F6" stroke-width="2"/>
|
||||
<text x="16" y="16" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,sans-serif" font-size="11" font-weight="600" fill="#3B82F6">CZ</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 415 B |
5
public/providers/dify.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
|
||||
<circle cx="16" cy="16" r="14" fill="#6366F1" opacity="0.15"/>
|
||||
<circle cx="16" cy="16" r="14" fill="none" stroke="#6366F1" stroke-width="2"/>
|
||||
<text x="16" y="16" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,sans-serif" font-size="11" font-weight="600" fill="#6366F1">DF</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 415 B |
5
public/providers/doubao.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
|
||||
<circle cx="16" cy="16" r="14" fill="#FE2C55" opacity="0.15"/>
|
||||
<circle cx="16" cy="16" r="14" fill="none" stroke="#FE2C55" stroke-width="2"/>
|
||||
<text x="16" y="16" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,sans-serif" font-size="11" font-weight="600" fill="#FE2C55">DB</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 415 B |
5
public/providers/huggingchat.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
|
||||
<circle cx="16" cy="16" r="14" fill="#FFD21E" opacity="0.15"/>
|
||||
<circle cx="16" cy="16" r="14" fill="none" stroke="#FFD21E" stroke-width="2"/>
|
||||
<text x="16" y="16" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,sans-serif" font-size="11" font-weight="600" fill="#FFD21E">HC</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 415 B |
5
public/providers/iflytek.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
|
||||
<circle cx="16" cy="16" r="14" fill="#0066FF" opacity="0.15"/>
|
||||
<circle cx="16" cy="16" r="14" fill="none" stroke="#0066FF" stroke-width="2"/>
|
||||
<text x="16" y="16" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,sans-serif" font-size="11" font-weight="600" fill="#0066FF">IF</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 415 B |
5
public/providers/phind.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
|
||||
<circle cx="16" cy="16" r="14" fill="#EC4899" opacity="0.15"/>
|
||||
<circle cx="16" cy="16" r="14" fill="none" stroke="#EC4899" stroke-width="2"/>
|
||||
<text x="16" y="16" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,sans-serif" font-size="11" font-weight="600" fill="#EC4899">PH</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 415 B |
5
public/providers/sensenova.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
|
||||
<circle cx="16" cy="16" r="14" fill="#0066FF" opacity="0.15"/>
|
||||
<circle cx="16" cy="16" r="14" fill="none" stroke="#0066FF" stroke-width="2"/>
|
||||
<text x="16" y="16" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,sans-serif" font-size="11" font-weight="600" fill="#0066FF">SN</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 415 B |
5
public/providers/sparkdesk.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
|
||||
<circle cx="16" cy="16" r="14" fill="#0066FF" opacity="0.15"/>
|
||||
<circle cx="16" cy="16" r="14" fill="none" stroke="#0066FF" stroke-width="2"/>
|
||||
<text x="16" y="16" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,sans-serif" font-size="11" font-weight="600" fill="#0066FF">SD</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 415 B |
5
public/providers/stepfun.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
|
||||
<circle cx="16" cy="16" r="14" fill="#8B5CF6" opacity="0.15"/>
|
||||
<circle cx="16" cy="16" r="14" fill="none" stroke="#8B5CF6" stroke-width="2"/>
|
||||
<text x="16" y="16" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,sans-serif" font-size="11" font-weight="600" fill="#8B5CF6">SF</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 415 B |
5
public/providers/tencent.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
|
||||
<circle cx="16" cy="16" r="14" fill="#07C160" opacity="0.15"/>
|
||||
<circle cx="16" cy="16" r="14" fill="none" stroke="#07C160" stroke-width="2"/>
|
||||
<text x="16" y="16" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,sans-serif" font-size="11" font-weight="600" fill="#07C160">TC</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 415 B |
5
public/providers/yi.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
|
||||
<circle cx="16" cy="16" r="14" fill="#10B981" opacity="0.15"/>
|
||||
<circle cx="16" cy="16" r="14" fill="none" stroke="#10B981" stroke-width="2"/>
|
||||
<text x="16" y="16" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,sans-serif" font-size="11" font-weight="600" fill="#10B981">YI</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 415 B |
@@ -76,6 +76,10 @@ const KNOWN_SVGS = new Set([
|
||||
"brave",
|
||||
"brave-search",
|
||||
"cartesia",
|
||||
"360ai",
|
||||
"huggingchat",
|
||||
"iflytek",
|
||||
"sparkdesk",
|
||||
"arcee-ai",
|
||||
"inclusionai",
|
||||
"krutrim",
|
||||
|
||||
@@ -18,6 +18,8 @@ import AzureColorIcon from "@lobehub/icons/es/Azure/components/Color";
|
||||
import AzureMonoIcon from "@lobehub/icons/es/Azure/components/Mono";
|
||||
import AzureAIColorIcon from "@lobehub/icons/es/AzureAI/components/Color";
|
||||
import AzureAIMonoIcon from "@lobehub/icons/es/AzureAI/components/Mono";
|
||||
import BaichuanColorIcon from "@lobehub/icons/es/Baichuan/components/Color";
|
||||
import BaichuanMonoIcon from "@lobehub/icons/es/Baichuan/components/Mono";
|
||||
import BaiduColorIcon from "@lobehub/icons/es/Baidu/components/Color";
|
||||
import BaiduMonoIcon from "@lobehub/icons/es/Baidu/components/Mono";
|
||||
import BailianColorIcon from "@lobehub/icons/es/Bailian/components/Color";
|
||||
@@ -41,11 +43,16 @@ import ComfyUIColorIcon from "@lobehub/icons/es/ComfyUI/components/Color";
|
||||
import ComfyUIMonoIcon from "@lobehub/icons/es/ComfyUI/components/Mono";
|
||||
import CursorMonoIcon from "@lobehub/icons/es/Cursor/components/Mono";
|
||||
import DbrxColorIcon from "@lobehub/icons/es/Dbrx/components/Color";
|
||||
import CozeMonoIcon from "@lobehub/icons/es/Coze/components/Mono";
|
||||
import DbrxMonoIcon from "@lobehub/icons/es/Dbrx/components/Mono";
|
||||
import DeepInfraColorIcon from "@lobehub/icons/es/DeepInfra/components/Color";
|
||||
import DeepInfraMonoIcon from "@lobehub/icons/es/DeepInfra/components/Mono";
|
||||
import DeepSeekColorIcon from "@lobehub/icons/es/DeepSeek/components/Color";
|
||||
import DeepSeekMonoIcon from "@lobehub/icons/es/DeepSeek/components/Mono";
|
||||
import DifyColorIcon from "@lobehub/icons/es/Dify/components/Color";
|
||||
import DifyMonoIcon from "@lobehub/icons/es/Dify/components/Mono";
|
||||
import DoubaoColorIcon from "@lobehub/icons/es/Doubao/components/Color";
|
||||
import DoubaoMonoIcon from "@lobehub/icons/es/Doubao/components/Mono";
|
||||
import ElevenLabsMonoIcon from "@lobehub/icons/es/ElevenLabs/components/Mono";
|
||||
import ExaColorIcon from "@lobehub/icons/es/Exa/components/Color";
|
||||
import ExaMonoIcon from "@lobehub/icons/es/Exa/components/Mono";
|
||||
@@ -107,6 +114,7 @@ import OpenCodeMonoIcon from "@lobehub/icons/es/OpenCode/components/Mono";
|
||||
import OpenRouterMonoIcon from "@lobehub/icons/es/OpenRouter/components/Mono";
|
||||
import PerplexityColorIcon from "@lobehub/icons/es/Perplexity/components/Color";
|
||||
import PerplexityMonoIcon from "@lobehub/icons/es/Perplexity/components/Mono";
|
||||
import PhindMonoIcon from "@lobehub/icons/es/Phind/components/Mono";
|
||||
import PoeColorIcon from "@lobehub/icons/es/Poe/components/Color";
|
||||
import PoeMonoIcon from "@lobehub/icons/es/Poe/components/Mono";
|
||||
import PollinationsMonoIcon from "@lobehub/icons/es/Pollinations/components/Mono";
|
||||
@@ -125,15 +133,23 @@ import SiliconCloudColorIcon from "@lobehub/icons/es/SiliconCloud/components/Col
|
||||
import SiliconCloudMonoIcon from "@lobehub/icons/es/SiliconCloud/components/Mono";
|
||||
import SnowflakeColorIcon from "@lobehub/icons/es/Snowflake/components/Color";
|
||||
import SnowflakeMonoIcon from "@lobehub/icons/es/Snowflake/components/Mono";
|
||||
import SenseNovaColorIcon from "@lobehub/icons/es/SenseNova/components/Color";
|
||||
import SenseNovaMonoIcon from "@lobehub/icons/es/SenseNova/components/Mono";
|
||||
import StabilityColorIcon from "@lobehub/icons/es/Stability/components/Color";
|
||||
import StabilityMonoIcon from "@lobehub/icons/es/Stability/components/Mono";
|
||||
import StepfunColorIcon from "@lobehub/icons/es/Stepfun/components/Color";
|
||||
import StepfunMonoIcon from "@lobehub/icons/es/Stepfun/components/Mono";
|
||||
import TavilyColorIcon from "@lobehub/icons/es/Tavily/components/Color";
|
||||
import TavilyMonoIcon from "@lobehub/icons/es/Tavily/components/Mono";
|
||||
import TogetherColorIcon from "@lobehub/icons/es/Together/components/Color";
|
||||
import TencentColorIcon from "@lobehub/icons/es/Tencent/components/Color";
|
||||
import TencentMonoIcon from "@lobehub/icons/es/Tencent/components/Mono";
|
||||
import TogetherMonoIcon from "@lobehub/icons/es/Together/components/Mono";
|
||||
import TopazLabsMonoIcon from "@lobehub/icons/es/TopazLabs/components/Mono";
|
||||
import UpstageColorIcon from "@lobehub/icons/es/Upstage/components/Color";
|
||||
import UpstageMonoIcon from "@lobehub/icons/es/Upstage/components/Mono";
|
||||
import YiColorIcon from "@lobehub/icons/es/Yi/components/Color";
|
||||
import YiMonoIcon from "@lobehub/icons/es/Yi/components/Mono";
|
||||
import V0MonoIcon from "@lobehub/icons/es/V0/components/Mono";
|
||||
import VeniceColorIcon from "@lobehub/icons/es/Venice/components/Color";
|
||||
import VeniceMonoIcon from "@lobehub/icons/es/Venice/components/Mono";
|
||||
@@ -180,6 +196,7 @@ const LOBE_ICON_COMPONENTS = {
|
||||
Aws: { mono: AwsMonoIcon, color: AwsColorIcon },
|
||||
Azure: { mono: AzureMonoIcon, color: AzureColorIcon },
|
||||
AzureAI: { mono: AzureAIMonoIcon, color: AzureAIColorIcon },
|
||||
Baichuan: { mono: BaichuanMonoIcon, color: BaichuanColorIcon },
|
||||
Baidu: { mono: BaiduMonoIcon, color: BaiduColorIcon },
|
||||
Bailian: { mono: BailianMonoIcon, color: BailianColorIcon },
|
||||
Baseten: { mono: BasetenMonoIcon },
|
||||
@@ -192,10 +209,13 @@ const LOBE_ICON_COMPONENTS = {
|
||||
Codex: { mono: CodexMonoIcon, color: CodexColorIcon },
|
||||
Cohere: { mono: CohereMonoIcon, color: CohereColorIcon },
|
||||
ComfyUI: { mono: ComfyUIMonoIcon, color: ComfyUIColorIcon },
|
||||
Coze: { mono: CozeMonoIcon },
|
||||
Cursor: { mono: CursorMonoIcon },
|
||||
Dbrx: { mono: DbrxMonoIcon, color: DbrxColorIcon },
|
||||
DeepInfra: { mono: DeepInfraMonoIcon, color: DeepInfraColorIcon },
|
||||
DeepSeek: { mono: DeepSeekMonoIcon, color: DeepSeekColorIcon },
|
||||
Dify: { mono: DifyMonoIcon, color: DifyColorIcon },
|
||||
Doubao: { mono: DoubaoMonoIcon, color: DoubaoColorIcon },
|
||||
ElevenLabs: { mono: ElevenLabsMonoIcon },
|
||||
Exa: { mono: ExaMonoIcon, color: ExaColorIcon },
|
||||
Fal: { mono: FalMonoIcon, color: FalColorIcon },
|
||||
@@ -236,6 +256,7 @@ const LOBE_ICON_COMPONENTS = {
|
||||
OpenCode: { mono: OpenCodeMonoIcon },
|
||||
OpenRouter: { mono: OpenRouterMonoIcon },
|
||||
Perplexity: { mono: PerplexityMonoIcon, color: PerplexityColorIcon },
|
||||
Phind: { mono: PhindMonoIcon },
|
||||
Poe: { mono: PoeMonoIcon, color: PoeColorIcon },
|
||||
Pollinations: { mono: PollinationsMonoIcon },
|
||||
Qoder: { mono: QoderMonoIcon, color: QoderColorIcon },
|
||||
@@ -247,9 +268,12 @@ const LOBE_ICON_COMPONENTS = {
|
||||
SambaNova: { mono: SambaNovaMonoIcon, color: SambaNovaColorIcon },
|
||||
SearchApi: { mono: SearchApiMonoIcon },
|
||||
SiliconCloud: { mono: SiliconCloudMonoIcon, color: SiliconCloudColorIcon },
|
||||
SenseNova: { mono: SenseNovaMonoIcon, color: SenseNovaColorIcon },
|
||||
Snowflake: { mono: SnowflakeMonoIcon, color: SnowflakeColorIcon },
|
||||
Stability: { mono: StabilityMonoIcon, color: StabilityColorIcon },
|
||||
Stepfun: { mono: StepfunMonoIcon, color: StepfunColorIcon },
|
||||
Tavily: { mono: TavilyMonoIcon, color: TavilyColorIcon },
|
||||
Tencent: { mono: TencentMonoIcon, color: TencentColorIcon },
|
||||
Together: { mono: TogetherMonoIcon, color: TogetherColorIcon },
|
||||
TopazLabs: { mono: TopazLabsMonoIcon },
|
||||
Upstage: { mono: UpstageMonoIcon, color: UpstageColorIcon },
|
||||
@@ -265,6 +289,7 @@ const LOBE_ICON_COMPONENTS = {
|
||||
XAI: { mono: XAIMonoIcon },
|
||||
XiaomiMiMo: { mono: XiaomiMiMoMonoIcon },
|
||||
Xinference: { mono: XinferenceMonoIcon, color: XinferenceColorIcon },
|
||||
Yi: { mono: YiMonoIcon, color: YiColorIcon },
|
||||
ZAI: { mono: ZAIMonoIcon },
|
||||
Zhipu: { mono: ZhipuMonoIcon, color: ZhipuColorIcon },
|
||||
} satisfies Record<string, LobeIconEntry>;
|
||||
@@ -300,6 +325,7 @@ const LOBE_PROVIDER_ALIASES = {
|
||||
cohere: "Cohere",
|
||||
comfyui: "ComfyUI",
|
||||
copilot: "GithubCopilot",
|
||||
coze: "Coze",
|
||||
cursor: "Cursor",
|
||||
databricks: "Dbrx",
|
||||
deepinfra: "DeepInfra",
|
||||
@@ -372,6 +398,7 @@ const LOBE_PROVIDER_ALIASES = {
|
||||
"perplexity-search": "Perplexity",
|
||||
"perplexity-web": "Perplexity",
|
||||
poe: "Poe",
|
||||
phind: "Phind",
|
||||
pollinations: "Pollinations",
|
||||
qoder: "Qoder",
|
||||
qwen: "Qwen",
|
||||
@@ -385,10 +412,12 @@ const LOBE_PROVIDER_ALIASES = {
|
||||
"searchapi-search": "SearchApi",
|
||||
siliconflow: "SiliconCloud",
|
||||
snowflake: "Snowflake",
|
||||
stepfun: "Stepfun",
|
||||
stability: "Stability",
|
||||
"stability-ai": "Stability",
|
||||
tavily: "Tavily",
|
||||
"tavily-search": "Tavily",
|
||||
tencent: "Tencent",
|
||||
together: "Together",
|
||||
topaz: "TopazLabs",
|
||||
triton: "Nvidia",
|
||||
@@ -413,6 +442,7 @@ const LOBE_PROVIDER_ALIASES = {
|
||||
xiaomimimo: "XiaomiMiMo",
|
||||
xinference: "Xinference",
|
||||
zai: "ZAI",
|
||||
yi: "Yi",
|
||||
zhipu: "Zhipu",
|
||||
} satisfies Record<string, keyof typeof LOBE_ICON_COMPONENTS>;
|
||||
|
||||
|
||||
@@ -1743,6 +1743,187 @@ export const APIKEY_PROVIDERS = {
|
||||
textIcon: "TP",
|
||||
website: "https://topazlabs.com",
|
||||
},
|
||||
baidu: {
|
||||
id: "baidu",
|
||||
alias: "baidu",
|
||||
name: "Baidu (ERNIE)",
|
||||
icon: "auto_awesome",
|
||||
color: "#2932E1",
|
||||
textIcon: "BD",
|
||||
website: "https://yiyan.baidu.com",
|
||||
hasFree: true,
|
||||
freeNote: "Free ERNIE Speed/Lite models. China's #2 LLM.",
|
||||
passthroughModels: true,
|
||||
authHint: "Get API key at console.bce.baidu.com",
|
||||
},
|
||||
tencent: {
|
||||
id: "tencent",
|
||||
alias: "tencent",
|
||||
name: "Tencent Hunyuan",
|
||||
icon: "auto_awesome",
|
||||
color: "#07C160",
|
||||
textIcon: "TC",
|
||||
website: "https://hunyuan.tencent.com",
|
||||
hasFree: true,
|
||||
freeNote: "Free Hunyuan Lite models. WeChat ecosystem.",
|
||||
passthroughModels: true,
|
||||
authHint: "Get API key at console.cloud.tencent.com",
|
||||
},
|
||||
iflytek: {
|
||||
id: "iflytek",
|
||||
alias: "iflytek",
|
||||
name: "iFlytek Spark",
|
||||
icon: "auto_awesome",
|
||||
color: "#0066FF",
|
||||
textIcon: "IF",
|
||||
website: "https://xinghuo.xfyun.cn",
|
||||
hasFree: true,
|
||||
freeNote: "Free Spark Lite models. China's voice AI leader.",
|
||||
passthroughModels: true,
|
||||
authHint: "Get API key at console.xfyun.cn",
|
||||
},
|
||||
baichuan: {
|
||||
id: "baichuan",
|
||||
alias: "baichuan",
|
||||
name: "Baichuan",
|
||||
icon: "auto_awesome",
|
||||
color: "#6366F1",
|
||||
textIcon: "BC",
|
||||
website: "https://baichuan.com",
|
||||
hasFree: true,
|
||||
freeNote: "Free Baichuan models. Popular Chinese LLM startup.",
|
||||
passthroughModels: true,
|
||||
authHint: "Get API key at platform.baichuan-ai.com",
|
||||
},
|
||||
yi: {
|
||||
id: "yi",
|
||||
alias: "yi",
|
||||
name: "Yi (01.AI)",
|
||||
icon: "auto_awesome",
|
||||
color: "#10B981",
|
||||
textIcon: "YI",
|
||||
website: "https://01.ai",
|
||||
hasFree: true,
|
||||
freeNote: "Free Yi-Light models. Kai-Fu Lee's company.",
|
||||
passthroughModels: true,
|
||||
authHint: "Get API key at platform.lingyiwanwu.com",
|
||||
},
|
||||
stepfun: {
|
||||
id: "stepfun",
|
||||
alias: "stepfun",
|
||||
name: "StepFun",
|
||||
icon: "auto_awesome",
|
||||
color: "#8B5CF6",
|
||||
textIcon: "SF",
|
||||
website: "https://stepfun.com",
|
||||
hasFree: true,
|
||||
freeNote: "Free Step-2 models. Chinese AI company.",
|
||||
passthroughModels: true,
|
||||
authHint: "Get API key at platform.stepfun.com",
|
||||
},
|
||||
coze: {
|
||||
id: "coze",
|
||||
alias: "coze",
|
||||
name: "Coze",
|
||||
icon: "smart_toy",
|
||||
color: "#3B82F6",
|
||||
textIcon: "CZ",
|
||||
website: "https://coze.com",
|
||||
hasFree: true,
|
||||
freeNote: "Free ByteDance agent platform. Bot building + LLM access.",
|
||||
passthroughModels: true,
|
||||
authHint: "Get API key at coze.com/open/api",
|
||||
},
|
||||
"360ai": {
|
||||
id: "360ai",
|
||||
alias: "360ai",
|
||||
name: "360 AI",
|
||||
icon: "auto_awesome",
|
||||
color: "#00B96B",
|
||||
textIcon: "360",
|
||||
website: "https://ai.360.cn",
|
||||
hasFree: true,
|
||||
freeNote: "Free 360 AI Brain models. Major Chinese security company.",
|
||||
passthroughModels: true,
|
||||
authHint: "Get API key at ai.360.cn",
|
||||
},
|
||||
doubao: {
|
||||
id: "doubao",
|
||||
alias: "doubao",
|
||||
name: "Doubao",
|
||||
icon: "auto_awesome",
|
||||
color: "#FE2C55",
|
||||
textIcon: "DB",
|
||||
website: "https://doubao.com",
|
||||
hasFree: true,
|
||||
freeNote: "Free Doubao models. ByteDance's chatbot.",
|
||||
passthroughModels: true,
|
||||
authHint: "Get API key at console.volcengine.com",
|
||||
},
|
||||
sensenova: {
|
||||
id: "sensenova",
|
||||
alias: "sensenova",
|
||||
name: "SenseNova",
|
||||
icon: "auto_awesome",
|
||||
color: "#0066FF",
|
||||
textIcon: "SN",
|
||||
website: "https://platform.sensenova.cn",
|
||||
hasFree: true,
|
||||
freeNote: "Free SenseTime models. Computer vision leader.",
|
||||
passthroughModels: true,
|
||||
authHint: "Get API key at platform.sensenova.cn",
|
||||
},
|
||||
sparkdesk: {
|
||||
id: "sparkdesk",
|
||||
alias: "sparkdesk",
|
||||
name: "SparkDesk",
|
||||
icon: "auto_awesome",
|
||||
color: "#0066FF",
|
||||
textIcon: "SD",
|
||||
website: "https://xinghuo.xfyun.cn",
|
||||
hasFree: true,
|
||||
freeNote: "Free iFlytek Spark models (alias for iflytek).",
|
||||
passthroughModels: true,
|
||||
authHint: "Get API key at console.xfyun.cn",
|
||||
},
|
||||
phind: {
|
||||
id: "phind",
|
||||
alias: "phind",
|
||||
name: "Phind",
|
||||
icon: "search",
|
||||
color: "#EC4899",
|
||||
textIcon: "PH",
|
||||
website: "https://phind.com",
|
||||
hasFree: true,
|
||||
freeNote: "Free code search + AI. Developer-focused.",
|
||||
passthroughModels: true,
|
||||
authHint: "Get API key at phind.com",
|
||||
},
|
||||
huggingchat: {
|
||||
id: "huggingchat",
|
||||
alias: "huggingchat",
|
||||
name: "HuggingChat",
|
||||
icon: "chat",
|
||||
color: "#FFD21E",
|
||||
textIcon: "HC",
|
||||
website: "https://huggingface.co/chat",
|
||||
hasFree: true,
|
||||
freeNote: "Free chat with open models (Llama, Mistral, etc.).",
|
||||
passthroughModels: true,
|
||||
authHint: "No API key required for basic access.",
|
||||
},
|
||||
dify: {
|
||||
id: "dify",
|
||||
alias: "dify",
|
||||
name: "Dify",
|
||||
icon: "smart_toy",
|
||||
color: "#6366F1",
|
||||
textIcon: "DF",
|
||||
website: "https://dify.ai",
|
||||
hasFree: true,
|
||||
freeNote: "Free open-source AI app builder + RAG platform.",
|
||||
passthroughModels: true,
|
||||
authHint: "Get API key from your Dify instance.",
|
||||
poolside: {
|
||||
id: "poolside",
|
||||
alias: "poolside",
|
||||
@@ -2329,6 +2510,7 @@ export function providerAllowsOptionalApiKey(providerId: unknown): boolean {
|
||||
providerId === "pollinations" ||
|
||||
providerId === "copilot-web" ||
|
||||
providerId === "hackclub" ||
|
||||
providerId === "huggingchat" ||
|
||||
providerId === "gitlawb" ||
|
||||
providerId === "gitlawb-gmi" ||
|
||||
isLocalProvider(providerId) ||
|
||||
|
||||