setModelModal((m) => m && ({ ...m, provider: next }))}
options={providers.map((p) => ({ value: p.id, label: p.display_name }))}
/>
setModelModal((m) => m && ({ ...m, display_name: e.target.value }))} />
setModelModal((m) => m && ({ ...m, endpoint: e.target.value }))} />
{modelModal.capability === "image" ? (
) : null}
{modelModal.capability === "text" || modelModal.capability === "vision" ? (
) : null}
{modelModal.capability === "video" ? (
<>
setModelModal((m) => m && ({ ...m, durationsText: e.target.value }))} />
每个分辨率一档;含视频参考可另填更高积分,不填则同普通价
{modelModal.videoTiers.map((tier, index) => (
setModelModal((m) => {
if (!m) return m;
const videoTiers = m.videoTiers.map((row, i) => i === index ? { ...row, resolution: next } : row);
return { ...m, videoTiers };
})}
options={VIDEO_RES_OPTIONS.map((r) => ({ value: r, label: r }))}
/>
setModelModal((m) => {
if (!m) return m;
const videoTiers = m.videoTiers.map((row, i) => i === index ? { ...row, points_per_second: e.target.value } : row);
return { ...m, videoTiers };
})} />
setModelModal((m) => {
if (!m) return m;
const videoTiers = m.videoTiers.map((row, i) => i === index ? { ...row, points_per_second_with_ref: e.target.value } : row);
return { ...m, videoTiers };
})} />
))}
>
) : null}
{!["image", "text", "vision", "video"].includes(modelModal.capability) ? (
setModelModal((m) => m && ({ ...m, unit_price: e.target.value }))} />
) : null}