diff --git a/src/renderer/src/i18n/locales/en-us.json b/src/renderer/src/i18n/locales/en-us.json index e9e3424170..a4bfd23f96 100644 --- a/src/renderer/src/i18n/locales/en-us.json +++ b/src/renderer/src/i18n/locales/en-us.json @@ -4559,6 +4559,7 @@ "credentials_required": "Please fill in Access Key ID and Secret Access Key", "credentials_save_failed": "Failed to save credentials", "credentials_saved": "Credentials saved", + "credentials_saved_notice": "Credentials have been securely saved. Clear credentials to update them.", "description": "Volcengine is ByteDance's cloud service platform, providing Doubao and other large language model services. Please use IAM user's Access Key for authentication, do not use the root user credentials.", "project_name": "Project Name", "project_name_help": "Project name for endpoint filtering, default is 'default'", diff --git a/src/renderer/src/i18n/locales/zh-cn.json b/src/renderer/src/i18n/locales/zh-cn.json index 8f1a272b2e..c1f2de295a 100644 --- a/src/renderer/src/i18n/locales/zh-cn.json +++ b/src/renderer/src/i18n/locales/zh-cn.json @@ -4559,6 +4559,7 @@ "credentials_required": "请填写 Access Key ID 和 Secret Access Key", "credentials_save_failed": "凭证保存失败", "credentials_saved": "凭证已保存", + "credentials_saved_notice": "凭证已安全保存。如需更新,请先清除凭证。", "description": "火山引擎是字节跳动旗下的云服务平台,提供豆包等大语言模型服务。请使用 IAM 子用户的 Access Key 进行身份验证,不要使用主账号的根用户密钥。", "project_name": "项目名称", "project_name_help": "用于筛选推理接入点的项目名称,默认为 'default'", diff --git a/src/renderer/src/i18n/locales/zh-tw.json b/src/renderer/src/i18n/locales/zh-tw.json index b53385b671..65ad1bb587 100644 --- a/src/renderer/src/i18n/locales/zh-tw.json +++ b/src/renderer/src/i18n/locales/zh-tw.json @@ -4559,6 +4559,7 @@ "credentials_required": "請填寫 Access Key ID 和 Secret Access Key", "credentials_save_failed": "憑證儲存失敗", "credentials_saved": "憑證已儲存", + "credentials_saved_notice": "憑證已安全儲存。如需更新,請先清除憑證。", "description": "火山引擎是字節跳動旗下的雲端服務平台,提供豆包等大型語言模型服務。請使用 IAM 子用戶的 Access Key 進行身份驗證,不要使用主帳號的根用戶密鑰。", "project_name": "專案名稱", "project_name_help": "用於篩選推論接入點的專案名稱,預設為 'default'", diff --git a/src/renderer/src/pages/settings/ProviderSettings/VolcengineSettings.tsx b/src/renderer/src/pages/settings/ProviderSettings/VolcengineSettings.tsx index 44dccb71cf..84cfed01b7 100644 --- a/src/renderer/src/pages/settings/ProviderSettings/VolcengineSettings.tsx +++ b/src/renderer/src/pages/settings/ProviderSettings/VolcengineSettings.tsx @@ -1,6 +1,5 @@ import { loggerService } from '@logger' import { HStack } from '@renderer/components/Layout' -import { PROVIDER_URLS } from '@renderer/config/providers' import { useVolcengineSettings } from '@renderer/hooks/useVolcengine' import { Alert, Button, Input, Space } from 'antd' import type { FC } from 'react' @@ -8,14 +7,12 @@ import { useCallback, useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' import { SettingHelpLink, SettingHelpText, SettingHelpTextRow, SettingSubtitle } from '..' +const accessKeyWebSite = 'https://console.volcengine.com/iam/identitymanage' const VolcengineSettings: FC = () => { const { t } = useTranslation() const { region, projectName, setRegion, setProjectName } = useVolcengineSettings() - const providerConfig = PROVIDER_URLS['doubao'] - const apiKeyWebsite = providerConfig?.websites?.apiKey - const [localAccessKeyId, setLocalAccessKeyId] = useState('') const [localSecretAccessKey, setLocalSecretAccessKey] = useState('') const [localRegion, setLocalRegion] = useState(region) @@ -86,60 +83,70 @@ const VolcengineSettings: FC = () => { {t('settings.provider.volcengine.title')} - {t('settings.provider.volcengine.access_key_id')} - setLocalAccessKeyId(e.target.value)} - style={{ marginTop: 5 }} - spellCheck={false} - /> - - {t('settings.provider.volcengine.access_key_id_help')} - + {!hasCredentials ? ( + <> + {t('settings.provider.volcengine.access_key_id')} + setLocalAccessKeyId(e.target.value)} + style={{ marginTop: 5 }} + spellCheck={false} + /> + + {t('settings.provider.volcengine.access_key_id_help')} + - {t('settings.provider.volcengine.secret_access_key')} - setLocalSecretAccessKey(e.target.value)} - style={{ marginTop: 5 }} - spellCheck={false} - /> - - - {apiKeyWebsite && ( - - {t('settings.provider.get_api_key')} - - )} - - {t('settings.provider.volcengine.secret_access_key_help')} - + + {t('settings.provider.volcengine.secret_access_key')} + + setLocalSecretAccessKey(e.target.value)} + style={{ marginTop: 5 }} + spellCheck={false} + /> + + + + {t('settings.provider.get_api_key')} + + + {t('settings.provider.volcengine.secret_access_key_help')} + + {t('settings.provider.volcengine.region')} + setLocalRegion(e.target.value)} + onBlur={() => setRegion(localRegion)} + style={{ marginTop: 5 }} + /> + + {t('settings.provider.volcengine.region_help')} + - {t('settings.provider.volcengine.region')} - setLocalRegion(e.target.value)} - onBlur={() => setRegion(localRegion)} - style={{ marginTop: 5 }} - /> - - {t('settings.provider.volcengine.region_help')} - - - {t('settings.provider.volcengine.project_name')} - setLocalProjectName(e.target.value)} - onBlur={() => setProjectName(localProjectName)} - style={{ marginTop: 5 }} - /> - - {t('settings.provider.volcengine.project_name_help')} - + {t('settings.provider.volcengine.project_name')} + setLocalProjectName(e.target.value)} + onBlur={() => setProjectName(localProjectName)} + style={{ marginTop: 5 }} + /> + + {t('settings.provider.volcengine.project_name_help')} + + + ) : ( + + )}