'
},
soraS3: {
title: 'Sora 存储配置',
description: '以多配置列表管理 Sora 媒体存储,支持 S3 和 Google Drive',
newProfile: '新建配置',
reloadProfiles: '刷新列表',
empty: '暂无存储配置,请先创建',
createTitle: '新建存储配置',
editTitle: '编辑存储配置',
selectProvider: '选择存储类型',
providerS3Desc: 'S3 兼容对象存储',
providerGDriveDesc: 'Google Drive 云盘',
profileID: '配置 ID',
profileName: '配置名称',
setActive: '创建后设为生效',
saveProfile: '保存配置',
activateProfile: '设为生效',
profileCreated: '存储配置创建成功',
profileSaved: '存储配置保存成功',
profileDeleted: '存储配置删除成功',
profileActivated: '生效配置已切换',
profileIDRequired: '请填写配置 ID',
profileNameRequired: '请填写配置名称',
profileSelectRequired: '请先选择配置',
endpointRequired: '启用时必须填写 S3 端点',
bucketRequired: '启用时必须填写存储桶',
accessKeyRequired: '启用时必须填写 Access Key ID',
deleteConfirm: '确定删除存储配置 {profileID} 吗?',
columns: {
profile: '配置',
profileId: 'Profile ID',
name: '名称',
provider: '存储类型',
active: '生效状态',
endpoint: '端点',
bucket: '存储桶',
storagePath: '存储路径',
capacityUsage: '容量 / 已用',
capacityUnlimited: '无限制',
videoCount: '视频数',
videoCompleted: '完成',
videoInProgress: '进行中',
quota: '默认配额',
updatedAt: '更新时间',
actions: '操作',
rootFolder: '根目录',
testInTable: '测试',
testingInTable: '测试中...',
testTimeout: '测试超时(15秒)'
},
enabled: '启用存储',
enabledHint: '启用后,Sora 生成的媒体文件将自动上传到存储',
endpoint: 'S3 端点',
region: '区域',
bucket: '存储桶',
prefix: '对象前缀',
accessKeyId: 'Access Key ID',
secretAccessKey: 'Secret Access Key',
secretConfigured: '(已配置,留空保持不变)',
cdnUrl: 'CDN URL',
cdnUrlHint: '可选,配置后使用 CDN URL 访问文件',
forcePathStyle: '强制路径风格(Path Style)',
defaultQuota: '默认存储配额',
defaultQuotaHint: '未在用户或分组级别指定配额时的默认值,0 表示无限制',
testConnection: '测试连接',
testing: '测试中...',
testSuccess: '连接测试成功',
testFailed: '连接测试失败',
saved: '存储设置保存成功',
saveFailed: '保存存储设置失败',
gdrive: {
authType: '认证方式',
serviceAccount: '服务账号',
clientId: 'Client ID',
clientSecret: 'Client Secret',
clientSecretConfigured: '(已配置,留空保持不变)',
refreshToken: 'Refresh Token',
refreshTokenConfigured: '(已配置,留空保持不变)',
serviceAccountJson: '服务账号 JSON',
serviceAccountConfigured: '(已配置,留空保持不变)',
folderId: 'Folder ID(可选)',
authorize: '授权 Google Drive',
authorizeHint: '通过 OAuth2 获取 Refresh Token',
oauthFieldsRequired: '请先填写 Client ID 和 Client Secret',
oauthSuccess: 'Google Drive 授权成功',
oauthFailed: 'Google Drive 授权失败',
closeWindow: '此窗口将自动关闭',
processing: '正在处理授权...',
testStorage: '测试存储',
testSuccess: 'Google Drive 存储测试成功(上传、访问、删除均正常)',
testFailed: 'Google Drive 存储测试失败'
}
},
overloadCooldown: {
title: '529 过载冷却',
description: '配置上游返回 529(过载)时的账号调度暂停策略',
enabled: '启用过载冷却',
enabledHint: '收到 529 错误时暂停该账号的调度,冷却后自动恢复',
cooldownMinutes: '冷却时长(分钟)',
cooldownMinutesHint: '账号暂停调度的持续时间(1-120 分钟)',
saved: '过载冷却设置保存成功',
saveFailed: '保存过载冷却设置失败'
},
streamTimeout: {
title: '流超时处理',
description: '配置上游响应超时时的账户处理策略,避免问题账户持续被选中',
enabled: '启用流超时处理',
enabledHint: '当上游响应超时时,自动处理问题账户',
timeoutSeconds: '超时阈值(秒)',
timeoutSecondsHint: '流数据间隔超过此时间视为超时(30-300秒)',
action: '处理方式',
actionTempUnsched: '临时不可调度',
actionError: '标记为错误状态',
actionNone: '不处理',
actionHint: '超时后对账户执行的操作',
tempUnschedMinutes: '暂停时长(分钟)',
tempUnschedMinutesHint: '临时不可调度的持续时间(1-60分钟)',
thresholdCount: '触发阈值(次数)',
thresholdCountHint: '累计超时多少次后触发处理(1-10次)',
thresholdWindowMinutes: '阈值窗口(分钟)',
thresholdWindowMinutesHint: '超时计数的时间窗口(1-60分钟)',
saved: '流超时设置保存成功',
saveFailed: '保存流超时设置失败'
},
rectifier: {
title: '请求整流器',
description: '当上游返回特定错误时,自动修正请求参数并重试,提高请求成功率',
enabled: '启用请求整流器',
enabledHint: '总开关,关闭后所有整流功能均不生效',
thinkingSignature: 'Thinking 签名整流',
thinkingSignatureHint: '当上游返回 thinking block 签名校验错误时,自动去除签名并重试',
thinkingBudget: 'Thinking Budget 整流',
thinkingBudgetHint: '当上游返回 budget_tokens 约束错误(≥1024)时,自动将 budget 设为 32000 并重试',
apikeySignature: 'API Key 签名整流',
apikeySignatureHint:
'当 API Key 账号的上游返回签名相关错误时,自动去除签名并重试(内置规则始终生效)',
apikeyPatterns: '自定义匹配关键词',
apikeyPatternsHint:
'额外的关键词,匹配响应体中的内容(不区分大小写)。内置规则始终生效,此处用于补充额外匹配。',
apikeyPatternPlaceholder: '例如:thinking_error 或 签名无效',
addPattern: '添加关键词',
saved: '整流器设置保存成功',
saveFailed: '保存整流器设置失败'
},
betaPolicy: {
title: 'Beta 策略',
description: '配置转发 Anthropic API 请求时如何处理 Beta 特性。仅适用于 /v1/messages 接口。',
action: '处理方式',
actionPass: '透传(不处理)',
actionFilter: '过滤(移除)',
actionBlock: '拦截(拒绝请求)',
scope: '生效范围',
scopeAll: '全部账号',
scopeOAuth: '仅 OAuth 账号',
scopeAPIKey: '仅 API Key 账号',
scopeBedrock: '仅 Bedrock 账号',
errorMessage: '错误消息',
errorMessagePlaceholder: '拦截时返回的自定义错误消息',
errorMessageHint: '留空则使用默认错误消息',
saved: 'Beta 策略设置保存成功',
saveFailed: '保存 Beta 策略设置失败',
modelWhitelist: '模型白名单',
modelWhitelistHint: '留空则对所有模型生效。支持精确匹配和通配符前缀(如 claude-opus-*)',
modelPatternPlaceholder: '例如: claude-opus-* 或 claude-opus-4-6',
addModelPattern: '添加模型规则',
removePattern: '移除',
fallbackAction: '未匹配模型处理方式',
fallbackActionHint: '当请求模型不在白名单中时的处理方式',
fallbackErrorMessagePlaceholder: '未匹配模型被拦截时返回的自定义错误消息',
quickPresets: '快捷预设',
presetOpusOnly: '仅 Opus 允许 1M',
presetOpusOnlyDesc: 'Opus 透传,其他模型过滤',
commonPatterns: '常用模式'
},
saveSettings: '保存设置',
saving: '保存中...',
settingsSaved: '设置保存成功',
smtpConnectionSuccess: 'SMTP 连接成功',
testEmailSent: '测试邮件发送成功',
failedToLoad: '加载设置失败',
failedToSave: '保存设置失败',
failedToTestSmtp: 'SMTP 连接测试失败',
failedToSendTestEmail: '发送测试邮件失败'
},
// Error Passthrough Rules
errorPassthrough: {
title: '错误透传规则',
description: '配置上游错误如何返回给客户端',
createRule: '创建规则',
editRule: '编辑规则',
deleteRule: '删除规则',
noRules: '暂无规则',
createFirstRule: '创建第一条错误透传规则',
allPlatforms: '所有平台',
passthrough: '透传',
custom: '自定义',
code: '状态码',
body: '消息体',
skipMonitoring: '跳过监控',
// Columns
columns: {
priority: '优先级',
name: '名称',
conditions: '匹配条件',
platforms: '平台',
behavior: '响应行为',
status: '状态',
actions: '操作'
},
// Match Mode
matchMode: {
any: '错误码 或 关键词',
all: '错误码 且 关键词',
anyHint: '状态码匹配任一错误码,或消息包含任一关键词',
allHint: '状态码匹配任一错误码,且消息包含任一关键词'
},
// Form
form: {
name: '规则名称',
namePlaceholder: '例如:上下文超限透传',
priority: '优先级',
priorityHint: '数值越小优先级越高,优先匹配',
description: '规则描述',
descriptionPlaceholder: '描述此规则的用途...',
matchConditions: '匹配条件',
errorCodes: '错误码',
errorCodesPlaceholder: '422, 400, 429',
errorCodesHint: '多个错误码用逗号分隔',
keywords: '关键词',
keywordsPlaceholder: '每行一个关键词\ncontext limit\nmodel not supported',
keywordsHint: '每行一个关键词,不区分大小写',
matchMode: '匹配模式',
platforms: '适用平台',
platformsHint: '不选择表示适用于所有平台',
responseBehavior: '响应行为',
passthroughCode: '透传上游状态码',
responseCode: '自定义状态码',
passthroughBody: '透传上游错误信息',
customMessage: '自定义错误信息',
customMessagePlaceholder: '返回给客户端的错误信息...',
skipMonitoring: '跳过运维监控记录',
skipMonitoringHint: '开启后,匹配此规则的错误不会被记录到运维监控中',
enabled: '启用此规则'
},
// Messages
nameRequired: '请输入规则名称',
conditionsRequired: '请至少配置一个错误码或关键词',
ruleCreated: '规则创建成功',
ruleUpdated: '规则更新成功',
ruleDeleted: '规则删除成功',
deleteConfirm: '确定要删除规则 "{name}" 吗?',
failedToLoad: '加载规则失败',
failedToSave: '保存规则失败',
failedToDelete: '删除规则失败',
failedToToggle: '切换状态失败'
},
// TLS 指纹模板
tlsFingerprintProfiles: {
title: 'TLS 指纹模板',
description: '管理 TLS 指纹模板,用于模拟特定客户端的 TLS 握手特征',
createProfile: '创建模板',
editProfile: '编辑模板',
deleteProfile: '删除模板',
noProfiles: '暂无模板',
createFirstProfile: '创建你的第一个 TLS 指纹模板',
columns: {
name: '名称',
description: '描述',
grease: 'GREASE',
alpn: 'ALPN',
actions: '操作'
},
form: {
pasteYaml: '粘贴 YAML 配置',
pasteYamlPlaceholder: '将 TLS 指纹采集器复制的 YAML 粘贴到这里...',
pasteYamlHint: '粘贴从 TLS 指纹采集器复制的 YAML 配置,自动填充所有字段。',
openCollector: '打开采集器',
parseYaml: '解析 YAML',
yamlParsed: 'YAML 解析成功,字段已自动填充',
yamlParseFailed: 'YAML 解析失败:未找到 name 字段',
name: '模板名称',
namePlaceholder: '例如 macOS Node.js v24',
description: '描述',
descriptionPlaceholder: '可选的模板描述',
enableGrease: '启用 GREASE',
enableGreaseHint: '在 TLS ClientHello 扩展中插入 GREASE 值',
cipherSuites: '密码套件',
cipherSuitesHint: '逗号分隔的十六进制值,例如 0x1301, 0x1302, 0xc02c',
curves: '椭圆曲线',
curvesHint: '逗号分隔的曲线 ID',
pointFormats: '点格式',
signatureAlgorithms: '签名算法',
alpnProtocols: 'ALPN 协议',
alpnProtocolsHint: '逗号分隔,例如 h2, http/1.1',
supportedVersions: '支持的 TLS 版本',
keyShareGroups: '密钥共享组',
pskModes: 'PSK 模式',
extensions: '扩展'
},
deleteConfirm: '删除模板',
deleteConfirmMessage: '确定要删除模板 "{name}" 吗?使用此模板的账号将回退到内置默认值。',
createSuccess: '模板创建成功',
updateSuccess: '模板更新成功',
deleteSuccess: '模板删除成功',
loadFailed: '加载模板失败',
saveFailed: '保存模板失败',
deleteFailed: '删除模板失败'
}
},
// Subscription Progress (Header component)
subscriptionProgress: {
title: '我的订阅',
viewDetails: '查看订阅详情',
activeCount: '{count} 个有效订阅',
daily: '每日',
weekly: '每周',
monthly: '每月',
daysRemaining: '剩余 {days} 天',
expired: '已过期',
expiresToday: '今天到期',
expiresTomorrow: '明天到期',
viewAll: '查看全部订阅',
noSubscriptions: '暂无有效订阅',
unlimited: '无限制'
},
// Version Badge
version: {
currentVersion: '当前版本',
latestVersion: '最新版本',
upToDate: '已是最新版本',
updateAvailable: '有新版本可用!',
releaseNotes: '更新日志',
noReleaseNotes: '暂无更新日志',
viewUpdate: '查看更新',
viewRelease: '查看发布',
viewChangelog: '查看更新日志',
refresh: '刷新',
sourceMode: '源码构建',
sourceModeHint: '源码构建请使用 git pull 更新',
updateNow: '立即更新',
updating: '正在更新...',
updateComplete: '更新完成',
updateFailed: '更新失败',
restartRequired: '请重启服务以应用更新',
restartNow: '立即重启',
restarting: '正在重启...',
retry: '重试'
},
// Recharge / Subscription Page
purchase: {
title: '充值/订阅',
description: '通过内嵌页面完成充值/订阅',
openInNewTab: '新窗口打开',
notEnabledTitle: '该功能未开启',
notEnabledDesc: '管理员暂未开启充值/订阅入口,请联系管理员。',
notConfiguredTitle: '充值/订阅链接未配置',
notConfiguredDesc: '管理员已开启入口,但尚未配置充值/订阅链接,请联系管理员。'
},
// Custom Page (iframe embed)
customPage: {
title: '自定义页面',
openInNewTab: '新窗口打开',
notFoundTitle: '页面不存在',
notFoundDesc: '该自定义页面不存在或已被删除。',
notConfiguredTitle: '页面链接未配置',
notConfiguredDesc: '该自定义页面的 URL 未正确配置。',
},
// Announcements Page
announcements: {
title: '公告',
description: '查看系统公告',
unreadOnly: '仅显示未读',
markRead: '标记已读',
markAllRead: '全部已读',
viewAll: '查看全部公告',
markedAsRead: '已标记为已读',
allMarkedAsRead: '所有公告已标记为已读',
newCount: '有 {count} 条新公告',
readAt: '已读时间',
read: '已读',
unread: '未读',
startsAt: '开始时间',
endsAt: '结束时间',
empty: '暂无公告',
emptyUnread: '暂无未读公告',
total: '条公告',
emptyDescription: '暂时没有任何系统公告',
readStatus: '您已阅读此公告',
markReadHint: '点击"已读"标记此公告'
},
// User Subscriptions Page
userSubscriptions: {
title: '我的订阅',
description: '查看您的订阅计划和用量',
noActiveSubscriptions: '暂无有效订阅',
noActiveSubscriptionsDesc: '您没有任何有效订阅。请联系管理员获取订阅。',
failedToLoad: '加载订阅失败',
status: {
active: '有效',
expired: '已过期',
revoked: '已撤销'
},
usage: '用量',
expires: '到期时间',
noExpiration: '无到期时间',
unlimited: '无限制',
unlimitedDesc: '该订阅无用量限制',
daily: '每日',
weekly: '每周',
monthly: '每月',
daysRemaining: '剩余 {days} 天',
expiresOn: '{date} 到期',
resetIn: '{time} 后重置',
windowNotActive: '等待首次使用',
usageOf: '已用 {used} / {limit}'
},
// Onboarding Tour
onboarding: {
restartTour: '重新查看新手引导',
dontShowAgain: '不再提示',
dontShowAgainTitle: '永久关闭新手引导',
confirmDontShow: '确定不再显示新手引导吗?\n\n您可以随时在右上角头像菜单中重新开启。',
confirmExit: '确定要退出新手引导吗?您可以随时在右上角菜单重新开始。',
interactiveHint: '按 Enter 或点击继续',
navigation: {
flipPage: '翻页',
exit: '退出'
},
// Admin tour steps
admin: {
welcome: {
title: '👋 欢迎使用 Sub2API',
description:
'Sub2API 是一个强大的 AI 服务中转平台,让您轻松管理和分发 AI 服务。
🎯 核心功能:
- 📦 分组管理 - 创建不同的服务套餐(VIP、免费试用等)
- 🔗 账号池 - 连接多个上游 AI 服务商账号
- 🔑 密钥分发 - 为用户生成独立的 API Key
- 💰 计费管理 - 灵活的费率和配额控制
接下来,我们将用 3 分钟带您完成首次配置 →
',
nextBtn: '开始配置 🚀',
prevBtn: '跳过'
},
groupManage: {
title: '📦 第一步:分组管理',
description:
'什么是分组?
分组是 Sub2API 的核心概念,它就像一个"服务套餐":
- 🎯 每个分组可以包含多个上游账号
- 💰 每个分组有独立的计费倍率
- 👥 可以设置为公开或专属分组
💡 示例:您可以创建"VIP专线"(高倍率)和"免费试用"(低倍率)两个分组
👉 点击左侧的"分组管理"开始
'
},
createGroup: {
title: '➕ 创建新分组',
description:
'现在让我们创建第一个分组。
📝 提示:建议先创建一个测试分组,熟悉流程后再创建正式分组
👉 点击"创建分组"按钮
'
},
groupName: {
title: '✏️ 1. 分组名称',
description:
'为您的分组起一个易于识别的名称。
💡 命名建议:- "测试分组" - 用于测试
- "VIP专线" - 高质量服务
- "免费试用" - 体验版
填写完成后点击"下一步"继续
',
nextBtn: '下一步'
},
groupPlatform: {
title: '🤖 2. 选择平台',
description:
'选择该分组支持的 AI 平台。
📌 平台说明:- Anthropic - Claude 系列模型
- OpenAI - GPT 系列模型
- Google - Gemini 系列模型
一个分组只能选择一个平台
',
nextBtn: '下一步'
},
groupMultiplier: {
title: '💰 3. 费率倍数',
description:
'设置该分组的计费倍率,控制用户的实际扣费。
⚙️ 计费规则:- 1.0 - 原价计费(成本价)
- 1.5 - 用户消耗 $1,扣除 $1.5
- 2.0 - 用户消耗 $1,扣除 $2
- 0.8 - 补贴模式(亏本运营)
建议测试分组设置为 1.0
',
nextBtn: '下一步'
},
groupExclusive: {
title: '🔒 4. 专属分组(可选)',
description:
'控制分组的可见性和访问权限。
🔐 权限说明:- 关闭 - 公开分组,所有用户可见
- 开启 - 专属分组,仅指定用户可见
💡 使用场景:VIP 用户专属、内部测试、特殊客户等
',
nextBtn: '下一步'
},
groupSubmit: {
title: '✅ 保存分组',
description:
'确认信息无误后,点击创建按钮保存分组。
⚠️ 注意:分组创建后,平台类型不可修改,其他信息可以随时编辑
📌 下一步:创建成功后,我们将添加上游账号到这个分组
👉 点击"创建"按钮
'
},
accountManage: {
title: '🔗 第二步:添加账号',
description:
'太棒了!分组已创建成功 🎉
现在需要添加上游 AI 服务商的账号,让分组能够实际提供服务。
🔑 账号的作用:- 连接到上游 AI 服务(Claude、GPT 等)
- 一个分组可以包含多个账号(负载均衡)
- 支持 OAuth 和 Session Key 两种方式
👉 点击左侧的"账号管理"
'
},
createAccount: {
title: '➕ 添加新账号',
description:
'点击按钮开始添加您的第一个上游账号。
💡 提示:建议使用 OAuth 方式,更安全且无需手动提取密钥
👉 点击"添加账号"按钮
'
},
accountName: {
title: '✏️ 1. 账号名称',
description:
'为账号设置一个便于识别的名称。
💡 命名建议:"Claude主账号"、"GPT备用1"、"测试账号" 等
',
nextBtn: '下一步'
},
accountPlatform: {
title: '🤖 2. 选择平台',
description:
'选择该账号对应的服务商平台。
⚠️ 重要:平台必须与刚才创建的分组平台一致
',
nextBtn: '下一步'
},
accountType: {
title: '🔐 3. 授权方式',
description:
'选择账号的授权方式。
✅ 推荐:OAuth 方式- 无需手动提取密钥
- 更安全,支持自动刷新
- 适用于 Claude Code、ChatGPT OAuth
📌 Session Key 方式- 需要手动从浏览器提取
- 可能需要定期更新
- 适用于不支持 OAuth 的平台
',
nextBtn: '下一步'
},
accountPriority: {
title: '⚖️ 4. 优先级(可选)',
description:
'设置账号的调用优先级。
📊 优先级规则:- 数字越小,优先级越高
- 系统优先使用低数值账号
- 相同优先级则随机选择
💡 使用场景:主账号设置低数值,备用账号设置高数值
',
nextBtn: '下一步'
},
accountGroups: {
title: '🎯 5. 分配分组',
description:
'关键步骤!将账号分配到刚才创建的分组。
⚠️ 重要提醒:- 必须勾选至少一个分组
- 未分配分组的账号无法使用
- 一个账号可以分配给多个分组
💡 提示:请勾选刚才创建的测试分组
',
nextBtn: '下一步'
},
accountSubmit: {
title: '✅ 保存账号',
description:
'确认信息无误后,点击保存按钮。
📌 OAuth 授权流程:- 点击保存后会跳转到服务商页面
- 在服务商页面完成登录授权
- 授权成功后自动返回
📌 下一步:账号添加成功后,我们将创建 API 密钥
👉 点击"保存"按钮
'
},
keyManage: {
title: '🔑 第三步:生成密钥',
description:
'恭喜!账号配置完成 🎉
最后一步,生成 API Key 来测试服务是否正常工作。
🔑 API Key 的作用:- 用于调用 AI 服务的凭证
- 每个 Key 绑定一个分组
- 可以设置配额和有效期
- 支持独立的使用统计
👉 点击左侧的"API 密钥"
'
},
createKey: {
title: '➕ 创建密钥',
description:
'点击按钮创建您的第一个 API Key。
💡 提示:创建后请立即复制保存,密钥只显示一次
👉 点击"创建密钥"按钮
'
},
keyName: {
title: '✏️ 1. 密钥名称',
description:
'为密钥设置一个便于管理的名称。
💡 命名建议:"测试密钥"、"生产环境"、"移动端" 等
',
nextBtn: '下一步'
},
keyGroup: {
title: '🎯 2. 选择分组',
description:
'选择刚才配置好的分组。
📌 分组决定:- 该密钥可以使用哪些账号
- 计费倍率是多少
- 是否为专属密钥
💡 提示:选择刚才创建的测试分组
',
nextBtn: '下一步'
},
keySubmit: {
title: '🎉 生成并复制',
description:
'点击创建后,系统会生成完整的 API Key。
⚠️ 重要提醒:- 密钥只显示一次,请立即复制
- 丢失后需要重新生成
- 妥善保管,不要泄露给他人
🚀 下一步:- 复制生成的 sk-xxx 密钥
- 在支持 OpenAI 接口的客户端中使用
- 开始体验 AI 服务!
👉 点击"创建"按钮
'
}
},
// User tour steps
user: {
welcome: {
title: '👋 欢迎使用 Sub2API',
description:
'您好!欢迎来到 Sub2API AI 服务平台。
🎯 快速开始:
- 🔑 创建 API 密钥
- 📋 复制密钥到您的应用
- 🚀 开始使用 AI 服务
只需 1 分钟,让我们开始吧 →
',
nextBtn: '开始 🚀',
prevBtn: '跳过'
},
keyManage: {
title: '🔑 API 密钥管理',
description:
'在这里管理您的所有 API 访问密钥。
📌 什么是 API 密钥?
API 密钥是您访问 AI 服务的凭证,就像一把钥匙,让您的应用能够调用 AI 能力。
👉 点击进入密钥页面
'
},
createKey: {
title: '➕ 创建新密钥',
description:
'点击按钮创建您的第一个 API 密钥。
💡 提示:创建后密钥只显示一次,请务必复制保存
👉 点击"创建密钥"
'
},
keyName: {
title: '✏️ 密钥名称',
description:
'为密钥起一个便于识别的名称。
💡 示例:"我的第一个密钥"、"测试用" 等
',
nextBtn: '下一步'
},
keyGroup: {
title: '🎯 选择分组',
description:
'选择管理员为您分配的服务分组。
📌 分组说明:
不同分组可能有不同的服务质量和计费标准,请根据需要选择。
',
nextBtn: '下一步'
},
keySubmit: {
title: '🎉 完成创建',
description:
'点击确认创建您的 API 密钥。
⚠️ 重要:- 创建后请立即复制密钥(sk-xxx)
- 密钥只显示一次,丢失需重新生成
🚀 如何使用:
将密钥配置到支持 OpenAI 接口的任何客户端(如 ChatBox、OpenCat 等),即可开始使用!
👉 点击"创建"按钮
'
}
}
},
}