mirror of
https://github.com/aiclientproxy/proxycast.git
synced 2026-09-24 23:10:56 +08:00
feat: v0.14.0 - 添加 Provider 图标支持和修复 API 测试模型
## 新功能 - 为所有 Provider 按钮添加图标支持(Kiro、Gemini、Claude、OpenAI 等) - API Server 页面的默认 Provider 按钮现在显示对应图标 - 配置管理页面的应用类型标签页(Claude Code、Codex、Gemini)显示图标 ## 修复 - 修复 API 测试中的模型名称,使用 claude-opus-4-5-20251101 - 修复 TypeScript 编译错误 - 修复 ESLint 警告 ## 构建 - 添加 Intel Mac (x86_64-apple-darwin) 构建支持
This commit is contained in:
@@ -15,6 +15,7 @@ import {
|
||||
import { LogsTab } from "./LogsTab";
|
||||
import { RoutesTab } from "./RoutesTab";
|
||||
import { HelpTip } from "@/components/HelpTip";
|
||||
import { ProviderIcon } from "@/icons/providers";
|
||||
import {
|
||||
startServer,
|
||||
stopServer,
|
||||
@@ -260,7 +261,7 @@ export function ApiServerPage() {
|
||||
path: "/v1/chat/completions",
|
||||
needsAuth: true,
|
||||
body: JSON.stringify({
|
||||
model: "claude-sonnet-4-5",
|
||||
model: "claude-opus-4-5-20251101",
|
||||
messages: [{ role: "user", content: "Say hi in one word" }],
|
||||
}),
|
||||
},
|
||||
@@ -271,7 +272,7 @@ export function ApiServerPage() {
|
||||
path: "/v1/messages",
|
||||
needsAuth: true,
|
||||
body: JSON.stringify({
|
||||
model: "claude-sonnet-4-5",
|
||||
model: "claude-opus-4-5-20251101",
|
||||
max_tokens: 100,
|
||||
messages: [
|
||||
{
|
||||
@@ -555,12 +556,24 @@ export function ApiServerPage() {
|
||||
<div className="flex flex-wrap gap-2">
|
||||
{(
|
||||
[
|
||||
{ id: "kiro", label: "Kiro (AWS)" },
|
||||
{ id: "gemini", label: "Gemini (Google)" },
|
||||
{ id: "qwen", label: "Qwen (阿里)" },
|
||||
{ id: "antigravity", label: "Antigravity (Gemini 3 Pro)" },
|
||||
{ id: "openai", label: "OpenAI" },
|
||||
{ id: "claude", label: "Claude (Anthropic)" },
|
||||
{ id: "kiro", label: "Kiro (AWS)", iconType: "kiro" },
|
||||
{
|
||||
id: "gemini",
|
||||
label: "Gemini (Google)",
|
||||
iconType: "gemini",
|
||||
},
|
||||
{ id: "qwen", label: "Qwen (阿里)", iconType: "qwen" },
|
||||
{
|
||||
id: "antigravity",
|
||||
label: "Antigravity (Gemini 3 Pro)",
|
||||
iconType: "gemini",
|
||||
},
|
||||
{ id: "openai", label: "OpenAI", iconType: "openai" },
|
||||
{
|
||||
id: "claude",
|
||||
label: "Claude (Anthropic)",
|
||||
iconType: "claude",
|
||||
},
|
||||
] as const
|
||||
).map((p) => {
|
||||
const overview = poolOverview.find(
|
||||
@@ -572,12 +585,13 @@ export function ApiServerPage() {
|
||||
key={p.id}
|
||||
onClick={() => handleSetDefaultProvider(p.id)}
|
||||
disabled={loading}
|
||||
className={`rounded-lg px-4 py-2 text-sm font-medium ${
|
||||
className={`flex items-center gap-2 rounded-lg px-4 py-2 text-sm font-medium ${
|
||||
defaultProvider === p.id
|
||||
? "bg-primary text-primary-foreground"
|
||||
: "border hover:bg-muted"
|
||||
} disabled:opacity-50`}
|
||||
>
|
||||
<ProviderIcon providerType={p.iconType} size={16} />
|
||||
{p.label}
|
||||
{count > 0 && (
|
||||
<span className="ml-1 text-xs opacity-70">({count})</span>
|
||||
|
||||
Reference in New Issue
Block a user