/**
 * GTP常量字典
 */
import Vue from 'vue';
import { DictionaryBase } from './index.js';

const TemplateLabelDict = new DictionaryBase('模板标签', [

]);
Vue.prototype.TemplateLabelDict = TemplateLabelDict;

const ScenarioTypeDict = new DictionaryBase('场景类型', [
  {
    id: 0,
    name: '文生文',
    symbol: '文生文'
  },
  {
    id: 1,
    name: '文生图',
    symbol: '文生图'
  }
]);
Vue.prototype.ScenarioTypeDict = ScenarioTypeDict;

const ParameterFormatLabelDict = new DictionaryBase('变量识别符', [
  {
    id: 0,
    name: '大括号{}',
    symbol: '{}'
  },
  {
    id: 1,
    name: '双大括号{{}}',
    symbol: '{{}}'
  },
  {
    id: 2,
    name: '中括号[]',
    symbol: '[]'
  },
  {
    id: 3,
    name: '双中括号[[]]',
    symbol: '[[]]'
  },
  {
    id: 4,
    name: '小括号()',
    symbol: '()'
  },
  {
    id: 5,
    name: '双小括号(())',
    symbol: '(())'
  }

]);
Vue.prototype.ParameterFormatLabelDict = ParameterFormatLabelDict;
const TemplateFrameworkDict = new DictionaryBase('模板框架', [
  {
    id: 0,
    name: '无',
    symbol: '无'
  },
  {
    id: 1,
    name: '基本提示框架',
    symbol: 'Basic Prompt Framework'
  },
  {
    id: 2,
    name: 'CRISPE提示框架',
    symbol: 'CRISPE Prompt Framework'
  },
  {
    id: 3,
    name: '少样本提示',
    symbol: 'Few-shot Prompt'
  }
]);
Vue.prototype.TemplateFrameworkDict = TemplateFrameworkDict;

const DataType = new DictionaryBase('数据类型', [
  {
    id: 0,
    name: '文本',
    symbol: 'text'
  },
  {
    id: 1,
    name: '跨模态',
    symbol: 'crossMode'
  }
]);
Vue.prototype.DataType = DataType;

const LabelType = new DictionaryBase('标注类型', [
  {
    id: 0,
    name: '文本对话',
    symbol: 'textDialogue'
  },
  {
    id: 1,
    name: '泛文本无标注',
    symbol: 'universalTextWithoutAnnotations'
  },
  {
    id: 2,
    name: 'query问题集',
    symbol: 'queryProblemSet'
  }
]);
Vue.prototype.LabelType = LabelType;

const MarkTemplate = new DictionaryBase('标注模版', [
  {
    id: 0,
    name: '非排序',
    symbol: 'nonSorting'
  },
  {
    id: 1,
    name: '含排序',
    symbol: 'inclusiveSort'
  }
]);
Vue.prototype.MarkTemplate = MarkTemplate;

const InputStatus = new DictionaryBase('导入状态', [
  {
    id: 0,
    name: '-',
    symbol: '0'
  },
  {
    id: 1,
    name: '导入完成',
    symbol: 'importsClosure'
  },
  {
    id: 2,
    name: '新建',
    symbol: 'new'
  }
]);
Vue.prototype.InputStatus = InputStatus;
const OutputStatus = new DictionaryBase('导入状态', [
  {
    id: 0,
    name: '-',
    symbol: '0'
  },
  {
    id: 1,
    name: '导出完成',
    symbol: '1'
  }
]);
Vue.prototype.OutputStatus = OutputStatus;

const CleanStatus = new DictionaryBase('清洗状态', [
  {
    id: 0,
    name: '-',
    symbol: '0'
  },
  {
    id: 1,
    name: '清洗完成',
    symbol: '1'
  }
]);
Vue.prototype.CleanStatus = CleanStatus;

const EnhanceStatus = new DictionaryBase('增强状态', [
  {
    id: 0,
    name: '-',
    symbol: '0'
  },
  {
    id: 1,
    name: '增强完成',
    symbol: '1'
  }
]);
Vue.prototype.EnhanceStatus = EnhanceStatus;

const ReleaseStatus = new DictionaryBase('发布状态', [
  {
    id: 0,
    name: '未发布',
    symbol: 'unpublished'
  },
  {
    id: 1,
    name: '已发布',
    symbol: 'havePublished'
  }
]);
Vue.prototype.ReleaseStatus = ReleaseStatus;
const ImportFormat = new DictionaryBase('导入格式', [
  {
    id: 0,
    name: 'JSONL',
    symbol: 'jsonl'
  },
  {
    id: 1,
    name: 'TEXT',
    symbol: 'text'
  },
  {
    id: 2,
    name: 'CSV',
    symbol: 'csv'
  },
  {
    id: 3,
    name: 'XLSX',
    symbol: 'xlsx'
  },
  {
    id: 4,
    name: '压缩包',
    symbol: 'rar'
  }
]);
Vue.prototype.ImportFormat = ImportFormat;

const DataAnnotationState = new DictionaryBase('发布状态', [
  {
    id: 0,
    name: '无标注信息',
    symbol: 'UnmarkedInformation'
  },
  {
    id: 1,
    name: '有标注信息',
    symbol: 'MarkedInformation'
  }
]);
Vue.prototype.DataAnnotationState = DataAnnotationState;

