mirror of
https://github.com/xinnan-tech/xiaozhi-esp32-server.git
synced 2026-07-22 07:03:53 +08:00
360 lines
11 KiB
JavaScript
360 lines
11 KiB
JavaScript
import { getServiceUrl } from '../api';
|
|
import RequestService from '../httpRequest';
|
|
|
|
export default {
|
|
// 获取模型配置列表
|
|
getModelList(params, callback) {
|
|
const queryParams = new URLSearchParams({
|
|
modelType: params.modelType,
|
|
modelName: params.modelName || '',
|
|
page: params.page || 0,
|
|
limit: params.limit || 10
|
|
}).toString();
|
|
|
|
RequestService.sendRequest()
|
|
.url(`${getServiceUrl()}/models/list?${queryParams}`)
|
|
.method('GET')
|
|
.success((res) => {
|
|
RequestService.clearRequestTime()
|
|
callback(res)
|
|
})
|
|
.networkFail((err) => {
|
|
console.error('获取模型列表失败:', err)
|
|
RequestService.reAjaxFun(() => {
|
|
this.getModelList(params, callback)
|
|
})
|
|
}).send()
|
|
},
|
|
// 获取模型供应器列表
|
|
getModelProviders(modelType, callback) {
|
|
RequestService.sendRequest()
|
|
.url(`${getServiceUrl()}/models/${modelType}/provideTypes`)
|
|
.method('GET')
|
|
.success((res) => {
|
|
RequestService.clearRequestTime()
|
|
callback(res.data?.data || [])
|
|
})
|
|
.networkFail((err) => {
|
|
console.error('获取供应器列表失败:', err)
|
|
this.$message.error('获取供应器列表失败')
|
|
RequestService.reAjaxFun(() => {
|
|
this.getModelProviders(modelType, callback)
|
|
})
|
|
}).send()
|
|
},
|
|
|
|
// 新增模型配置
|
|
addModel(params, callback) {
|
|
const { modelType, provideCode, formData } = params;
|
|
const postData = {
|
|
id: formData.id,
|
|
modelCode: formData.modelCode,
|
|
modelName: formData.modelName,
|
|
isDefault: formData.isDefault ? 1 : 0,
|
|
isEnabled: formData.isEnabled ? 1 : 0,
|
|
configJson: formData.configJson,
|
|
docLink: formData.docLink,
|
|
remark: formData.remark,
|
|
sort: formData.sort || 0
|
|
};
|
|
|
|
RequestService.sendRequest()
|
|
.url(`${getServiceUrl()}/models/${modelType}/${provideCode}`)
|
|
.method('POST')
|
|
.data(postData)
|
|
.success((res) => {
|
|
RequestService.clearRequestTime()
|
|
callback(res)
|
|
})
|
|
.networkFail((err) => {
|
|
console.error('新增模型失败:', err)
|
|
this.$message.error(err.msg || '新增模型失败')
|
|
RequestService.reAjaxFun(() => {
|
|
this.addModel(params, callback)
|
|
})
|
|
}).send()
|
|
},
|
|
// 删除模型配置
|
|
deleteModel(id, callback) {
|
|
RequestService.sendRequest()
|
|
.url(`${getServiceUrl()}/models/${id}`)
|
|
.method('DELETE')
|
|
.success((res) => {
|
|
RequestService.clearRequestTime()
|
|
callback(res)
|
|
})
|
|
.networkFail((err) => {
|
|
console.error('删除模型失败:', err)
|
|
this.$message.error(err.msg || '删除模型失败')
|
|
RequestService.reAjaxFun(() => {
|
|
this.deleteModel(id, callback)
|
|
})
|
|
}).send()
|
|
},
|
|
// 获取模型名称列表
|
|
getModelNames(modelType, modelName, callback) {
|
|
RequestService.sendRequest()
|
|
.url(`${getServiceUrl()}/models/names`)
|
|
.method('GET')
|
|
.data({ modelType, modelName })
|
|
.success((res) => {
|
|
RequestService.clearRequestTime();
|
|
callback(res);
|
|
})
|
|
.networkFail(() => {
|
|
RequestService.reAjaxFun(() => {
|
|
this.getModelNames(modelType, modelName, callback);
|
|
});
|
|
}).send();
|
|
},
|
|
// 获取LLM模型名称列表
|
|
getLlmModelCodeList(modelName, callback) {
|
|
RequestService.sendRequest()
|
|
.url(`${getServiceUrl()}/models/llm/names`)
|
|
.method('GET')
|
|
.data({ modelName })
|
|
.success((res) => {
|
|
RequestService.clearRequestTime();
|
|
callback(res);
|
|
})
|
|
.networkFail(() => {
|
|
RequestService.reAjaxFun(() => {
|
|
this.getLlmModelCodeList(modelName, callback);
|
|
});
|
|
}).send();
|
|
},
|
|
// 获取模型音色列表
|
|
getModelVoices(modelId, voiceName, callback) {
|
|
const queryParams = new URLSearchParams({
|
|
voiceName: voiceName || ''
|
|
}).toString();
|
|
RequestService.sendRequest()
|
|
.url(`${getServiceUrl()}/models/${modelId}/voices?${queryParams}`)
|
|
.method('GET')
|
|
.success((res) => {
|
|
RequestService.clearRequestTime();
|
|
callback(res);
|
|
})
|
|
.networkFail(() => {
|
|
RequestService.reAjaxFun(() => {
|
|
this.getModelVoices(modelId, voiceName, callback);
|
|
});
|
|
}).send();
|
|
},
|
|
// 获取单个模型配置
|
|
getModelConfig(id, callback) {
|
|
RequestService.sendRequest()
|
|
.url(`${getServiceUrl()}/models/${id}`)
|
|
.method('GET')
|
|
.success((res) => {
|
|
RequestService.clearRequestTime()
|
|
callback(res)
|
|
})
|
|
.networkFail((err) => {
|
|
console.error('获取模型配置失败:', err)
|
|
this.$message.error(err.msg || '获取模型配置失败')
|
|
RequestService.reAjaxFun(() => {
|
|
this.getModelConfig(id, callback)
|
|
})
|
|
}).send()
|
|
},
|
|
// 启用/禁用模型状态
|
|
updateModelStatus(id, status, callback) {
|
|
RequestService.sendRequest()
|
|
.url(`${getServiceUrl()}/models/enable/${id}/${status}`)
|
|
.method('PUT')
|
|
.success((res) => {
|
|
RequestService.clearRequestTime()
|
|
callback(res)
|
|
})
|
|
.networkFail((err) => {
|
|
console.error('更新模型状态失败:', err)
|
|
this.$message.error(err.msg || '更新模型状态失败')
|
|
RequestService.reAjaxFun(() => {
|
|
this.updateModelStatus(id, status, callback)
|
|
})
|
|
}).send()
|
|
},
|
|
// 更新模型配置
|
|
updateModel(params, callback) {
|
|
const { modelType, provideCode, id, formData } = params;
|
|
const payload = {
|
|
...formData,
|
|
configJson: formData.configJson
|
|
};
|
|
RequestService.sendRequest()
|
|
.url(`${getServiceUrl()}/models/${modelType}/${provideCode}/${id}`)
|
|
.method('PUT')
|
|
.data(payload)
|
|
.success((res) => {
|
|
RequestService.clearRequestTime();
|
|
callback(res);
|
|
})
|
|
.networkFail((err) => {
|
|
console.error('更新模型失败:', err);
|
|
this.$message.error(err.msg || '更新模型失败');
|
|
RequestService.reAjaxFun(() => {
|
|
this.updateModel(params, callback);
|
|
});
|
|
}).send();
|
|
},
|
|
// 设置默认模型
|
|
setDefaultModel(id, callback) {
|
|
RequestService.sendRequest()
|
|
.url(`${getServiceUrl()}/models/default/${id}`)
|
|
.method('PUT')
|
|
.success((res) => {
|
|
RequestService.clearRequestTime()
|
|
callback(res)
|
|
})
|
|
.networkFail((err) => {
|
|
console.error('设置默认模型失败:', err)
|
|
this.$message.error(err.msg || '设置默认模型失败')
|
|
RequestService.reAjaxFun(() => {
|
|
this.setDefaultModel(id, callback)
|
|
})
|
|
}).send()
|
|
},
|
|
|
|
/**
|
|
* 获取模型配置列表(支持查询参数)
|
|
* @param {Object} params - 查询参数对象,例如 { name: 'test', modelType: 1 }
|
|
* @param {Function} callback - 回调函数
|
|
*/
|
|
getModelProvidersPage(params, callback) {
|
|
// 构建查询参数
|
|
const queryParams = new URLSearchParams();
|
|
if (params.name) queryParams.append('name', params.name);
|
|
if (params.modelType !== undefined) queryParams.append('modelType', params.modelType);
|
|
if (params.page !== undefined) queryParams.append('page', params.page);
|
|
if (params.limit !== undefined) queryParams.append('limit', params.limit);
|
|
|
|
RequestService.sendRequest()
|
|
.url(`${getServiceUrl()}/models/provider?${queryParams.toString()}`)
|
|
.method('GET')
|
|
.success((res) => {
|
|
RequestService.clearRequestTime();
|
|
callback(res);
|
|
})
|
|
.networkFail((err) => {
|
|
this.$message.error(err.msg || '获取供应器列表失败');
|
|
RequestService.reAjaxFun(() => {
|
|
this.getModelProviders(params, callback);
|
|
});
|
|
}).send();
|
|
},
|
|
|
|
/**
|
|
* 新增模型供应器配置
|
|
* @param {Object} params - 请求参数对象,例如 { modelType: '1', providerCode: '1', name: '1', fields: '1', sort: 1 }
|
|
* @param {Function} callback - 成功回调函数
|
|
*/
|
|
addModelProvider(params, callback) {
|
|
const postData = {
|
|
modelType: params.modelType || '',
|
|
providerCode: params.providerCode || '',
|
|
name: params.name || '',
|
|
fields: JSON.stringify(params.fields || []),
|
|
sort: params.sort || 0
|
|
};
|
|
|
|
RequestService.sendRequest()
|
|
.url(`${getServiceUrl()}/models/provider`)
|
|
.method('POST')
|
|
.data(postData)
|
|
.success((res) => {
|
|
RequestService.clearRequestTime();
|
|
callback(res);
|
|
})
|
|
.networkFail((err) => {
|
|
console.error('新增模型供应器失败:', err)
|
|
this.$message.error(err.msg || '新增模型供应器失败')
|
|
RequestService.reAjaxFun(() => {
|
|
this.addModelProvider(params, callback);
|
|
});
|
|
}).send();
|
|
},
|
|
|
|
/**
|
|
* 更新模型供应器配置
|
|
* @param {Object} params - 请求参数对象,例如 { id: '111', modelType: '1', providerCode: '1', name: '1', fields: '1', sort: 1 }
|
|
* @param {Function} callback - 成功回调函数
|
|
*/
|
|
updateModelProvider(params, callback) {
|
|
const putData = {
|
|
id: params.id || '',
|
|
modelType: params.modelType || '',
|
|
providerCode: params.providerCode || '',
|
|
name: params.name || '',
|
|
fields: JSON.stringify(params.fields || []),
|
|
sort: params.sort || 0
|
|
};
|
|
|
|
RequestService.sendRequest()
|
|
.url(`${getServiceUrl()}/models/provider`)
|
|
.method('PUT')
|
|
.data(putData)
|
|
.success((res) => {
|
|
RequestService.clearRequestTime();
|
|
callback(res);
|
|
})
|
|
.networkFail((err) => {
|
|
this.$message.error(err.msg || '更新模型供应器失败')
|
|
RequestService.reAjaxFun(() => {
|
|
this.updateModelProvider(params, callback);
|
|
});
|
|
}).send();
|
|
},
|
|
// 删除
|
|
deleteModelProviderByIds(ids, callback) {
|
|
RequestService.sendRequest()
|
|
.url(`${getServiceUrl()}/models/provider/delete`)
|
|
.method('POST')
|
|
.data(ids)
|
|
.success((res) => {
|
|
RequestService.clearRequestTime()
|
|
callback(res);
|
|
})
|
|
.networkFail((err) => {
|
|
this.$message.error(err.msg || '删除模型供应器失败')
|
|
RequestService.reAjaxFun(() => {
|
|
this.deleteModelProviderByIds(ids, callback)
|
|
})
|
|
}).send()
|
|
},
|
|
// 获取插件列表
|
|
getPluginFunctionList(params, callback) {
|
|
RequestService.sendRequest()
|
|
.url(`${getServiceUrl()}/models/provider/plugin/names`)
|
|
.method('GET')
|
|
.success((res) => {
|
|
RequestService.clearRequestTime()
|
|
callback(res)
|
|
})
|
|
.networkFail((err) => {
|
|
this.$message.error(err.msg || '获取插件列表失败')
|
|
RequestService.reAjaxFun(() => {
|
|
this.getPluginFunctionList(params, callback)
|
|
})
|
|
}).send()
|
|
},
|
|
|
|
// 获取RAG模型列表
|
|
getRAGModels(callback) {
|
|
RequestService.sendRequest()
|
|
.url(`${getServiceUrl()}/datasets/rag-models`)
|
|
.method('GET')
|
|
.success((res) => {
|
|
RequestService.clearRequestTime()
|
|
callback(res)
|
|
})
|
|
.networkFail((err) => {
|
|
console.error('获取RAG模型列表失败:', err)
|
|
this.$message.error(err.msg || '获取RAG模型列表失败')
|
|
RequestService.reAjaxFun(() => {
|
|
this.getRAGModels(callback)
|
|
})
|
|
}).send()
|
|
}
|
|
}
|