Merge pull request #1886 from ShibaInu64/feature/volcengine-base-url
feat: volcengine支持自定义域名
This commit is contained in:
commit
1d4d243f66
@ -9,6 +9,7 @@ import (
|
|||||||
"mime/multipart"
|
"mime/multipart"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/textproto"
|
"net/textproto"
|
||||||
|
channelconstant "one-api/constant"
|
||||||
"one-api/dto"
|
"one-api/dto"
|
||||||
"one-api/relay/channel"
|
"one-api/relay/channel"
|
||||||
"one-api/relay/channel/openai"
|
"one-api/relay/channel/openai"
|
||||||
@ -188,20 +189,26 @@ func (a *Adaptor) Init(info *relaycommon.RelayInfo) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (a *Adaptor) GetRequestURL(info *relaycommon.RelayInfo) (string, error) {
|
func (a *Adaptor) GetRequestURL(info *relaycommon.RelayInfo) (string, error) {
|
||||||
|
// 支持自定义域名,如果未设置则使用默认域名
|
||||||
|
baseUrl := info.ChannelBaseUrl
|
||||||
|
if baseUrl == "" {
|
||||||
|
baseUrl = channelconstant.ChannelBaseURLs[channelconstant.ChannelTypeVolcEngine]
|
||||||
|
}
|
||||||
|
|
||||||
switch info.RelayMode {
|
switch info.RelayMode {
|
||||||
case constant.RelayModeChatCompletions:
|
case constant.RelayModeChatCompletions:
|
||||||
if strings.HasPrefix(info.UpstreamModelName, "bot") {
|
if strings.HasPrefix(info.UpstreamModelName, "bot") {
|
||||||
return fmt.Sprintf("%s/api/v3/bots/chat/completions", info.ChannelBaseUrl), nil
|
return fmt.Sprintf("%s/api/v3/bots/chat/completions", baseUrl), nil
|
||||||
}
|
}
|
||||||
return fmt.Sprintf("%s/api/v3/chat/completions", info.ChannelBaseUrl), nil
|
return fmt.Sprintf("%s/api/v3/chat/completions", baseUrl), nil
|
||||||
case constant.RelayModeEmbeddings:
|
case constant.RelayModeEmbeddings:
|
||||||
return fmt.Sprintf("%s/api/v3/embeddings", info.ChannelBaseUrl), nil
|
return fmt.Sprintf("%s/api/v3/embeddings", baseUrl), nil
|
||||||
case constant.RelayModeImagesGenerations:
|
case constant.RelayModeImagesGenerations:
|
||||||
return fmt.Sprintf("%s/api/v3/images/generations", info.ChannelBaseUrl), nil
|
return fmt.Sprintf("%s/api/v3/images/generations", baseUrl), nil
|
||||||
case constant.RelayModeImagesEdits:
|
case constant.RelayModeImagesEdits:
|
||||||
return fmt.Sprintf("%s/api/v3/images/edits", info.ChannelBaseUrl), nil
|
return fmt.Sprintf("%s/api/v3/images/edits", baseUrl), nil
|
||||||
case constant.RelayModeRerank:
|
case constant.RelayModeRerank:
|
||||||
return fmt.Sprintf("%s/api/v3/rerank", info.ChannelBaseUrl), nil
|
return fmt.Sprintf("%s/api/v3/rerank", baseUrl), nil
|
||||||
default:
|
default:
|
||||||
}
|
}
|
||||||
return "", fmt.Errorf("unsupported relay mode: %d", info.RelayMode)
|
return "", fmt.Errorf("unsupported relay mode: %d", info.RelayMode)
|
||||||
|
|||||||
@ -9,6 +9,11 @@ var ModelList = []string{
|
|||||||
"Doubao-lite-4k",
|
"Doubao-lite-4k",
|
||||||
"Doubao-embedding",
|
"Doubao-embedding",
|
||||||
"doubao-seedream-4-0-250828",
|
"doubao-seedream-4-0-250828",
|
||||||
|
"seedream-4-0-250828",
|
||||||
|
"doubao-seedance-1-0-pro-250528",
|
||||||
|
"seedance-1-0-pro-250528",
|
||||||
|
"doubao-seed-1-6-thinking-250715",
|
||||||
|
"seed-1-6-thinking-250715",
|
||||||
}
|
}
|
||||||
|
|
||||||
var ChannelName = "volcengine"
|
var ChannelName = "volcengine"
|
||||||
|
|||||||
@ -235,7 +235,7 @@ const EditChannelModal = (props) => {
|
|||||||
pass_through_body_enabled: false,
|
pass_through_body_enabled: false,
|
||||||
system_prompt: '',
|
system_prompt: '',
|
||||||
});
|
});
|
||||||
const showApiConfigCard = inputs.type !== 45; // 控制是否显示 API 配置卡片(仅当渠道类型不是 豆包 时显示)
|
const showApiConfigCard = true; // 控制是否显示 API 配置卡片
|
||||||
const getInitValues = () => ({ ...originInputs });
|
const getInitValues = () => ({ ...originInputs });
|
||||||
|
|
||||||
// 处理渠道额外设置的更新
|
// 处理渠道额外设置的更新
|
||||||
@ -342,6 +342,10 @@ const EditChannelModal = (props) => {
|
|||||||
case 36:
|
case 36:
|
||||||
localModels = ['suno_music', 'suno_lyrics'];
|
localModels = ['suno_music', 'suno_lyrics'];
|
||||||
break;
|
break;
|
||||||
|
case 45:
|
||||||
|
localModels = getChannelModels(value);
|
||||||
|
setInputs((prevInputs) => ({ ...prevInputs, base_url: 'https://ark.cn-beijing.volces.com' }));
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
localModels = getChannelModels(value);
|
localModels = getChannelModels(value);
|
||||||
break;
|
break;
|
||||||
@ -842,6 +846,10 @@ const EditChannelModal = (props) => {
|
|||||||
showInfo(t('请至少选择一个模型!'));
|
showInfo(t('请至少选择一个模型!'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (localInputs.type === 45 && (!localInputs.base_url || localInputs.base_url.trim() === '')) {
|
||||||
|
showInfo(t('请输入API地址!'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (
|
if (
|
||||||
localInputs.model_mapping &&
|
localInputs.model_mapping &&
|
||||||
localInputs.model_mapping !== '' &&
|
localInputs.model_mapping !== '' &&
|
||||||
@ -1809,6 +1817,30 @@ const EditChannelModal = (props) => {
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
{inputs.type === 45 && (
|
||||||
|
<div>
|
||||||
|
<Form.Select
|
||||||
|
field='base_url'
|
||||||
|
label={t('API地址')}
|
||||||
|
placeholder={t('请选择API地址')}
|
||||||
|
onChange={(value) =>
|
||||||
|
handleInputChange('base_url', value)
|
||||||
|
}
|
||||||
|
optionList={[
|
||||||
|
{
|
||||||
|
value: 'https://ark.cn-beijing.volces.com',
|
||||||
|
label: 'https://ark.cn-beijing.volces.com'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'https://ark.ap-southeast.bytepluses.com',
|
||||||
|
label: 'https://ark.ap-southeast.bytepluses.com'
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
defaultValue='https://ark.cn-beijing.volces.com'
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
</Card>
|
</Card>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user