const ModelTrainingMode = new DictionaryBase('模型训练模式', [
  {
    id: 0,
    name: 'SFT',
    symbol: 'SFT'
  },
  {
    id: 1,
    name: 'RLHF-强化学习',
    symbol: 'RLHF'
  }
]);
Vue.prototype.ModelTrainingMode = ModelTrainingMode;
const ModelType = new DictionaryBase('模型类型', [
  {
    id: 0,
    name: '大语言模型',
    symbol: 'LargeLanguageModel'
  },
  {
    id: 1,
    name: '文生图大模型',
    symbol: 'VincennesDiagramLargeModel'
  }
]);
Vue.prototype.ModelType = ModelType;

const VersionStatus = new DictionaryBase('版本状态', [
  {
    id: 0,
    name: '创建中',
    symbol: 'creating'
  },
  {
    id: 1,
    name: '就绪',
    symbol: 'ready'
  },
  {
    id: 2,
    name: '创建失败',
    symbol: 'creationFailure'
  }
]);
Vue.prototype.VersionStatus = VersionStatus;

const ModelCreationMode = new DictionaryBase('模型创建方式', [
  {
    id: 0,
    name: '创建为已有模型新版本',
    symbol: 'creating'
  },
  {
    id: 1,
    name: '创建为新模型',
    symbol: 'ready'
  }
]);
Vue.prototype.ModelCreationMode = ModelCreationMode;

const TaskType = new DictionaryBase('任务类型', [
  {
    id: 0,
    name: '新建版本',
    symbol: 'NewVersion'
  },
  {
    id: 1,
    name: '模型评估',
    symbol: 'modelEvaluation'
  },
  {
    id: 2,
    name: '模型压缩',
    symbol: 'ModelCompression'
  }

]);
Vue.prototype.TaskType = TaskType;
// const SftTaskType = new DictionaryBase('sft任务类型', [
//   {
//     id: 0,
//     name: '大语言模型',
//     symbol: ''
//   },
//   {
//     id: 1,
//     name: '文生图模型',
//     symbol: ''
//   }

// ]);
// Vue.prototype.SftTaskType = SftTaskType;
const TaskStatus = new DictionaryBase('任务状态', [

  {
    id: -1,
    name: '失败',
    symbol: 'err'
  },
  {
    id: 0,
    name: '待进行',
    symbol: 'ToBeTrained'
  },
  {
    id: 1,
    name: '已完成',
    symbol: 'accomplish'
  },
  {
    id: 2,
    name: '中断',
    symbol: 'stopped'
  },
  {
    id: 3,
    name: '进行中',
    symbol: 'underway'
  }
]);
Vue.prototype.TaskStatus = TaskStatus;

const TrainingMethod = new DictionaryBase('训练方法', [
  {
    id: 0,
    name: 'full',
    symbol: 'full'
  },
  {
    id: 1,
    name: 'freeze',
    symbol: 'freeze'
  },
  {
    id: 2,
    name: 'lora',
    symbol: 'lora'
  }
]);
Vue.prototype.TrainingMethod = TrainingMethod;

const PublishWay = new DictionaryBase('发布方式', [
  {
    id: 0,
    name: '发布为新模型',
    symbol: 'Publish as a new model'
  },
  {
    id: 1,
    name: '已有模型新版本',
    symbol: 'New version of existing model'
  }
]);
Vue.prototype.PublishWay = PublishWay;
const ModeOfSpeaking = new DictionaryBase('对话模式', [
  {
    id: 0,
    name: '通用智能问答',
    symbol: 'llm'
  },
  {
    id: 1,
    name: '专业知识库问答',
    symbol: 'repository'
  },
  {
    id: 3,
    name: '文件对话',
    symbol: 'fileSession'
  },
  {
    id: 4,
    name: '知识图谱问答',
    symbol: 'knowledgeGraph'
  }
  // {
  //   id: 2,
  //   name: '搜索引擎问答',
  //   symbol: 'se'
  // }
]);
Vue.prototype.ModeOfSpeaking = ModeOfSpeaking;
const RunningStatus = new DictionaryBase('运行状态', [

  {
    id: -1,
    name: '训练失败',
    symbol: 'TrainingFailure'
  },
  {
    id: 0,
    name: '待训练',
    symbol: 'ToBeTrained'
  },
  {
    id: 1,
    name: '训练完成',
    symbol: 'CompletionOfTraining'
  },
  {
    id: 2,
    name: '训练中断',
    symbol: 'TrainingInterruption'
  },
  {
    id: 3,
    name: '训练进行中',
    symbol: 'TrainingUnderway'
  }
]);
Vue.prototype.RunningStatus = RunningStatus;
export {
  TemplateLabelDict,
  ScenarioTypeDict,
  ParameterFormatLabelDict,
  TemplateFrameworkDict,
  DataType,
  LabelType,
  MarkTemplate,
  InputStatus,
  OutputStatus,
  CleanStatus,
  EnhanceStatus,
  ReleaseStatus,
  ImportFormat,
  DataAnnotationState,
  ModelTrainingMode,
  ModelCreationMode,
  TrainingMethod,
  ModeOfSpeaking,
  RunningStatus
}
