Commit 56d379cc authored by mhw's avatar mhw

版本跟新

parent ffe42966
<!-- 创建数据集 -->
<template>
<el-form label-position="left" ref="form" label-width="100px" :model="form" :size="defaultFormItemSize">
<el-form label-position="left" ref="form" label-width="100px" :rules="rules" :model="form" :size="defaultFormItemSize">
<el-row class="title">基本信息</el-row>
<el-form-item label="数据集名称:">
<el-form-item label="数据集名称:" prop="datasetName">
<el-input v-model="form.datasetName" class="inputWidth" :size="defaultFormItemSize"></el-input>
</el-form-item>
<el-form-item label="数据类型:">
......@@ -14,7 +14,7 @@
{{ 'V1' }}
</el-form-item>
<el-form-item label="标注类型:">
<el-radio v-for="item in LabelType.getList()" :key="item.id" v-model="form.dimensionType" :label="item.id">{{item.name}}</el-radio>
<el-radio v-for="item in LabelType.getList()" :key="item.id" v-model="form.dimensionType" :label="item.id" @change="isText">{{item.name}}</el-radio>
</el-form-item>
......@@ -41,8 +41,10 @@ export default {
'deletedFlag': 0,
'dimensionType': 0,
'template': 0
},
rules: {
datasetName: [{required: true, message: '数据集名称不能为空', trigger: 'blur'}]
}
};
},
props: ['isEdit', 'item'],
......@@ -95,10 +97,15 @@ export default {
});
}
} else {
reject();
// reject();
}
});
});
},
isText (data) {
if (data !== 0) {
this.form.template = undefined
}
}
}
};
......
<!-- -->
<template>
<el-form label-position="left" ref="form" label-width="80px" :model="form" :size="defaultFormItemSize">
<el-form label-position="left" ref="form" label-width="80px" :model="form" :size="defaultFormItemSize" :rules="rules">
<el-form-item label="数据集版本:">
V {{ form.datasetVersion }}
......@@ -13,11 +13,11 @@
<el-form-item label="继承历史版本:">
<el-switch v-model="form.isInherit" active-color="#13ce66" inactive-color="#ff4949" :active-value="1"
:inactive-value="0">
:inactive-value="0" @change="isInherit">
</el-switch>
</el-form-item>
<el-form-item label="历史版本:" v-if="form.isInherit == 1">
<el-form-item label="历史版本:" v-if="form.isInherit == 1" prop="hisVersion">
<el-select v-model="form.hisVersion" placeholder="请选择">
<el-option v-for="item in tableData.datasetVersionList" :key="item.datasetVersion"
:label="'V' + item.datasetVersion" :value="item.datasetVersion">
......@@ -25,11 +25,11 @@
</el-select>
</el-form-item>
<template v-else>
<el-form-item label="标注类型:">
<el-radio v-for="item in LabelType.getList()" :key="item.id" v-model="form.dimensionType"
<el-form-item label="标注类型:" prop="dimensionType">
<el-radio v-for="item in LabelType.getList()" :key="item.id" v-model="form.dimensionType" @change="isText"
:label="item.id">{{ item.name }}</el-radio>
</el-form-item>
<el-form-item label="标注模版:" v-if="form.dimensionType === 0">
<el-form-item label="标注模版:" v-if="form.dimensionType === 0" prop="template">
<el-radio v-for="item in MarkTemplate.getList()" :key="item.id" v-model="form.template"
:label="item.id">{{ item.name }}</el-radio>
</el-form-item>
......@@ -48,18 +48,18 @@ export default {
data () {
return {
form: {
'cleanStatus': 0,
'dataVolume': 0,
'datasetId': 0,
'datasetVersion': this.tableData.datasetVersionList.slice(-1)[0].datasetVersion + 1,
'enhanceStatus': 0,
'inputStatus': 0,
'markProgress': 0,
'outputStatus': 0,
'releaseStatus': 0
isInherit: 1,
hisVersion: undefined,
dimensionType: undefined,
template: undefined
},
rules: {
hisVersion: [{required: true, message: '历史版本不能为空', trigger: 'blur'}],
dimensionType: [{required: true, message: '标注模版不能为空', trigger: 'blur'}],
template: [{required: true, message: '标注模版', trigger: 'blur'}]
}
};
},
props: ['isEdit', 'tableData'],
......@@ -107,10 +107,23 @@ export default {
});
}
} else {
reject();
// reject();
}
});
});
},
isInherit (data) {
if (data === 1) {
this.form.dimensionType = undefined
this.form.template = undefined
} else if (data === 0) {
this.form.hisVersion = undefined
}
},
isText (data) {
if (data !== 0) {
this.form.template = undefined
}
}
}
};
......
<!-- 基本信息 -->
<template>
<el-form label-position="left" ref="form" label-width="80px" :model="form" :size="defaultFormItemSize" :rules="rules">
<el-form label-position="left" ref="form" label-width="120px" :model="form" :size="defaultFormItemSize" :rules="rules">
<el-row class="title">基本信息</el-row>
<el-form-item label="知识库名称:" prop="knowledgeName">
<el-input :disabled="this.isEdit" v-model="form.knowledgeName" class="inputWidth" :size="defaultFormItemSize" ></el-input>
......@@ -28,9 +28,9 @@ export default {
knowledgeId: undefined
},
rules: {
// taskName: [
// { required: true, message: '请填写知识库名称', trigger: 'blur' }
// ]
knowledgeName: [
{ required: true, message: '请填写知识库名称', trigger: 'blur' }
]
}
};
},
......@@ -76,8 +76,8 @@ export default {
});
}
} else {
this.$message.error('请完善必填信息');
reject();
// this.$message.error('请完善必填信息');
// reject();
}
});
});
......
<!-- 创建sft模板 -->
<template>
<el-form label-position="left" ref="form" label-width="100px" :model="form" :size="defaultFormItemSize">
<el-form label-position="left" ref="form" label-width="120px" :model="form" :size="defaultFormItemSize" :rules="rules">
<el-row class="title">基本信息</el-row>
<el-form-item label="任务名称:">
<el-form-item label="任务名称:" prop="tuningTaskDto.taskName">
<el-input v-model="form.tuningTaskDto.taskName" :readonly="isEdit||existingTask" class="inputWidth" :size="defaultFormItemSize" v-if="!(isEdit||existingTask)" ></el-input>
<span v-else>{{ form.tuningTaskDto.taskName }}</span>
</el-form-item>
......@@ -19,7 +19,7 @@
<el-row class="title">训练配置</el-row>
<el-row> <span class="introduce">训练任务的算法选择、参数及相关配置,训练配置参数影响训练速度及模型效果。</span></el-row>
<el-form-item label="选择基础模型版本:">
<el-form-item label="选择基础模型版本:" prop="tuningRunDto.modelVersionId">
<el-cascader v-model="form.tuningRunDto.modelVersionId" :options="modelList"
:props='{ label: "name", value: "id", emitPath: false }'></el-cascader>
</el-form-item>
......@@ -35,7 +35,7 @@
<el-row class="title">数据配置</el-row>
<el-row> <span class="introduce"> 训练任务的选择数据及相关配置,支持选择该模型可使用的数据。</span></el-row>
<el-form-item label="选择数据集版本">
<el-form-item label="选择数据集版本" prop="tuningRunDto.datasetVersionId">
<el-cascader v-model="form.tuningRunDto.datasetVersionId" :options="dataList"
:props='{ label: "name", value: "id", emitPath: false }'></el-cascader>
......@@ -74,15 +74,26 @@ export default {
'splitRatio': 0,
'taskId': undefined,
'trainMethod': 'full',
'trainMode': ''
'trainMode': '',
datasetVersionId: undefined,
modelVersionId: undefined
},
'tuningTaskDto': {
'taskDescribe': '',
'taskName': '',
'taskType': 0
}
},
rules: {
'tuningTaskDto.taskName': [
{ required: true, message: '请输入任务名称', trigger: 'blur' }
],
'tuningRunDto.modelVersionId': [{ required: true, message: '请选择基础模型版', trigger: 'blur' }],
'tuningRunDto.datasetVersionId': [{ required: true, message: '请选择数据集版本', trigger: 'blur' }]
}
};
},
props: ['isEdit', 'item', 'existingTask'],
......@@ -141,7 +152,7 @@ export default {
});
}
} else {
reject();
// reject();
}
});
});
......
......@@ -179,7 +179,7 @@ export default {
component: 'el-input-number',
property:
{
max: 10,
max: 500,
min: 0
}
}
......
......@@ -119,7 +119,7 @@ export default {
methods: {
init (run = false) {
if (run || this.item.runStatus === 1 || this.item.runStatus === 2) { // 训练完成
if (run || this.item.runStatus === 1 || this.item.runStatus === 2 || this.item.runStatus === -1) { // 训练完成
TuningRun.getStatus(this, {runId: this.item.runId}).then((res) => {
this.assessmentReport = JSON.parse(res.data)
let logHistory = this.assessmentReport.log_history.slice(0, -1)
......
......@@ -44,7 +44,7 @@ export default {
methods: {
init (run = false) {
if (run || this.item.runStatus === 1 || this.item.runStatus === 2) { // 训练完成
if (run || this.item.runStatus === 1 || this.item.runStatus === 2 || this.item.runStatus === -1) { // 训练完成
TuningRun.getLog(this, {runId: this.item.runId}).then((res) => {
this.allLog = res.data
})
......
<!-- 创建模型压缩 -->
<template>
<el-form label-position="left" ref="form" label-width="100px" :model="form" :size="defaultFormItemSize">
<el-form label-position="left" ref="form" label-width="100px" :model="form" :size="defaultFormItemSize" :rules="rules">
<el-row class="title">基本信息</el-row>
<el-form-item label="任务名称:">
<el-form-item label="任务名称:" prop="modelCompressDto.taskName">
<el-input v-model="form.modelCompressDto.taskName" class="inputWidth" :size="defaultFormItemSize"></el-input>
</el-form-item>
<el-form-item label="任务描述:">
......@@ -11,7 +11,7 @@
</el-form-item>
<el-row class="title">压缩配置</el-row>
<el-form-item label="选择源模型:">
<el-form-item label="选择源模型:" prop="modelCompressDto.sourceVersionId" >
<el-cascader v-model="form.modelCompressDto.sourceVersionId" :options="modelList"
:props='{ label: "name", value: "id", emitPath: false }'></el-cascader>
......@@ -22,18 +22,17 @@
</el-form-item>
<el-form-item label="模型创建⽅式:" class="inputWidth">
<el-radio v-for="item in ModelCreationMode.getList()" :key="item.id" v-model="form.modelCompressDto.createMethod" :label="item.id">{{ item.name}}</el-radio>
<el-radio v-for="item in ModelCreationMode.getList()" :key="item.id" v-model="form.modelCompressDto.createMethod" :label="item.id" @change="createMethod">{{ item.name}}</el-radio>
</el-form-item>
<el-form-item label="选择已有模型:" v-if="form.modelCompressDto.createMethod===0">
<el-form-item label="选择已有模型:" v-if="form.modelCompressDto.createMethod===0" prop="modelCompressDto.targetModelId">
<el-select v-model="form.modelCompressDto.targetModelId" placeholder="请选择" class="inputWidth" >
<el-option v-for="item in modelList" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="新建模型名称:" v-else>
<el-form-item label="新建模型名称:" v-else prop="modelCompressDto.targetModelName">
<el-input v-model="form.modelCompressDto.targetModelName" class="inputWidth" :size="defaultFormItemSize"></el-input>
</el-form-item>
<!-- <el-form-item label="压缩策略:">
<el-select v-model="value" placeholder="请选择">
<el-option v-for="item in []" :key="item.value" :label="item.label" :value="item.value"></el-option>
......@@ -68,7 +67,8 @@ export default {
'sourceVersionId': undefined,
'targetModelId': undefined,
'taskDescribe': undefined,
'taskName': undefined
'taskName': undefined,
targetModelName: undefined
},
'modelTaskDto': {
// 'completeTime': '',
......@@ -80,6 +80,15 @@ export default {
// 'versionId': 0,
// 'versionName': ''
}
},
rules: {
'modelCompressDto.taskName': [
{ required: true, message: '请输入任务名称', trigger: 'blur' }
],
'modelCompressDto.sourceVersionId': [{ required: true, message: '请选择源模型', trigger: 'blur' }],
'modelCompressDto.targetModelId': [{ required: true, message: '请选择已有模型', trigger: 'blur' }],
'modelCompressDto.targetModelName': [{ required: true, message: '请输入新建模型名称', trigger: 'blur' }]
}
};
......@@ -148,6 +157,13 @@ export default {
}).catch(e => {
console.log(e);
});
},
createMethod (data) {
if (data === 0) {
this.form.modelCompressDto.targetModelName = undefined
} else if (data === 1) {
this.form.modelCompressDto.targetModelId = undefined
}
}
}
......
......@@ -27,7 +27,7 @@
</vxe-column>
<vxe-column field="sourceVersionId" title="源模型">
<template slot-scope="scope">
{{ scope.row.modelTask.versionName }}
{{ scope.row.modelTask?.versionName }}
</template>
</vxe-column>
<vxe-column field="targetVersionId" title="压缩后模型"></vxe-column>
......
<!-- 创建 -->
<template>
<el-form label-position="left" ref="form" label-width="80px" :model="form" :size="defaultFormItemSize">
<el-form label-position="left" ref="form" label-width="100px" :model="form" :size="defaultFormItemSize" :rules="rules">
<el-row class="title">基本信息</el-row>
<el-form-item label="任务名称:">
<el-input v-model="form.modelEstimateDto.taskName" class="inputWidth" :size="defaultFormItemSize"></el-input>
<el-form-item label="任务名称:" prop="modelEstimateDto.taskName">
<el-input v-model="form.modelEstimateDto.taskName" class="inputWidth" :size="defaultFormItemSize" ></el-input>
</el-form-item>
<el-form-item label="描述:">
<el-input v-model="form.modelEstimateDto.taskDescribe" type="textarea" :rows="4" class="inputWidth"
......@@ -15,11 +15,11 @@
</el-form-item>
<el-row class="title">评估配置</el-row>
<el-form-item label="待评估模型:">
<el-form-item label="待评估模型:" prop="modelEstimateDto.modelVersionId">
<el-cascader v-model="form.modelEstimateDto.modelVersionId" :options="modelList"
:props='{ label: "name", value: "id", emitPath: false }'></el-cascader>
</el-form-item>
<el-form-item label="评估数据集:">
<el-form-item label="评估数据集:" prop="modelEstimateDto.datasetVersionId">
<el-cascader v-model="form.modelEstimateDto.datasetVersionId" :options="dataList"
:props='{ label: "name", value: "id", emitPath: false }'></el-cascader>
<el-row> <span class="introduce">支持选择平台数据服务模块已发布的“文本对话”类型数据集。</span></el-row>
......@@ -50,6 +50,14 @@ export default {
'datasetVersionId': undefined,
'configuration': undefined
}
},
rules: {
'modelEstimateDto.taskName': [
{ required: true, message: '请输入任务名称', trigger: 'blur' }
],
'modelEstimateDto.modelVersionId': [{ required: true, message: '请选择待评估模型', trigger: 'blur' }],
'modelEstimateDto.datasetVersionId': [{ required: true, message: '请选择评估数据集', trigger: 'blur' }]
}
};
......@@ -102,7 +110,7 @@ export default {
});
}
} else {
reject();
// reject();
}
});
});
......
......@@ -48,6 +48,7 @@ export default {
computed: {},
mounted () {
console.log(this.item);
this.formInit()
},
......
<!-- 基本信息-->
<template>
<el-form label-position="left" ref="form" label-width="100px" :model="form" :size="defaultFormItemSize">
<el-form label-position="left" ref="form" label-width="100px" :model="form" :size="defaultFormItemSize" :rules="rules">
<el-row class="title">基本信息</el-row>
<el-form-item label="模型名称:">
<el-form-item label="模型名称:" prop="modelManageDto.modelName">
<el-input v-model="form.modelManageDto.modelName" class="inputWidth" :size="defaultFormItemSize"></el-input>
<el-row> <span class="introduce">支持中英文、数字、下划线(_),2-20个字符,不能以下划线为开头</span></el-row>
</el-form-item>
......@@ -28,12 +28,12 @@
<el-option v-for="item in ModelTrainingMode.getList()" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="训练任务:">
<el-form-item label="训练任务:" prop="modelVersionDto.taskId">
<el-select v-model="form.modelVersionDto.taskId" placeholder="请选择" @change="getTuningRun(form.modelVersionDto.taskId)">
<el-option v-for="item in taskList" :key="item.id" :label="item.name" :value="item.id" ></el-option>
</el-select>
</el-form-item>
<el-form-item label="运行名称:">
<el-form-item label="运行名称:" prop="modelVersionDto.runId">
<el-select v-model="form.modelVersionDto.runId" placeholder="请选择" :disabled="!form.modelVersionDto.taskId">
<el-option v-for="item in runNameList" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
......@@ -63,13 +63,16 @@ export default {
'modelName': '',
'modelType': 0,
'versionCount': 0
},
'modelVersionDto': {
taskId: undefined,
runId: undefined,
'baseModel': '',
'businessLabel': '',
'copyright': '',
'ioMode': '',
'modelTrainingMethod': '',
'modelTrainingMethod': 0,
'modelUrl': '',
'modelVersion': 1,
'protocol': '',
......@@ -79,11 +82,21 @@ export default {
'trainingTask': '',
'versionDescribe': '',
'versionName': '',
'versionSource': '',
'taskId': '',
'runId': ''
'versionSource': ''
}
},
rules: {
'modelManageDto.modelName': [
{ required: true, message: '请输入模型名称', trigger: 'blur' }
],
'modelVersionDto.taskId': [
{ required: true, message: '请选择训练任务', trigger: 'blur' }
],
'modelVersionDto.runId': [
{ required: true, message: '请选择运行名称', trigger: 'blur' }
]
}
};
......@@ -140,7 +153,7 @@ export default {
});
}
} else {
reject();
// reject();
}
});
});
......
<!-- 基本信息-->
<template>
<el-form label-position="left" ref="form" label-width="100px" :model="form" :size="defaultFormItemSize">
<el-form label-position="left" ref="form" label-width="100px" :model="form" :size="defaultFormItemSize" :rules="rules">
<el-row class="title">基本信息</el-row>
<el-form-item label="模型名称:">
<span>{{ tableItem.modelName }}</span>
</el-form-item>
<el-form-item label="模型类型:">
<el-form-item label="模型类型:" >
<span>{{ ModelType.getValue(tableItem.modelType) }}</span>
</el-form-item>
<el-form-item label="业务标签:">
......@@ -25,14 +25,14 @@
<el-option v-for="item in ModelTrainingMode.getList()" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="训练任务:">
<el-select v-model="form.modelVersionDto.trainingTask" placeholder="请选择">
<el-option v-for="item in []" :key="item.value" :label="item.label" :value="item.value"></el-option>
<el-form-item label="训练任务:" prop="modelVersionDto.taskId">
<el-select v-model="form.modelVersionDto.taskId" placeholder="请选择" @change="getTuningRun(form.modelVersionDto.taskId)">
<el-option v-for="item in taskList" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="运行名称:">
<el-select v-model="form.modelVersionDto.runName" placeholder="请选择">
<el-option v-for="item in []" :key="item.value" :label="item.label" :value="item.value"></el-option>
<el-form-item label="运行名称:" prop="modelVersionDto.runId">
<el-select v-model="form.modelVersionDto.runId" placeholder="请选择" :disabled="!form.modelVersionDto.taskId">
<el-option v-for="item in runNameList" :key="item.value" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
......@@ -45,20 +45,33 @@
<script>
import { ModelVersion } from '@/api/gptController.js';
import { ModelVersion, TuningTask, TuningRun } from '@/api/gptController.js';
export default {
data () {
return {
taskList: [],
runNameList: [],
form: {
'modelVersionDto': {
taskId: undefined,
runId: undefined,
'modelId': '',
'modelTrainingMethod': '', //
'modelTrainingMethod': 0, //
'modelVersion': '', //
'runName': '', //
'trainingTask': '', //
'versionDescribe': '' //
}
},
rules: {
'modelVersionDto.taskId': [
{ required: true, message: '请选择训练任务', trigger: 'blur' }
],
'modelVersionDto.runId': [
{ required: true, message: '请选择运行名称', trigger: 'blur' }
]
}
};
......@@ -72,7 +85,8 @@ export default {
mounted () {
this.intFrom()
console.log(this.tableItem);
this.getTaskList();
},
methods: {
......@@ -114,6 +128,25 @@ export default {
}
});
});
},
getTaskList () {
TuningTask.listForTree(this, {}).then(res => {
this.taskList = res.data.map((item) => {
return { id: item.taskId, name: item.taskName }
})
}).catch(e => {
console.log(e);
});
},
getTuningRun (taskId) {
TuningRun.listForTree(this, {tuningRunDtoFilter: {taskId: taskId}}).then(res => {
// console.log(res.data);
this.runNameList = res.data.map((item) => {
return { id: item.runId, name: item.runName }
})
}).catch(e => {
console.log(e);
});
}
}
};
......
<!-- 代码预览 -->
<template>
<pre :class="'hx-scroll ' + lineNumbers">
<code :class="'language-'+ type" v-html="showCode" ></code>
<code :class="'language-'+ type" type v-html="showCode" ></code>
</pre>
</template>
......
<!-- 右侧聊天界面 -->
<template>
<div class="box">
<!-- {{ this.extractContent( item.answer, '```', '```') }} -->
<div class="contentBox" ref="contentBox" v-if="myHistory.length>0">
<div v-for="(item,index) in myHistory" :key="index">
<div class="userBox">
......@@ -16,7 +18,11 @@
GPT
</div>
<div class="content">
{{ item.answer }}
<span v-if="item.answer">{{ item.answer }}</span>
<codePreview v-if="item.code.content" :type="item.code.language" :code="getcode(item.code.content)"/>
<span v-if="item.answer2">{{ item.answer2 }}</span>
</div>
</div>
</div>
......@@ -40,9 +46,11 @@
<script>
import { GetStreaming } from '@/utils/getStreaming.js';
import codePreview from '../codePreview';
export default {
data () {
return {
x: '当然可以,以下是使用JavaScript编写的“Hello World”示例代码: ```javascript console.log("Hello World"); ``` 将此代码复制并粘贴到浏览器的控制台或Node.js环境中,按下回车键,你将看到控制台输出 “Hello World”。',
inputContent: null,
myHistory: [],
heistoryRotate: null, // 历史轮数
......@@ -56,15 +64,40 @@ export default {
};
},
props: ['chatForm'],
components: {},
components: {codePreview},
computed: {
computed: {},
},
mounted () {
// this.myHistory.push({
// 'role': 'user',
// 'content': this.inputContent,
// 'answer': '',
// 'code': {
// temporary: '',
// language: undefined,
// content: ''
// },
// 'answer2': ''
// })
// let a = '当然可以,以下是使用JavaScript编写的“Hello World”示例代码: ```javascript console.log("Hello World"); ``` 将此代码复制并粘贴到浏览器的控制台或Node.js环境中,按下回车键,你将看到控制台输出 “Hello World”。'
// for (let index = 0; index < a.length; index++) {
// setTimeout(() => {
// // b += a[index]
// this.onmessage(a[index])
// }, 100 * index);
// }
},
methods: {
getCode (answer) {
return this.extractContent(answer, '```', '```')
},
clear () {
this.param.query = null
this.param.history = []
......@@ -90,7 +123,14 @@ export default {
this.myHistory.push({
'role': 'user',
'content': this.inputContent,
'answer': ''
'answer': '',
'code': {
temporary: '',
language: undefined,
content: ''
},
'answer2': ''
})
this.inputContent = null;
this.param.history = this.myHistory.slice(0, -1).slice(-this.heistoryRotate).map((item) => { return { role: item.role, content: item.content } })
......@@ -100,11 +140,43 @@ export default {
getData.initeventSource()
},
onmessage (data) {
this.myHistory[this.myHistory.length - 1].answer += data
let nowChat = this.myHistory[this.myHistory.length - 1]
let code = nowChat.code
let languages = ['javascript', 'php', 'java', 'css', 'python', 'html', 'c', 'c++', 'c#']
if (nowChat.answer.indexOf('```') === -1) {
nowChat.answer += data
} else {
if (code.content.indexOf('```') === -1) {
if (code.temporary.indexOf('```') === -1) {
nowChat.code.content += data
}
nowChat.code.temporary += data
if (code.temporary.split(' ').length > 1) {
if (languages.indexOf(code.temporary.split(' ', 1)[0].toLowerCase()) === -1) {
code.language = undefined
} else {
code.language = code.temporary.split(' ')[0]
}
}
console.log(code);
} else {
console.log(data);
nowChat.answer2 += data
}
}
this.$nextTick(() => {
this.$refs.contentBox.scrollTo(0, this.$refs.contentBox.scrollHeight)
})
},
getcode (data) {
if (this.myHistory[this.myHistory.length - 1].code.language) {
}
return data.split(' ').slice(1).join('').replace('```', '')
}
}
}
......@@ -175,6 +247,7 @@ export default {
background-color: #f3f3f3;
padding: 10px;
border-radius: 10px;
height: fit-content;
}
.inputBox{
display: flex;
......
......@@ -130,7 +130,6 @@ export default {
mounted () {
this.formInit()
console.log(this.myDataSetPage.tableData.impl.dataList);
}
};
</script>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment