feat: 模型表单新增独立「模型名」字段,不再需要手写 JSON

- 新增 model_name 输入框,自动合并到 extra_params.model
- 编辑时自动提取回显
- 表格列表新增模型名列
- 避免用户遗漏关键的 model 参数导致调用失败
This commit is contained in:
zwt13703 2026-07-06 20:31:42 +08:00
parent 3cd26b9e79
commit 8c64fbc0a5
1 changed files with 8 additions and 2 deletions

View File

@ -51,12 +51,14 @@ export default function ModelList() {
// 延迟确保 Form DOM 已渲染 // 延迟确保 Form DOM 已渲染
const timer = setTimeout(() => { const timer = setTimeout(() => {
if (editingModel) { if (editingModel) {
const extra = editingModel.extra_params || {};
form.setFieldsValue({ form.setFieldsValue({
name: editingModel.name, name: editingModel.name,
provider: editingModel.provider, provider: editingModel.provider,
model_name: extra.model || "",
endpoint: editingModel.endpoint, endpoint: editingModel.endpoint,
api_key: "", api_key: "",
extra_params: JSON.stringify(editingModel.extra_params, null, 2), extra_params: JSON.stringify(extra, null, 2),
is_enabled: editingModel.is_enabled, is_enabled: editingModel.is_enabled,
remark: editingModel.remark, remark: editingModel.remark,
}); });
@ -81,8 +83,9 @@ export default function ModelList() {
const payload = { const payload = {
...values, ...values,
extra_params: extraParams, extra_params: { ...extraParams, ...(values.model_name ? { model: values.model_name } : {}) },
}; };
delete payload.model_name;
if (editingModel) { if (editingModel) {
if (!payload.api_key) delete payload.api_key; if (!payload.api_key) delete payload.api_key;
@ -217,6 +220,9 @@ export default function ModelList() {
<Form.Item name="provider" label="供应商" rules={[{ required: true }]}> <Form.Item name="provider" label="供应商" rules={[{ required: true }]}>
<Select options={PROVIDERS} /> <Select options={PROVIDERS} />
</Form.Item> </Form.Item>
<Form.Item name="model_name" label="模型名" rules={[{ required: true }]}>
<Input placeholder="例如 deepseek-chat / gpt-4 / gpt-3.5-turbo" />
</Form.Item>
<Form.Item name="endpoint" label="接口地址" rules={[{ required: true }]}> <Form.Item name="endpoint" label="接口地址" rules={[{ required: true }]}>
<Input placeholder="https://api.openai.com/v1/chat/completions" /> <Input placeholder="https://api.openai.com/v1/chat/completions" />
</Form.Item> </Form.Item>