fix provider base URL env handling (#1054)

This commit is contained in:
ekko
2026-05-27 10:41:29 +08:00
committed by GitHub
parent a10e171082
commit 07c4c1ddd5
9 changed files with 252 additions and 59 deletions
+2
View File
@@ -42,6 +42,8 @@ export interface AvailableModelGroup {
available_models?: string[]
api_key: string
builtin?: boolean
/** Env var used by Hermes to override this provider's base URL. If present, the preset URL is editable. */
base_url_env?: string
/** 可选:模型 ID -> 元数据(preview/disabled/alias)。alias 仅用于 Web UI 展示。 */
model_meta?: Record<string, { preview?: boolean; disabled?: boolean; alias?: string }>
}
@@ -64,6 +64,10 @@ const alibabaCodingRegion = ref<'intl' | 'cn'>('intl')
const presetOptions = computed(() =>
modelsStore.allProviders.map(g => ({ label: g.label, value: g.provider })),
)
const selectedPresetProvider = computed(() =>
selectedPreset.value ? modelsStore.allProviders.find(g => g.provider === selectedPreset.value) : null,
)
const canEditPresetBaseUrl = computed(() => !!selectedPresetProvider.value?.base_url_env)
const FUN_LINK_MAP: Record<string, string> = {
'fun-codex': 'https://apikey.fun/register?aff=LIBAPI',
@@ -85,7 +89,7 @@ watch(selectedPreset, (val) => {
formData.value.model = ''
alibabaCodingRegion.value = 'intl'
if (val) {
const group = modelsStore.allProviders.find(g => g.provider === val)
const group = selectedPresetProvider.value
if (group) {
formData.value.name = group.label
formData.value.base_url = group.base_url
@@ -371,7 +375,7 @@ function handleClose() {
<NInput
v-model:value="formData.base_url"
:placeholder="t('models.baseUrlPlaceholder')"
:disabled="providerType === 'preset'"
:disabled="providerType === 'preset' && !canEditPresetBaseUrl"
/>
</NFormItem>