feat: advanced custom channel (#5590)

This commit is contained in:
Seefs
2026-06-18 18:00:27 +08:00
committed by GitHub
parent 21d4d18dfc
commit 3f2c0aeda7
26 changed files with 3012 additions and 62 deletions
+72 -4
View File
@@ -193,6 +193,7 @@
"Add Provider": "添加提供商",
"Add Quota": "添加配额",
"Add ratio override": "添加倍率覆盖",
"Add route": "添加路由",
"Add Row": "添加行",
"Add Rule": "添加规则",
"Add rule group": "新增规则组",
@@ -228,6 +229,10 @@
"Administrator username": "管理员用户名",
"Advanced": "高级",
"Advanced Configuration": "高级配置",
"Advanced Custom": "高级自定义",
"Advanced custom configuration is required": "必须配置高级自定义",
"Advanced custom configuration requires at least one route or fallback": "高级自定义至少需要一个路由或启用兜底",
"Advanced Custom Routes": "高级自定义路由",
"Advanced options": "高级选项",
"Advanced Options": "高级选项",
"Advanced platform configuration.": "高级平台配置。",
@@ -340,6 +345,7 @@
"Answer": "答案",
"Answers for common access and billing questions": "访问与计费常见问题解答",
"Anthropic": "Anthropic",
"Anthropic Messages to OpenAI Chat": "Anthropic Messages 到 OpenAI Chat",
"Any Match (OR)": "任一满足(OR",
"API": "API",
"API Access": "API 访问",
@@ -442,8 +448,14 @@
"Audio Preview": "音乐预览",
"Audio ratio": "音频倍率",
"Audio Tokens": "语音 Token",
"Auth": "认证",
"Auth configured": "认证已配置",
"Auth name": "认证名称",
"Auth name is required": "认证名称不能为空",
"Auth Style": "认证方式",
"Auth type is invalid": "认证类型无效",
"Auth value": "认证值",
"Auth value is required": "认证值不能为空",
"auth.resetPasswordConfirm.backToLogin": "返回登录",
"auth.resetPasswordConfirm.confirm": "确认重置密码",
"auth.resetPasswordConfirm.description": "确认重置请求以生成新密码。",
@@ -529,6 +541,8 @@
"Base rate limit windows for this account.": "当前账号的基础额度窗口。",
"Base URL": "API 地址",
"Base URL is required for this channel type": "此渠道类型需要填写 Base URL",
"Base URL is required when an advanced route uses an upstream path": "高级路由使用上游路径时必须填写 Base URL",
"Base URL is required when fallback is enabled": "启用兜底时必须填写 Base URL",
"Base URL of your Uptime Kuma instance": "您的 Uptime Kuma 实例的基础 URL",
"Basic Authentication": "基本身份验证",
"Basic Configuration": "基本配置",
@@ -667,6 +681,8 @@
"Changes are written to the settings draft on save.": "保存后会写入设置草稿。",
"Changing...": "修改中...",
"Channel": "渠道",
"Channel {{name}}": "渠道 {{name}}",
"Channel {{name}} model {{model}}": "渠道 {{name}} 模型 {{model}}",
"Channel Affinity": "渠道亲和性",
"Channel affinity reuses the last successful channel based on keys extracted from the request context or JSON body.": "渠道亲和性会基于从请求上下文或 JSON Body 提取的 Key,优先复用上一次成功的渠道。",
"Channel Affinity: Upstream Cache Hit": "渠道亲和性:上游缓存命中",
@@ -680,8 +696,6 @@
"Channel key": "渠道密钥",
"Channel key unlocked": "渠道密钥已解锁",
"Channel models": "渠道模型",
"Channel {{name}}": "渠道 {{name}}",
"Channel {{name}} model {{model}}": "渠道 {{name}} 模型 {{model}}",
"Channel name is required": "渠道名称是必填的",
"Channel test completed": "渠道测试完成",
"Channel type is required": "渠道类型是必填的",
@@ -741,6 +755,7 @@
"Classic (Legacy Frontend)": "经典前端",
"Claude": "Claude",
"Claude CLI Header Passthrough": "Claude CLI 请求头透传",
"Claude Messages": "Claude 消息",
"Clean": "无冲突",
"Clean history logs": "清理历史日志",
"Clean logs": "清理日志",
@@ -884,6 +899,7 @@
"Configure per-tool unit prices ($/1K calls). Per-request models do not incur additional tool fees.": "为每个工具配置单价($/1K 次调用)。按请求计费的模型不额外收取工具费用。",
"Configure pricing ratios for a specific model.": "配置特定模型的定价比例。",
"Configure rate limiting rules for a specific user group.": "配置特定用户分组的速率限制规则。",
"Configure routes": "配置路由",
"Configure the ratio for this group.": "配置此分组的比例。",
"Configure upstream providers and routing.": "配置上游提供者和路由。",
"Configure Waffo Pancake hosted checkout integration for USD-priced top-ups": "配置 Waffo Pancake 托管结账,用于美元计价的充值",
@@ -962,6 +978,9 @@
"Convert reasoning_content to <think> tag in content": "将 reasoning_content 转换为 content 中的 <think> 标签",
"Convert string to lowercase": "把字符串转成小写",
"Convert string to uppercase": "把字符串转成大写",
"Converter": "转换器",
"Converter does not match incoming path": "转换器与入口路径不匹配",
"Converter is not registered": "转换器未注册",
"Copied": "已复制",
"Copied {{count}} key(s)": "已复制 {{count}} 个密钥",
"Copied channel (source ID: {{sourceId}}) to {{name}} (new ID: {{id}})": "复制渠道(源 ID: {{sourceId}})为 {{name}}(新 ID: {{id}}",
@@ -1145,6 +1164,7 @@
"Default / range": "默认值 / 范围",
"Default API Version *": "默认 API 版本 *",
"Default API version for this channel": "此渠道的默认 API 版本",
"Default Bearer": "默认 Bearer",
"Default Collapse Sidebar": "默认折叠侧边栏",
"Default consumption chart": "默认消耗分布图",
"Default Max Tokens": "默认最大 Token 数",
@@ -1754,6 +1774,9 @@
"Failed to update user": "更新用户失败",
"Failure keywords": "失败关键词",
"Fair": "公平",
"Fallback": "兜底",
"Fallback base URL": "兜底 Base URL",
"Fallback routing": "兜底路由",
"Fallback tier": "兜底阶梯",
"FAQ": "常见问答",
"FAQ added. Click \"Save Settings\" to apply.": "FAQ 已添加。点击 \"保存设置\" 以应用。",
@@ -1893,6 +1916,10 @@
"GC executed": "GC 已执行",
"GC execution failed": "GC 执行失败",
"Gemini": "Gemini",
"Gemini Batch Embed Contents": "Gemini 批量嵌入内容",
"Gemini Embed Content": "Gemini 嵌入内容",
"Gemini Generate Content": "Gemini 内容生成",
"Gemini Generate Content to OpenAI Chat": "Gemini Generate Content 到 OpenAI Chat",
"Gemini Image 4K": "Gemini 图片 4K",
"Gemini will continue to auto-detect thinking mode even with the adapter disabled. Enable this only when you need finer control over pricing and budgeting.": "即使禁用适配器,Gemini 也会继续自动检测思维模式。仅当您需要对定价和预算进行更精细的控制时才启用此选项。",
"General": "常规",
@@ -2095,6 +2122,12 @@
"Include Rule Name": "包含规则名",
"Includes request rules": "包含请求规则",
"Including failed requests, 0 = unlimited": "包括失败的请求,0 = 无限制",
"Incoming path": "入口路径",
"Incoming path is required": "入口路径不能为空",
"Incoming path must be unique": "入口路径必须唯一",
"Incoming path must not include query": "入口路径不能包含 query",
"Incoming path must start with /": "入口路径必须以 / 开头",
"Incomplete": "未完成",
"Increased user quota by {{quota}}": "增加用户额度 {{quota}}",
"Index": "索引",
"Initial quota given to new users": "授予新用户的初始配额",
@@ -2408,6 +2441,7 @@
"Mode": "模式",
"model": "模型",
"Model": "模型",
"Model {{model}}": "模型 {{model}}",
"Model Access": "模型访问",
"Model Analytics": "模型数据分析",
"Model Analytics Defaults": "模型分析默认设置",
@@ -2432,7 +2466,6 @@
"Model mapping must be a JSON object with string values": "模型映射必须是值为字符串的 JSON 对象",
"Model mapping must be valid JSON": "模型映射必须是有效的 JSON",
"Model mapping values must be strings": "模型映射的值必须是字符串",
"Model {{model}}": "模型 {{model}}",
"Model name": "模型名称",
"Model Name": "模型名称",
"Model Name *": "模型名称 *",
@@ -2471,6 +2504,7 @@
"Models climbing the leaderboard fastest": "排行榜上升最快的模型",
"Models directory": "模型目录",
"Models Directory": "模型目录",
"Models exposed by this channel": "此渠道暴露的模型",
"Models fetched successfully": "模型获取成功",
"Models filled to form": "模型已填充到表单",
"Models listed here will not automatically append or remove -thinking / -nothinking suffixes.": "此处列出的模型不会自动添加或移除 -thinking / -nothinking 后缀。",
@@ -2551,6 +2585,7 @@
"Name, provider type, and availability.": "名称、供应商类型和可用状态。",
"name@example.com": "name@example.com",
"Native format": "原生格式",
"Native forwarding": "原生转发",
"Need a redemption code?": "需要兑换码?",
"Needs API key": "需要 API 密钥",
"Nested JSON defining per-group rules for adding (+:), removing (-:), or appending usable groups.": "嵌套 JSON,定义按分组添加(+:)、移除(-:)或追加可用分组的规则。",
@@ -2593,6 +2628,7 @@
"No API routes configured": "未配置 API 路由",
"No app usage data available for this model.": "该模型暂无应用使用数据。",
"No apps match the selected filters": "没有匹配筛选条件的应用",
"No Auth": "无认证",
"No available models": "没有可用模型",
"No available Web chat links": "没有可用的 Web 聊天链接",
"No backup": "无备份",
@@ -2767,7 +2803,14 @@
"of 3:": "共 3 个:",
"off": "关闭",
"Official": "官方",
"Official Claude Messages": "官方 Claude Messages",
"Official documentation": "官方说明",
"Official Gemini from OpenAI Chat": "官方 GeminiOpenAI Chat 入口)",
"Official Gemini Native": "官方 Gemini 原生",
"Official OpenAI Chat": "官方 OpenAI Chat",
"Official OpenAI Embeddings": "官方 OpenAI Embeddings",
"Official OpenAI Images": "官方 OpenAI Images",
"Official OpenAI Responses": "官方 OpenAI Responses",
"Official Repository": "官方仓库",
"Official Sync": "官方同步",
"OhMyGPT": "OhMyGPT",
@@ -2814,9 +2857,24 @@
"Open theme settings": "打开主题设置",
"Open weights": "开放权重",
"OpenAI": "OpenAI",
"OpenAI Audio Speech": "OpenAI 语音生成",
"OpenAI Audio Transcriptions": "OpenAI 音频转录",
"OpenAI Audio Translations": "OpenAI 音频翻译",
"OpenAI Chat Completions": "OpenAI 聊天补全",
"OpenAI Chat to Anthropic Messages": "OpenAI Chat 到 Anthropic Messages",
"OpenAI Chat to Gemini Generate Content": "OpenAI Chat 到 Gemini Generate Content",
"OpenAI Chat to OpenAI Responses": "OpenAI Chat 到 OpenAI Responses",
"OpenAI Completions": "OpenAI 文本补全",
"OpenAI Compatible": "兼容 OpenAI",
"OpenAI Embeddings": "OpenAI 嵌入",
"OpenAI Image Edits": "OpenAI 图像编辑",
"OpenAI Image Generations": "OpenAI 图像生成",
"OpenAI Organization": "OpenAI 组织",
"OpenAI Organization ID (optional)": "OpenAI 组织 ID(可选)",
"OpenAI Realtime": "OpenAI 实时",
"OpenAI Rerank": "OpenAI 重排序",
"OpenAI Responses": "OpenAI 响应",
"OpenAI Responses Compact": "OpenAI 响应压缩",
"OpenAI, Anthropic, etc.": "OpenAI、Anthropic 等",
"OpenAI, Anthropic, Google, etc.": "OpenAI、Anthropic、Google 等",
"OpenAIMax": "OpenAIMax",
@@ -3217,6 +3275,7 @@
"QR code is not configured. Please contact support.": "二维码未配置。请联系支持人员。",
"Quantity": "数量",
"QuantumNous": "QuantumNous",
"Query": "Query",
"Query Balance": "查询余额",
"Query Param": "请求参数",
"Querying...": "正在查询...",
@@ -3454,8 +3513,8 @@
"Resolve Conflicts": "解决冲突",
"Resource Configuration": "资源配置",
"Response": "响应",
"Response time: {{duration}}": "响应时间:{{duration}}",
"Response Time": "响应时间",
"Response time: {{duration}}": "响应时间:{{duration}}",
"Responses API Version": "响应 API 版本",
"Restore defaults": "恢复默认",
"Restrict user model request frequency (may impact high concurrency performance)": "限制用户模型请求频率(可能会影响高并发性能)",
@@ -3493,6 +3552,7 @@
"Route Description": "路由描述",
"Route is required": "路由为必填项",
"Route, auth, and balance check in one place": "路由、认证和余额检查集中展示",
"Routes": "路由",
"Routing & Overrides": "路由与覆盖",
"Routing Strategy": "路由策略",
"Rows per page": "每页行数",
@@ -4349,12 +4409,17 @@
"Upstream Model Updates": "上游模型更新",
"Upstream model updates applied: {{added}} added, {{removed}} removed, {{ignored}} ignored this time, {{totalIgnored}} total ignored models": "已处理上游模型更新:加入 {{added}} 个,删除 {{removed}} 个,本次忽略 {{ignored}} 个,当前已忽略模型 {{totalIgnored}} 个",
"Upstream price sync": "上游价格同步",
"Upstream path": "上游路径",
"Upstream path is required": "上游路径不能为空",
"Upstream path must be a full URL or a path starting with /": "上游路径必须是完整 URL,或以 / 开头的路径",
"Upstream prices fetched successfully": "已成功获取上游价格",
"Upstream ratios fetched successfully": "上游比率获取成功",
"Upstream Request ID": "上游请求 ID",
"Upstream Response": "上游返回",
"upstream services integrated": "上游服务适配",
"Upstream Updates": "上游更新",
"Upstream URL": "上游 URL",
"Upstream URL must be a full URL": "上游 URL 必须是完整 URL",
"uptime": "正常运行时间",
"Uptime": "运行时间",
"Uptime (30d)": "可用率 (30 天)",
@@ -4378,6 +4443,7 @@
"USD price per 1M input tokens.": "每 100 万输入 token 的美元价格。",
"USD price per 1M tokens.": "每 100 万 token 的美元价格。",
"Use +: to add a group, -: to remove a default selectable group, or no prefix to append a group.": "使用 +: 添加分组,使用 -: 移除默认可选分组,不加前缀则追加分组。",
"Use a path to append it to the channel Base URL, or enter a full URL to override the Base URL for this route.": "填写以 / 开头的路径时会自动拼接渠道 Base URL;填写完整 URL 时,此路由会直接使用该 URL。",
"Use a compatible browser or device with biometric authentication or a security key to register a Passkey.": "请使用支持生物识别认证或安全密钥的兼容浏览器或设备来注册通行密钥。",
"Use authenticator code": "使用验证器代码",
"Use backup code": "使用备用代码",
@@ -4396,6 +4462,7 @@
"Used": "已使用",
"Used / Remaining": "已使用 / 剩余",
"Used as SuccessURL on the new product. You'll be prompted to confirm if left blank.": "用作新产品的 SuccessURL。若留空,系统会要求你确认。",
"Used by route auth templates": "用于路由认证模板",
"Used for load balancing. Higher weight = more requests": "用于负载均衡。权重越高 = 请求越多",
"Used in URLs and API routes": "用于URL和API路由",
"Used Quota": "消耗额度",
@@ -4590,6 +4657,7 @@
"When enabled, Midjourney callbacks are accepted (reveals server IP).": "启用时,接受 Midjourney 回调 (会泄露服务器 IP)。",
"When enabled, newly created tokens start in the first auto group.": "启用后,新创建的令牌将从第一个自动分组开始。",
"When enabled, prompts are scanned before reaching upstream models.": "启用后,提示将在到达上游模型之前被扫描。",
"When enabled, requests that do not match any advanced route are forwarded to the channel base URL. When disabled, unmatched requests return an error.": "开启后,未命中任何高级路由的请求会转发到该渠道的 Base URL;关闭时,未匹配请求会返回错误。",
"When enabled, the store field will be blocked": "开启后将阻止 store 字段透传",
"When enabled, users can pick this group when creating tokens.": "启用后,用户创建令牌时可以选择该分组。",
"When enabled, violation requests will incur additional charges.": "开启后,违规请求将额外扣费。",