新增模型会话开关功能和Token映射字段

- 在模型模块中添加更新会话模型状态的API,支持会话模型的管理。
- 更新模型选择器,保存模型的表单数据和响应体,提升用户体验。
- 在编辑模块中新增Token映射字段,增强模型配置的灵活性。
- 优化会话模型开关的逻辑,确保状态切换后能正确更新列表数据。
This commit is contained in:
2026-05-11 21:06:35 +08:00
parent 29838b030f
commit c7152f5d92
4 changed files with 66 additions and 99 deletions

View File

@@ -742,6 +742,7 @@ const workflowDsl = computed(() => ({
inputSource: n.properties?.inputSource || null,
formConfig: n.properties?.formConfig || null,
modelConfig: n.properties?.modelConfig || null,
modelResponse: n.properties?.modelResponse || null,
outputResult: null,
})),
edges: flowDsl.value.edges.map((e) => ({
@@ -884,7 +885,12 @@ const handleRemoveSkill = () => {
// 处理模型选择确认(只更新临时状态,不保存到节点)
const handleModelConfirm = (model: any) => {
selectedModel.value = model.modelName;
selectedModelData.value = model;
selectedModelData.value = {
...model,
// 保存模型的 form 和 responseBody用于后续保存到节点
modelFormData: model.form || [],
responseBody: model.responseMapping || model.responseBody || {},
};
};
// 移除已选择的模型(只更新临时状态)
const handleRemoveModel = () => {
@@ -1707,35 +1713,29 @@ const applySelected = () => {
// 保存选中的模型和模型相关配置
if (selectedModel.value) {
// 获取当前模型的表单字段
const currentModelFields = currentModelForm.value;
const modelForm: Array<any> = [];
// 保存模型相关的字段配置和值
currentModelFields.forEach((fieldItem) => {
const value = dynamicFormValues[fieldItem.field];
modelForm.push({
type: fieldItem.type,
field: fieldItem.field,
label: fieldItem.label,
value: value !== undefined && value !== null ? value : fieldItem.default || '',
required: fieldItem.required || false,
});
});
// 从 selectedModelData 中获取模型的 form 数据
const modelFormFromData = selectedModelData.value?.modelFormData || selectedModelData.value?.form || [];
// 保存到 modelConfig
p.modelConfig = {
modelName: selectedModel.value,
modelApiKey: dynamicFormValues.modelApiKey || '',
modelForm: modelForm,
modelForm: modelFormFromData, // 使用模型列表数据里的 form
};
// 保存模型的 responseBody 到 modelResponse与 modelConfig 平级)
const responseBody = selectedModelData.value?.responseBody || selectedModelData.value?.responseMapping || {};
if (Object.keys(responseBody).length > 0) {
p.modelResponse = responseBody;
}
// 保存模型选择状态
p.selectedModel = selectedModel.value;
p.modelData = selectedModelData.value;
} else {
// 如果没有选择模型,删除 modelConfig 和模型状态
// 如果没有选择模型,删除 modelConfig、modelResponse 和模型状态
delete p.modelConfig;
delete p.modelResponse;
delete p.selectedModel;
delete p.modelData;
}