feat: add seedance media params and model visibility

This commit is contained in:
stupid-h4er
2026-05-27 13:02:36 +08:00
parent 871bedc072
commit 4bffb55695
25 changed files with 873 additions and 140 deletions
+3 -8
View File
@@ -341,7 +341,7 @@ export default function AdminSettingsPage() {
const nextChannelModels = collectChannelModels(nextChannels);
const nextSettings = normalizeSettings({
...values,
public: { ...values.public, modelChannel: { ...values.public.modelChannel, availableModels: filterModels(values.public.modelChannel.availableModels, nextChannelModels) } },
public: { ...values.public, modelChannel: { ...values.public.modelChannel, availableModels: nextChannelModels } },
private: { ...values.private, channels: nextChannels },
});
const saved = normalizeSettings(await saveAdminSettings(token, nextSettings));
@@ -414,7 +414,7 @@ export default function AdminSettingsPage() {
<Form form={form} layout="vertical" initialValues={emptySettings} requiredMark={false}>
<Row gutter={16}>
<Col span={24}>
<Form.Item name={["public", "modelChannel", "availableModels"]} label="系统可用模型(请先在私有配置里配置渠道)" extra="可选项来自已启用渠道中选择的模型,最终开放哪些模型由这里勾选决定">
<Form.Item name={["public", "modelChannel", "availableModels"]} label="系统可用模型(请先在私有配置里配置渠道)" extra="保存设置时会自动合并所有已启用私有渠道的模型,前台模型下拉会读取这里的公开列表">
<Select mode="multiple" placeholder="请选择系统可用模型" options={channelModels.map((item) => ({ label: item, value: item }))} />
</Form.Item>
</Col>
@@ -931,11 +931,6 @@ function uniqueModels(models: string[]) {
return Array.from(new Set(models.filter(Boolean)));
}
function filterModels(models: string[], options: string[]) {
const optionSet = new Set(options);
return uniqueModels(models).filter((model) => optionSet.has(model));
}
function modelSummary(models: string[]) {
if (!models.length) return "未配置模型";
const preview = models.slice(0, 3).join(", ");
@@ -971,7 +966,7 @@ async function collectSettings(form: any, editorMode: Record<SettingsTabKey, Edi
}
values.private = privateSetting;
}
values.public.modelChannel.availableModels = filterModels(values.public.modelChannel.availableModels, collectChannelModels(values.private.channels));
values.public.modelChannel.availableModels = collectChannelModels(values.private.channels);
return normalizeSettings(values);
}