diff --git a/i18n/zh-cn.json b/i18n/zh-cn.json index 0c838c5c..dc7a1e4c 100644 --- a/i18n/zh-cn.json +++ b/i18n/zh-cn.json @@ -586,8 +586,7 @@ "渠道额外设置": "渠道额外设置", "此项可选,用于配置渠道特定设置,为一个 JSON 字符串,例如:": "此项可选,用于配置渠道特定设置,为一个 JSON 字符串,例如:", "强制格式化": "强制格式化", - "强制格式化(只适用于OpenAI渠道类型)": "强制格式化(只适用于OpenAI渠道类型)", - "强制将响应格式化为 OpenAI 标准格式": "强制将响应格式化为 OpenAI 标准格式", + "强制将响应格式化为 OpenAI 标准格式(只适用于OpenAI渠道类型)": "强制将响应格式化为 OpenAI 标准格式(只适用于OpenAI渠道类型)", "思考内容转换": "思考内容转换", "将 reasoning_content 转换为 标签拼接到内容中": "将 reasoning_content 转换为 标签拼接到内容中", "透传请求体": "透传请求体", diff --git a/web/src/components/table/channels/modals/EditChannelModal.jsx b/web/src/components/table/channels/modals/EditChannelModal.jsx index f20c86d9..a4c8ea76 100644 --- a/web/src/components/table/channels/modals/EditChannelModal.jsx +++ b/web/src/components/table/channels/modals/EditChannelModal.jsx @@ -158,20 +158,20 @@ const EditChannelModal = (props) => { }); const showApiConfigCard = inputs.type !== 45; // 控制是否显示 API 配置卡片(仅当渠道类型不是 豆包 时显示) const getInitValues = () => ({ ...originInputs }); - + // 处理渠道额外设置的更新 const handleChannelSettingsChange = (key, value) => { // 更新内部状态 setChannelSettings(prev => ({ ...prev, [key]: value })); - + // 同步更新到表单字段 if (formApiRef.current) { formApiRef.current.setValue(key, value); } - + // 同步更新inputs状态 setInputs(prev => ({ ...prev, [key]: value })); - + // 生成setting JSON并更新 const newSettings = { ...channelSettings, [key]: value }; const settingsJson = JSON.stringify(newSettings); @@ -686,7 +686,7 @@ const EditChannelModal = (props) => { if (localInputs.type === 18 && localInputs.other === '') { localInputs.other = 'v2.1'; } - + // 生成渠道额外设置JSON const channelExtraSettings = { force_format: localInputs.force_format || false, @@ -696,14 +696,14 @@ const EditChannelModal = (props) => { system_prompt: localInputs.system_prompt || '', }; localInputs.setting = JSON.stringify(channelExtraSettings); - + // 清理不需要发送到后端的字段 delete localInputs.force_format; delete localInputs.thinking_to_content; delete localInputs.proxy; delete localInputs.pass_through_body_enabled; delete localInputs.system_prompt; - + let res; localInputs.auto_ban = localInputs.auto_ban ? 1 : 0; localInputs.models = localInputs.models.join(','); @@ -1525,7 +1525,7 @@ const EditChannelModal = (props) => { label={t('是否自动禁用')} checkedText={t('开')} uncheckedText={t('关')} - onChange={(val) => setAutoBan(val)} + onChange={(value) => setAutoBan(value)} extraText={t('仅当自动禁用开启时有效,关闭后不会自动禁用该渠道')} initValue={autoBan} /> @@ -1570,95 +1570,20 @@ const EditChannelModal = (props) => { } showClear /> + -
- - {t('渠道额外设置')} - -
- - -
- {t('强制格式化(只适用于OpenAI渠道类型)')} - - {t('强制将响应格式化为 OpenAI 标准格式')} - -
- - - handleChannelSettingsChange('force_format', val)} - /> - -
- - - -
- {t('思考内容转换')} - - {t('将 reasoning_content 转换为 标签拼接到内容中')} - -
- - - handleChannelSettingsChange('thinking_to_content', val)} - /> - -
- - - -
- {t('透传请求体')} - - {t('启用请求体透传功能')} - -
- - - handleChannelSettingsChange('pass_through_body_enabled', val)} - /> - -
- -
- handleChannelSettingsChange('proxy', val)} - showClear - helpText={t('用于配置网络代理')} - /> -
- -
- handleChannelSettingsChange('system_prompt', val)} - autosize - showClear - helpText={t('用户优先:如果用户在请求中指定了系统提示词,将优先使用用户的设置')} - /> -
- -
+ {/* Channel Extra Settings Card */} + + {/* Header: Channel Extra Settings */} +
+ + + +
+ {t('渠道额外设置')} +
window.open('https://github.com/QuantumNous/new-api/blob/main/docs/channel/other_setting.md')} > {t('设置说明')} @@ -1667,7 +1592,51 @@ const EditChannelModal = (props) => {
+ handleChannelSettingsChange('force_format', value)} + extraText={t('强制将响应格式化为 OpenAI 标准格式(只适用于OpenAI渠道类型)')} + /> + handleChannelSettingsChange('thinking_to_content', value)} + extraText={t('将 reasoning_content 转换为 标签拼接到内容中')} + /> + + handleChannelSettingsChange('pass_through_body_enabled', value)} + extraText={t('启用请求体透传功能')} + /> + + handleChannelSettingsChange('proxy', value)} + showClear + extraText={t('用于配置网络代理,支持 socks5 协议')} + /> + + handleChannelSettingsChange('system_prompt', value)} + autosize + showClear + extraText={t('用户优先:如果用户在请求中指定了系统提示词,将优先使用用户的设置')} + />
diff --git a/web/src/i18n/locales/en.json b/web/src/i18n/locales/en.json index d340d825..a1bf619d 100644 --- a/web/src/i18n/locales/en.json +++ b/web/src/i18n/locales/en.json @@ -1331,8 +1331,7 @@ "对于官方渠道,new-api已经内置地址,除非是第三方代理站点或者Azure的特殊接入地址,否则不需要填写": "For official channels, the new-api has a built-in address. Unless it is a third-party proxy site or a special Azure access address, there is no need to fill it in", "渠道额外设置": "Channel extra settings", "强制格式化": "Force format", - "强制格式化(只适用于OpenAI渠道类型)": "Force format (Only for OpenAI channel types)", - "强制将响应格式化为 OpenAI 标准格式": "Force format responses to OpenAI standard format", + "强制将响应格式化为 OpenAI 标准格式(只适用于OpenAI渠道类型)": "Force format responses to OpenAI standard format (Only for OpenAI channel types)", "思考内容转换": "Thinking content conversion", "将 reasoning_content 转换为 标签拼接到内容中": "Convert reasoning_content to tags and append to content", "透传请求体": "Pass through body",