mirror of
https://github.com/musistudio/claude-code-router.git
synced 2026-10-19 08:54:05 +00:00
Add Unity2.Ai provider preset and docs
This commit is contained in:
parent
f9525f469d
commit
21ab38dd47
11 changed files with 57 additions and 0 deletions
|
|
@ -256,6 +256,13 @@ Codex support is powered by [musistudio/codexl](https://github.com/musistudio/co
|
|||
<strong>Fenno.ai</strong>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center" width="330">
|
||||
<a href="https://unity2.ai/register?source=claudecoderouter">
|
||||
<img src="/docs/public/provider-icons/unity2.jpg" width="42" height="42" alt="Unity2.Ai icon" />
|
||||
<br />
|
||||
<strong>Unity2.Ai</strong>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
|
|
|||
|
|
@ -256,6 +256,13 @@ CCR 可以完全通过桌面 UI 完成配置。首次使用建议按下面顺序
|
|||
<strong>Fenno.ai</strong>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center" width="330">
|
||||
<a href="https://unity2.ai/register?source=claudecoderouter">
|
||||
<img src="/docs/public/provider-icons/unity2.jpg" width="42" height="42" alt="Unity2.Ai 图标" />
|
||||
<br />
|
||||
<strong>Unity2.Ai</strong>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
|
|
|||
BIN
docs/public/provider-icons/unity2.jpg
Normal file
BIN
docs/public/provider-icons/unity2.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 29 KiB |
|
|
@ -78,6 +78,10 @@ Choose a provider below to get started. CCR shows what will be added before savi
|
|||
<span class="provider-import-icon-shell"><img src="../../../provider-icons/teamorouter.png" alt="" loading="lazy" /></span>
|
||||
<span class="provider-import-copy"><span class="provider-import-name">TeamoRouter</span><span class="provider-import-meta">Anthropic / Chat / Responses</span></span>
|
||||
</a>
|
||||
<a class="provider-import-button provider-unity2" href="ccr://provider?name=Unity2.Ai&base_url=https%3A%2F%2Funity2.ai%2Fv1&protocol=openai_chat_completions&source=https%3A%2F%2Funity2.ai%2Fregister%3Fsource%3Dclaudecoderouter" aria-label="Import Unity2.Ai provider">
|
||||
<span class="provider-import-icon-shell"><img src="../../../provider-icons/unity2.jpg" alt="" loading="lazy" /></span>
|
||||
<span class="provider-import-copy"><span class="provider-import-name">Unity2.Ai</span><span class="provider-import-meta">OpenAI compatible gateway</span></span>
|
||||
</a>
|
||||
<a class="provider-import-button provider-code0" href="ccr://provider?name=code0.ai&base_url=https%3A%2F%2Fconsole.code0.ai&protocol=anthropic_messages&source=https%3A%2F%2Fcode0.ai%2Fagent%2Fregister%2F9n9jOsSnYQoemIVL%3Futm_source%3Dclaudecoderouter%26utm_medium%3Dpartner%26utm_campaign%3Dclaudecoderouter_2026%26utm_content%3Ddefault" aria-label="Import code0.ai provider">
|
||||
<span class="provider-import-icon-shell"><img src="../../../provider-icons/code0.png" alt="" loading="lazy" /></span>
|
||||
<span class="provider-import-copy"><span class="provider-import-name">code0.ai</span><span class="provider-import-meta">Anthropic / Chat / Responses</span></span>
|
||||
|
|
|
|||
|
|
@ -78,6 +78,10 @@ lead: 快速添加常见模型供应商,确认无误后即可保存,减少
|
|||
<span class="provider-import-icon-shell"><img src="../../provider-icons/teamorouter.png" alt="" loading="lazy" /></span>
|
||||
<span class="provider-import-copy"><span class="provider-import-name">TeamoRouter</span><span class="provider-import-meta">Anthropic / Chat / Responses</span></span>
|
||||
</a>
|
||||
<a class="provider-import-button provider-unity2" href="ccr://provider?name=Unity2.Ai&base_url=https%3A%2F%2Funity2.ai%2Fv1&protocol=openai_chat_completions&source=https%3A%2F%2Funity2.ai%2Fregister%3Fsource%3Dclaudecoderouter" aria-label="导入 Unity2.Ai 供应商">
|
||||
<span class="provider-import-icon-shell"><img src="../../provider-icons/unity2.jpg" alt="" loading="lazy" /></span>
|
||||
<span class="provider-import-copy"><span class="provider-import-name">Unity2.Ai</span><span class="provider-import-meta">OpenAI 兼容网关</span></span>
|
||||
</a>
|
||||
<a class="provider-import-button provider-code0" href="ccr://provider?name=code0.ai&base_url=https%3A%2F%2Fconsole.code0.ai&protocol=anthropic_messages&source=https%3A%2F%2Fcode0.ai%2Fagent%2Fregister%2F9n9jOsSnYQoemIVL%3Futm_source%3Dclaudecoderouter%26utm_medium%3Dpartner%26utm_campaign%3Dclaudecoderouter_2026%26utm_content%3Ddefault" aria-label="导入 code0.ai 供应商">
|
||||
<span class="provider-import-icon-shell"><img src="../../provider-icons/code0.png" alt="" loading="lazy" /></span>
|
||||
<span class="provider-import-copy"><span class="provider-import-name">code0.ai</span><span class="provider-import-meta">Anthropic / Chat / Responses</span></span>
|
||||
|
|
|
|||
|
|
@ -1318,6 +1318,12 @@ h1 {
|
|||
--provider-brand-3: #f4f4f5;
|
||||
}
|
||||
|
||||
.doc-markdown a.provider-import-button.provider-unity2 {
|
||||
--provider-brand: #050505;
|
||||
--provider-brand-2: #7a7f85;
|
||||
--provider-brand-3: #f4f5f6;
|
||||
}
|
||||
|
||||
.doc-markdown a.provider-import-button.provider-code0 {
|
||||
--provider-brand: #101214;
|
||||
--provider-brand-2: #267dff;
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ import { qiniuAiProviderPreset } from "@ccr/core/providers/presets/qiniu-ai/inde
|
|||
import { runApiProviderPreset } from "@ccr/core/providers/presets/runapi/index";
|
||||
import { siliconFlowProviderPreset } from "@ccr/core/providers/presets/siliconflow/index";
|
||||
import { teamoRouterProviderPreset } from "@ccr/core/providers/presets/teamorouter/index";
|
||||
import { unity2ProviderPreset } from "@ccr/core/providers/presets/unity2/index";
|
||||
import { zaiGlobalCodingProviderPreset } from "@ccr/core/providers/presets/zai-global-coding/index";
|
||||
import { zaiGlobalGeneralProviderPreset } from "@ccr/core/providers/presets/zai-global-general/index";
|
||||
import { zhipuCnCodingProviderPreset } from "@ccr/core/providers/presets/zhipu-cn-coding/index";
|
||||
|
|
@ -52,6 +53,7 @@ export const providerPresets: ProviderPreset[] = [
|
|||
fennoProviderPreset,
|
||||
runApiProviderPreset,
|
||||
teamoRouterProviderPreset,
|
||||
unity2ProviderPreset,
|
||||
code0ProviderPreset,
|
||||
claudeApiProviderPreset
|
||||
];
|
||||
|
|
|
|||
15
packages/core/src/providers/presets/unity2/index.ts
Normal file
15
packages/core/src/providers/presets/unity2/index.ts
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
import { defaultProviderAccountConfig, type ProviderPreset } from "@ccr/core/providers/presets/types";
|
||||
|
||||
export const unity2ProviderPreset: ProviderPreset = {
|
||||
account: defaultProviderAccountConfig,
|
||||
aliases: ["unity2", "unity2.ai", "unity2 ai", "unity 2"],
|
||||
endpoints: [
|
||||
{
|
||||
baseUrl: "https://unity2.ai/v1",
|
||||
protocols: ["openai_chat_completions"]
|
||||
}
|
||||
],
|
||||
id: "unity2",
|
||||
name: "Unity2.Ai",
|
||||
websiteUrl: "https://unity2.ai/register?source=claudecoderouter"
|
||||
};
|
||||
BIN
packages/ui/src/assets/provider-icons/unity2.jpg
Normal file
BIN
packages/ui/src/assets/provider-icons/unity2.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 29 KiB |
|
|
@ -55,6 +55,7 @@ import qiniuAiProviderIconUrl from "@/assets/provider-icons/qiniu-ai.png";
|
|||
import runapiProviderIconUrl from "@/assets/provider-icons/runapi.jpg";
|
||||
import siliconflowProviderIconUrl from "@/assets/provider-icons/siliconflow.png";
|
||||
import teamorouterProviderIconUrl from "@/assets/provider-icons/teamorouter.png";
|
||||
import unity2ProviderIconUrl from "@/assets/provider-icons/unity2.jpg";
|
||||
import zaiGlobalCodingProviderIconUrl from "@/assets/provider-icons/zai-global-coding.svg";
|
||||
import zaiGlobalGeneralProviderIconUrl from "@/assets/provider-icons/zai-global-general.svg";
|
||||
import zhipuCnCodingProviderIconUrl from "@/assets/provider-icons/zhipu-cn-coding.png";
|
||||
|
|
@ -339,6 +340,7 @@ export const providerPresetIconUrls: Record<string, string> = {
|
|||
runapi: runapiProviderIconUrl,
|
||||
siliconflow: siliconflowProviderIconUrl,
|
||||
teamorouter: teamorouterProviderIconUrl,
|
||||
unity2: unity2ProviderIconUrl,
|
||||
"zai-global-coding": zaiGlobalCodingProviderIconUrl,
|
||||
"zai-global-general": zaiGlobalGeneralProviderIconUrl,
|
||||
"zhipu-cn-coding": zhipuCnCodingProviderIconUrl,
|
||||
|
|
|
|||
|
|
@ -18,6 +18,9 @@ import {
|
|||
import {
|
||||
qiniuAiProviderPreset
|
||||
} from "../../packages/core/src/providers/presets/qiniu-ai/index.ts";
|
||||
import {
|
||||
unity2ProviderPreset
|
||||
} from "../../packages/core/src/providers/presets/unity2/index.ts";
|
||||
|
||||
const openAiPreset = {
|
||||
aliases: ["OpenAI", "ChatGPT"],
|
||||
|
|
@ -85,6 +88,13 @@ test("sponsor provider presets expose requested endpoints and protocols", () =>
|
|||
assert.deepEqual(qiniuAiProviderPreset.endpoints[0]?.protocols, [
|
||||
"openai_chat_completions"
|
||||
]);
|
||||
|
||||
assert.equal(unity2ProviderPreset.websiteUrl, "https://unity2.ai/register?source=claudecoderouter");
|
||||
assert.equal(providerPresetMatchesBaseUrl(unity2ProviderPreset, "https://unity2.ai/v1/chat/completions"), true);
|
||||
assert.equal(providerPresetMatchesBaseUrl(unity2ProviderPreset, "https://api.unity2.ai/v1"), false);
|
||||
assert.deepEqual(unity2ProviderPreset.endpoints[0]?.protocols, [
|
||||
"openai_chat_completions"
|
||||
]);
|
||||
});
|
||||
|
||||
test("provider identity safety does not block branded third-party endpoints", () => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue