@@ -61,12 +61,23 @@ export default function ModelSettingsVisualEditor(props) {
const modelPrice = JSON.parse(props.options.ModelPrice || '{}');
const modelRatio = JSON.parse(props.options.ModelRatio || '{}');
const completionRatio = JSON.parse(props.options.CompletionRatio || '{}');
// 新增:解析高级倍率字段
const cacheRatio = JSON.parse(props.options.CacheRatio || '{}');
const createCacheRatio = JSON.parse(props.options.CreateCacheRatio || '{}');
const imageRatio = JSON.parse(props.options.ImageRatio || '{}');
const audioRatio = JSON.parse(props.options.AudioRatio || '{}');
const audioCompletionRatio = JSON.parse(props.options.AudioCompletionRatio || '{}');
// 合并所有模型名称
const modelNames = new Set([
...Object.keys(modelPrice),
...Object.keys(modelRatio),
...Object.keys(completionRatio),
...Object.keys(cacheRatio),
...Object.keys(createCacheRatio),
...Object.keys(imageRatio),
...Object.keys(audioRatio),
...Object.keys(audioCompletionRatio),
]);
const modelData = Array.from(modelNames).map((name) => {
@@ -74,12 +85,22 @@ export default function ModelSettingsVisualEditor(props) {
const ratio = modelRatio[name] === undefined ? '' : modelRatio[name];
const comp =
completionRatio[name] === undefined ? '' : completionRatio[name];
const cacheR = cacheRatio[name] === undefined ? '' : cacheRatio[name];
const cacheCreationR = createCacheRatio[name] === undefined ? '' : createCacheRatio[name];
const imageR = imageRatio[name] === undefined ? '' : imageRatio[name];
const audioR = audioRatio[name] === undefined ? '' : audioRatio[name];
const audioCompR = audioCompletionRatio[name] === undefined ? '' : audioCompletionRatio[name];
return {
name,
price,
ratio,
completionRatio: comp,
cacheRatio: cacheR,
cacheCreationRatio: cacheCreationR,
imageRatio: imageR,
audioRatio: audioR,
audioCompletionRatio: audioCompR,
hasConflict: price !== '' && (ratio !== '' || comp !== ''),
};
});