Commit 3306ab19 authored by mhw's avatar mhw

版本更新

parent 0fe836a3
export default class ModelInstance {
static list (sender, params, axiosOption, httpOption) {
return sender.doUrl('/admin/app/modelInstance/list', 'post', params, axiosOption, httpOption);
}
static listForTree (sender, params, axiosOption, httpOption) {
return sender.doUrl('/admin/app/modelManage/listForTree', 'post', params, axiosOption, httpOption);
}
static add (sender, params, axiosOption, httpOption) {
return sender.doUrl('/admin/app/modelInstance/add', 'post', params, axiosOption, httpOption);
}
static delete (sender, params, axiosOption, httpOption) {
return sender.doUrl('/admin/app/modelInstance/delete', 'post', params, axiosOption, httpOption);
}
static deploy (sender, params, axiosOption, httpOption) {
return sender.doUrl('/admin/app/modelInstance/deploy', 'post', params, axiosOption, httpOption);
}
static getGpuInfo (sender, params, axiosOption, httpOption) {
return sender.doUrl('/admin/app/modelInstance/getGpuInfo', 'post', params, axiosOption, httpOption);
}
static stop (sender, params, axiosOption, httpOption) {
return sender.doUrl('/admin/app/modelInstance/stop', 'post', params, axiosOption, httpOption);
}
static canUseList (sender, params, axiosOption, httpOption) {
return sender.doUrl('/admin/app/modelInstance/canUseList', 'post', params, axiosOption, httpOption);
}
}
...@@ -2,15 +2,15 @@ export default class plugOrchestration { ...@@ -2,15 +2,15 @@ export default class plugOrchestration {
static list (sender, params, axiosOption, httpOption) { static list (sender, params, axiosOption, httpOption) {
return sender.doUrl('/admin/app/pluginManage/list', 'post', params, axiosOption, httpOption); return sender.doUrl('/admin/app/pluginManage/list', 'post', params, axiosOption, httpOption);
} }
static view (sender, params, axiosOption, httpOption) { static view (sender, params, axiosOption, httpOption) {
return sender.doUrl('/admin/app/pluginManage/view', 'get', params, axiosOption, httpOption); return sender.doUrl('/admin/app/pluginManage/view', 'get', params, axiosOption, httpOption);
} }
static offline (sender, params, axiosOption, httpOption) {
return sender.doUrl('/admin/app/pluginManage/offline', 'get', params, axiosOption, httpOption);
}
static export (sender, params, fileName) { static export (sender, params, fileName) {
return sender.download('/admin/app/pluginManage/export', params, fileName); return sender.download('/admin/app/pluginManage/export', params, fileName);
} }
static add (sender, params, axiosOption, httpOption) { static add (sender, params, axiosOption, httpOption) {
return sender.doUrl('/admin/app/pluginManage/add', 'post', params, axiosOption, httpOption); return sender.doUrl('/admin/app/pluginManage/add', 'post', params, axiosOption, httpOption);
} }
......
...@@ -21,6 +21,7 @@ import KnowledgeGraph from './GptController/KnowledgeGraph.js'; ...@@ -21,6 +21,7 @@ import KnowledgeGraph from './GptController/KnowledgeGraph.js';
import DataSetCleaning from './GptController/DataSetCleaning.js'; import DataSetCleaning from './GptController/DataSetCleaning.js';
import plugOrchestration from './GptController/plugOrchestration.js'; import plugOrchestration from './GptController/plugOrchestration.js';
import ApiManage from './GptController/ApiManage.js'; import ApiManage from './GptController/ApiManage.js';
import ModelInstance from './GptController/ModelInstance.js';
export { export {
TemplateController, TemplateController,
...@@ -44,5 +45,6 @@ export { ...@@ -44,5 +45,6 @@ export {
KnowledgeGraph, KnowledgeGraph,
DataSetCleaning, DataSetCleaning,
plugOrchestration, plugOrchestration,
ApiManage ApiManage,
ModelInstance
} }
module.exports = { module.exports = {
// baseUrl: 'http://218.76.0.69:8082/', // baseUrl: 'http://218.76.0.69:8082/',
// baseUrl: 'http://192.168.0.34:8082/', // baseUrl: 'http://192.168.0.34:8082/',
// baseUrl: 'http://192.168.0.36:8082/', baseUrl: 'http://192.168.0.36:8082/',
baseUrl: 'http://192.168.0.168:8082/', // baseUrl: 'http://192.168.0.168:8082/',
// baseUrl: 'http://192.168.0.34:8082/', // baseUrl: 'http://192.168.0.34:8082/',
wsUrl: 'ws://218.76.0.69:7860/', wsUrl: 'ws://218.76.0.69:7860/',
projectName: '灵境大模型平台' projectName: '灵境大模型平台'
......
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
<vxe-column field="createTime" title="创建时间"></vxe-column> <vxe-column field="createTime" title="创建时间"></vxe-column>
<vxe-column field="operation" title="操作"> <vxe-column field="operation" title="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" icon="el-icon-menu" :size="defaultFormItemSize" @click="all(scope.row)">{{ scope.row.releaseStatus === 1 ? '详情' : '标记' }}</el-button> <el-button type="text" icon="el-icon-menu" :size="defaultFormItemSize" @click="all(scope.row)">{{ scope.row.releaseStatus === 1 ? '详情' : '标记' }}</el-button>
<!-- <el-button type="text" :size="defaultFormItemSize">标注</el-button> --> <!-- <el-button type="text" :size="defaultFormItemSize">标注</el-button> -->
<!-- <el-button type="text" :size="defaultFormItemSize" @click="edit(scope.row)">编辑</el-button>--> <!-- <el-button type="text" :size="defaultFormItemSize" @click="edit(scope.row)">编辑</el-button>-->
<el-button type="text" icon="el-icon-delete" :size="defaultFormItemSize" @click="del(scope.row)" :disabled="scope.row.releaseStatus === 1">删除</el-button> <el-button type="text" icon="el-icon-delete" :size="defaultFormItemSize" @click="del(scope.row)" :disabled="scope.row.releaseStatus === 1">删除</el-button>
...@@ -140,7 +140,6 @@ export default { ...@@ -140,7 +140,6 @@ export default {
// }, // },
datasetVersionDtoFilter: { ...this.myDataSetPage.formFilter } datasetVersionDtoFilter: { ...this.myDataSetPage.formFilter }
} }
console.log(params)
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
DatasetVersion.load(this, params) DatasetVersion.load(this, params)
.then((res) => { .then((res) => {
......
...@@ -2,25 +2,24 @@ ...@@ -2,25 +2,24 @@
<template> <template>
<el-form label-position="left" ref="form" label-width="100px" :model="form" :size="defaultFormItemSize" :rules="rules"> <el-form label-position="left" ref="form" label-width="100px" :model="form" :size="defaultFormItemSize" :rules="rules">
<el-row class="title">基本信息</el-row> <el-row class="title">基本信息</el-row>
<el-form-item label="服务名称:" prop="modelDeployDto.serviceName"> <el-form-item label="服务名称:" prop="modelInstanceDto.serviceName">
<el-input v-model="form.modelDeployDto.serviceName" class="inputWidth" placeholder="服务名称" :maxlength="20" :minlength="2"></el-input> <el-input v-model="form.modelInstanceDto.serviceName" class="inputWidth" placeholder="服务名称" :maxlength="20" :minlength="2"></el-input>
<el-row> <el-row>
<span class="introduce">支持中英文、数字、下划线(_),2-20个字符,不能以下划线为开头</span></el-row> <span class="introduce">支持中英文、数字、下划线(_),2-20个字符,不能以下划线为开头</span></el-row>
</el-form-item> </el-form-item>
<el-form-item label="服务描述:"> <el-form-item label="服务描述:">
<el-input type="textarea" :rows="2" v-model="form.modelDeployDto.serviceDescription" placeholder="服务描述"></el-input> <el-input type="textarea" :rows="2" v-model="form.modelInstanceDto.serviceDescription" placeholder="服务描述"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="选择模型:" prop="modelDeployDto.versionId"> <el-form-item label="选择模型:" prop="modelInstanceDto.versionId">
<el-cascader v-model="form.modelDeployDto.versionId" :options="modelList" :props='{ label: "name", value: "id", emitPath: false }'></el-cascader> <el-cascader v-model="form.modelInstanceDto.versionId" :options="modelList" :props='{ label: "name", value: "id", emitPath: false }'></el-cascader>
</el-form-item> </el-form-item>
<el-form-item label="API地址:"> <el-form-item label="API地址:">
<el-input v-model="form.modelDeployDto.apiUrl" class="inputWidth" placeholder="API地址"></el-input> <el-input v-model="form.modelInstanceDto.apiUrl" class="inputWidth" placeholder="API地址"></el-input>
</el-form-item> </el-form-item>
<el-row class="title">模型配置</el-row> <el-row class="title">模型配置</el-row>
<el-form-item label="资源配置:" prop="modelDeployDto.resourceInfo"> <el-form-item label="资源配置:" prop="modelInstanceDto.resourceInfo">
<modelConfiguration v-model="form.modelDeployDto.resourceInfo" /> <modelConfiguration v-model="form.modelInstanceDto.resourceInfo" />
</el-form-item> </el-form-item>
<el-row type="flex" justify="end" class="dialog-btn-layer mt20"> <el-row type="flex" justify="end" class="dialog-btn-layer mt20">
<el-button :plain="true" @click="onCancel(false)">取消</el-button> <el-button :plain="true" @click="onCancel(false)">取消</el-button>
<el-button type="primary" @click="onSubmit">确定</el-button> <el-button type="primary" @click="onSubmit">确定</el-button>
...@@ -29,14 +28,14 @@ ...@@ -29,14 +28,14 @@
</template> </template>
<script> <script>
import { ModelDeployment } from '@/api/gptController.js' import { ModelInstance } from '@/api/gptController.js'
import modelConfiguration from './modelConfiguration' import modelConfiguration from './modelConfiguration'
export default { export default {
data() { data() {
return { return {
modelList: [], modelList: [],
form: { form: {
modelDeployDto: { modelInstanceDto: {
apiUrl: undefined, apiUrl: undefined,
resourceInfo: '', resourceInfo: '',
serviceName: '', serviceName: '',
...@@ -45,9 +44,9 @@ export default { ...@@ -45,9 +44,9 @@ export default {
} }
}, },
rules: { rules: {
'modelDeployDto.serviceName': [{ required: true, message: '请输入服务名称', trigger: 'blur' }], 'modelInstanceDto.serviceName': [{ required: true, message: '请输入服务名称', trigger: 'blur' }],
'modelDeployDto.resourceInfo': [{ required: true, message: '请选择资源配置', trigger: 'blur' }], 'modelInstanceDto.resourceInfo': [{ required: true, message: '请选择资源配置', trigger: 'blur' }],
'modelDeployDto.versionId': [{ required: true, message: '请选择模型', trigger: 'blur' }] 'modelInstanceDto.versionId': [{ required: true, message: '请选择模型', trigger: 'blur' }]
} }
} }
}, },
...@@ -83,7 +82,7 @@ export default { ...@@ -83,7 +82,7 @@ export default {
params = { ...this.form } params = { ...this.form }
if (this.isEdit) { if (this.isEdit) {
ModelDeployment.update(this, params) ModelInstance.update(this, params)
.then((res) => { .then((res) => {
resolve(res) resolve(res)
this.$message.success('编辑成功') this.$message.success('编辑成功')
...@@ -93,7 +92,7 @@ export default { ...@@ -93,7 +92,7 @@ export default {
reject(e) reject(e)
}) })
} else { } else {
ModelDeployment.add(this, params) ModelInstance.add(this, params)
.then((res) => { .then((res) => {
resolve(res) resolve(res)
this.$message.success('添加成功') this.$message.success('添加成功')
...@@ -110,7 +109,7 @@ export default { ...@@ -110,7 +109,7 @@ export default {
}) })
}, },
getModelList() { getModelList() {
ModelDeployment.listForTree(this, {}) ModelInstance.listForTree(this, {})
.then((res) => { .then((res) => {
this.modelList = res.data.map((item) => { this.modelList = res.data.map((item) => {
return { return {
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
</template> </template>
<script> <script>
import { ModelDeployment } from '@/api/gptController.js' import { ModelInstance } from '@/api/gptController.js'
export default { export default {
data() { data() {
return { return {
...@@ -52,7 +52,7 @@ export default { ...@@ -52,7 +52,7 @@ export default {
} }
}, },
getGpuInfo() { getGpuInfo() {
ModelDeployment.getGpuInfo(this, {}) ModelInstance.getGpuInfo(this, {})
.then((res) => { .then((res) => {
this.list = this.isJSON(res.data).gpu_list this.list = this.isJSON(res.data).gpu_list
}) })
......
...@@ -27,13 +27,24 @@ ...@@ -27,13 +27,24 @@
</vxe-column> </vxe-column>
<vxe-column field="createTime" title="创建时间"></vxe-column> <vxe-column field="createTime" title="创建时间"></vxe-column>
<vxe-column field="updateTime" title="更新时间"></vxe-column> <vxe-column field="updateTime" title="更新时间"></vxe-column>
<vxe-column field="operation" title="操作"> <vxe-column field="operation" title="操作" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" icon="el-icon-menu" :size="defaultFormItemSize" @click="particulars(scope.row)">详情</el-button> <el-button type="text" icon="el-icon-menu" :size="defaultFormItemSize" @click="particulars(scope.row)">详情</el-button>
<el-button type="text" icon="el-icon-remove-outline" :size="defaultFormItemSize" @click="stop(scope.row)">卸载</el-button> <!-- <el-button type="text" icon="el-icon-remove-outline" :size="defaultFormItemSize" @click="stop(scope.row)">卸载</el-button> -->
<el-button type="text" icon="el-icon-circle-check" :size="defaultFormItemSize" @click="deploy(scope.row,'start')" v-if="scope.row.deployStatus==-1||scope.row.deployStatus==2||scope.row.deployStatus==3">启动</el-button> <el-button type="text" icon="el-icon-circle-check" :size="defaultFormItemSize" @click="deploy(scope.row,'start')" v-if="scope.row.deployStatus==-1||scope.row.deployStatus==2||scope.row.deployStatus==3">启动</el-button>
<el-button type="text" icon="el-icon-refresh" :size="defaultFormItemSize" @click="deploy(scope.row,'reload')">重载</el-button> <!-- <el-button type="text" icon="el-icon-refresh" :size="defaultFormItemSize" @click="deploy(scope.row,'reload')">重载</el-button> -->
<el-button type="text" icon="el-icon-delete" :size="defaultFormItemSize" @click="del(scope.row)">删除</el-button> <!-- <el-button type="text" icon="el-icon-delete" :size="defaultFormItemSize" @click="del(scope.row)">删除</el-button> -->
<el-dropdown style="margin-left:15px;color: #0092FF;font-size: 12px" :size="defaultFormItemSize">
<span class="el-dropdown-link">
更多<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="stop(scope.row)">卸载</el-dropdown-item>
<el-dropdown-item @click.native="deploy(scope.row,'reload')">重载</el-dropdown-item>
<el-dropdown-item @click.native="del(scope.row)">删除</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template> </template>
</vxe-column> </vxe-column>
</vxe-table> </vxe-table>
...@@ -49,7 +60,7 @@ ...@@ -49,7 +60,7 @@
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
/* eslint-disable-next-line */ /* eslint-disable-next-line */
import { TableWidget } from '@/utils/widget.js' import { TableWidget } from '@/utils/widget.js'
import { ModelDeployment } from '@/api/gptController.js' import { ModelInstance } from '@/api/gptController.js'
import editOrAdd from './dialog/editOrAdd' import editOrAdd from './dialog/editOrAdd'
import particulars from './particulars/index' import particulars from './particulars/index'
export default { export default {
...@@ -81,10 +92,10 @@ export default { ...@@ -81,10 +92,10 @@ export default {
getwidgetData(params) { getwidgetData(params) {
if (params == null) params = {} if (params == null) params = {}
params = { params = {
modelDeployDtoFilter: { modelInstanceDtoFilter: {
...this.myDataSetPage.formFilter ...this.myDataSetPage.formFilter
}, },
...params, ...params
// orderParam: [ // orderParam: [
// { // {
// asc: true, // asc: true,
...@@ -96,11 +107,11 @@ export default { ...@@ -96,11 +107,11 @@ export default {
// pageNum: 0, // pageNum: 0,
// pageSize: 0 // pageSize: 0
// }, // },
promptTemplateDtoFilter: { ...this.myDataSetPage.formFilter } // modelInstanceDtoFilter: { ...this.myDataSetPage.formFilter }
} }
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
ModelDeployment.list(this, params) ModelInstance.list(this, params)
.then((res) => { .then((res) => {
resolve({ resolve({
dataList: res.data.dataList, dataList: res.data.dataList,
...@@ -148,8 +159,8 @@ export default { ...@@ -148,8 +159,8 @@ export default {
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
let params = { deployId: item.deployId } let params = { instanceId: item.instanceId }
ModelDeployment.delete(this, params) ModelInstance.delete(this, params)
.then((res) => { .then((res) => {
this.$message.success('删除成功') this.$message.success('删除成功')
this.refresh() this.refresh()
...@@ -181,8 +192,8 @@ export default { ...@@ -181,8 +192,8 @@ export default {
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
let params = { modelDeployDto: { deployId: item.deployId }, type } let params = { modelInstanceDto: { instanceId: item.instanceId }, type }
ModelDeployment.deploy(this, params) ModelInstance.deploy(this, params)
.then((res) => { .then((res) => {
this.$message.success('部署成功') this.$message.success('部署成功')
this.refresh() this.refresh()
...@@ -199,8 +210,8 @@ export default { ...@@ -199,8 +210,8 @@ export default {
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
let params = { modelDeployDto: { deployId: item.deployId } } let params = { modelInstanceDto: { instanceId: item.instanceId } }
ModelDeployment.stop(this, params) ModelInstance.stop(this, params)
.then((res) => { .then((res) => {
this.$message.success('卸载成功') this.$message.success('卸载成功')
this.refresh() this.refresh()
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
/* eslint-disable-next-line */ /* eslint-disable-next-line */
import { DropdownWidget, TableWidget, UploadWidget, ChartWidget } from '@/utils/widget.js' import { DropdownWidget, TableWidget, UploadWidget, ChartWidget } from '@/utils/widget.js'
import { ModelDeploy } from '@/api/gptController.js' import { ModelInstance } from '@/api/gptController.js'
// import editOrAdd from './dialog/editOrAdd'; // import editOrAdd from './dialog/editOrAdd';
import particulars from './dialog/particulars' import particulars from './dialog/particulars'
...@@ -75,11 +75,11 @@ export default { ...@@ -75,11 +75,11 @@ export default {
// pageNum: 0, // pageNum: 0,
// pageSize: 0 // pageSize: 0
// }, // },
modelDeployDtoFilter: { modelId: this.tableItem.modelId } modelInstanceDtoFilter: { modelId: this.tableItem.modelId }
} }
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
ModelDeploy.list(this, params) ModelInstance.list(this, params)
.then((res) => { .then((res) => {
resolve({ resolve({
dataList: res.data.dataList, dataList: res.data.dataList,
...@@ -112,7 +112,7 @@ export default { ...@@ -112,7 +112,7 @@ export default {
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
let params = { versionId: item.versionId } let params = { versionId: item.versionId }
ModelDeploy.delete(this, params) ModelInstance.delete(this, params)
.then((res) => { .then((res) => {
this.$message.success('删除成功') this.$message.success('删除成功')
this.refresh() this.refresh()
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
/* eslint-disable-next-line */ /* eslint-disable-next-line */
import { DropdownWidget, TableWidget, UploadWidget, ChartWidget } from '@/utils/widget.js' import { DropdownWidget, TableWidget, UploadWidget, ChartWidget } from '@/utils/widget.js'
import { ModelDeploy } from '@/api/gptController.js' import { ModelInstance } from '@/api/gptController.js'
// import editOrAdd from './dialog/editOrAdd'; // import editOrAdd from './dialog/editOrAdd';
import particulars from './dialog/particulars' import particulars from './dialog/particulars'
...@@ -75,11 +75,11 @@ export default { ...@@ -75,11 +75,11 @@ export default {
// pageNum: 0, // pageNum: 0,
// pageSize: 0 // pageSize: 0
// }, // },
modelDeployDtoFilter: { modelId: this.tableItem.modelId } modelInstanceDtoFilter: { modelId: this.tableItem.modelId }
} }
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
ModelDeploy.list(this, params) ModelInstance.list(this, params)
.then((res) => { .then((res) => {
resolve({ resolve({
dataList: res.data.dataList, dataList: res.data.dataList,
...@@ -112,7 +112,7 @@ export default { ...@@ -112,7 +112,7 @@ export default {
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
let params = { versionId: item.versionId } let params = { versionId: item.versionId }
ModelDeploy.delete(this, params) ModelInstance.delete(this, params)
.then((res) => { .then((res) => {
this.$message.success('删除成功') this.$message.success('删除成功')
this.refresh() this.refresh()
......
...@@ -41,8 +41,6 @@ export default { ...@@ -41,8 +41,6 @@ export default {
mounted() { mounted() {
this.intFrom() this.intFrom()
this.getTaskList()
// this.getTuningRun()
}, },
methods: { methods: {
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
<el-form-item label-width="0px"> <el-form-item label-width="0px">
<el-button class="add" type="primary" icon="el-icon-plus" :size="defaultFormItemSize" @click="add">创建应用</el-button> <el-button class="add" type="primary" icon="el-icon-plus" :size="defaultFormItemSize" @click="add">创建应用</el-button>
</el-form-item> </el-form-item>
<el-form-item label="应用名称" prop="formFilter.modelName" label-width="120px"> <el-form-item label="应用名称" prop="formFilter.apiName" label-width="120px">
<el-input class="filter-item" v-model="myDataSetPage.formFilter.apiName" :clearable="true" placeholder="应用名称" /> <el-input class="filter-item" v-model="myDataSetPage.formFilter.apiName" :clearable="true" placeholder="应用名称" />
</el-form-item> </el-form-item>
</filter-box> </filter-box>
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
<vxe-column field="secretKey" title="Secret Key"></vxe-column> <vxe-column field="secretKey" title="Secret Key"></vxe-column>
<vxe-column field="remark" title="描述"></vxe-column> <vxe-column field="remark" title="描述"></vxe-column>
<vxe-column field="createTime" title="创建时间"></vxe-column> <vxe-column field="createTime" title="创建时间"></vxe-column>
<vxe-column field="operation" title="操作"> <vxe-column field="operation" title="操作" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <el-button <!-- <el-button
type="text" type="text"
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
@click="dataImport(scope.row)" @click="dataImport(scope.row)"
>导入</el-button >导入</el-button
> --> > -->
<el-button type="text" icon="el-icon-delete" :size="defaultFormItemSize" @click="del(scope.row)">删除</el-button> <el-button type="text" icon="el-icon-delete" :size="defaultFormItemSize" @click="del(scope.row)">删除</el-button>
</template> </template>
</vxe-column> </vxe-column>
</vxe-table> </vxe-table>
...@@ -122,8 +122,7 @@ export default { ...@@ -122,8 +122,7 @@ export default {
} }
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
ApiManage ApiManage.list(this, params)
.list(this, params)
.then((res) => { .then((res) => {
resolve({ resolve({
dataList: res.data.dataList, dataList: res.data.dataList,
...@@ -159,9 +158,8 @@ export default { ...@@ -159,9 +158,8 @@ export default {
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
let params = { kgId: item.kgId } let params = { apiId: item.apiId }
ApiManage ApiManage.delete(this, params)
.delete(this, params)
.then((res) => { .then((res) => {
this.$message.success('删除成功') this.$message.success('删除成功')
this.refresh() this.refresh()
...@@ -173,6 +171,7 @@ export default { ...@@ -173,6 +171,7 @@ export default {
}, },
refresh(reloadData = false) { refresh(reloadData = false) {
if (reloadData) { if (reloadData) {
console.log(123)
this.myDataSetPage.tableData.impl.refreshTable(true, 1) this.myDataSetPage.tableData.impl.refreshTable(true, 1)
} else { } else {
this.myDataSetPage.tableData.impl.refreshTable() this.myDataSetPage.tableData.impl.refreshTable()
......
<!-- 配置-->
<template>
<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-select ref="serveCascader" v-model="form.pluginConfigDto.serviceId" placeholder="请选择">
<el-option v-for="item in serveList" :key="item.createUserId" :label="item.serviceName" :value="item.versionName">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="选择应用:">
<el-select ref="serveCascader" v-model="form.pluginConfigDto.apiId" placeholder="请选择">
<el-option v-for="item in appList" :key="item.apiId" :label="item.name" :value="item.apiId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="温度:">
<el-slider :min="0" :max="1" :step="0.1" v-model="form.pluginConfigDto.temperature" show-input>
</el-slider>
</el-form-item>
<el-form-item label="多样性:">
<el-slider :min="0" :max="1" :step="0.1" v-model="form.pluginConfigDto.diversity" show-input>
</el-slider>
</el-form-item>
<el-form-item label="重复惩罚:">
<el-slider :min="0" :max="2" :step="0.1" v-model="form.pluginConfigDto.duplicatePenalty" show-input>
</el-slider>
</el-form-item>
<el-form-item label="提示词:">
<el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4}" placeholder="请输入提示词" v-model="form.pluginConfigDto.prompt">
</el-input>
</el-form-item>
<el-form-item label="知识库:">
</el-form-item>
<el-form-item label="开场白:">
<el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4}" placeholder="请输入开场白" v-model="form.pluginConfigDto.openWords">
</el-input>
</el-form-item>
<el-form-item label="最长上下文:">
<el-slider :min="0" :max="10" :step="1" v-model="form.pluginConfigDto.maxLengthContext" show-input>
</el-slider>
</el-form-item>
<el-row type="flex" justify="end" class="dialog-btn-layer mt20">
<el-button :size="defaultFormItemSize" :plain="true" @click="onCancel(false)">取消</el-button>
<el-button type="primary" :size="defaultFormItemSize" @click="onSubmit">确定</el-button>
</el-row>
</el-form>
</template>
<script>
import { plugOrchestration, ModelInstance } from '@/api/gptController.js'
export default {
data() {
return {
serveList: [],
appList: [],
form: {
pluginConfigDto: {
apiId: undefined,
diversity: undefined,
duplicatePenalty: undefined,
knowledgeIds: [],
maxLengthContext: undefined,
openWords: undefined,
pluginKnowledgeId: undefined,
prompt: undefined,
remark: undefined,
serviceId: undefined
}
},
rules: {
'pluginConfigDto.pluginName': [{ required: true, message: '请输入名称', trigger: 'blur' }]
}
}
},
props: ['isEdit', 'item'],
components: {},
computed: {},
mounted() {
this.intFrom()
this.getServeList()
},
methods: {
intFrom() {
this.form = { ...this.form, ...this.item }
},
onCancel(isSuccess) {
if (this.observer != null) {
this.observer.cancel(isSuccess)
}
},
getServeList() {
ModelInstance.canUseList(this, {})
.then((res) => {
this.serveList = res?.data?.dataList
this.form.serviceId = this.serveList[0].serviceId
})
.catch((e) => {
console.log(e)
})
},
getAppList() {
ModelInstance.canUseList(this, {})
.then((res) => {
this.appList = res?.data?.dataList
this.form.apiId = this.appList[0].apiId
})
.catch((e) => {
console.log(e)
})
},
onSubmit() {
return new Promise((resolve, reject) => {
this.$refs['form'].validate((valid) => {
if (valid) {
let params = {}
params = { ...this.form }
if (this.isEdit) {
plugOrchestration
.update(this, params)
.then((res) => {
resolve(res)
this.$message.success('编辑成功')
this.onCancel(true)
})
.catch((e) => {
reject(e)
})
} else {
plugOrchestration
.add(this, params)
.then((res) => {
resolve(res)
this.$message.success('添加成功')
this.onCancel(true)
})
.catch((e) => {
reject(e)
})
}
} else {
// reject();
}
})
})
}
}
}
</script>
<style scoped>
.inputWidth {
width: 600px;
}
.title {
font-size: 20px;
margin-bottom: 16px;
}
.introduce {
font-size: 12px;
color: #909399;
}
</style>
...@@ -54,15 +54,12 @@ ...@@ -54,15 +54,12 @@
</vxe-column> </vxe-column>
<vxe-column field="remark" title="服务描述"></vxe-column> <vxe-column field="remark" title="服务描述"></vxe-column>
<vxe-column field="updateTime" title="更新时间"></vxe-column> <vxe-column field="updateTime" title="更新时间"></vxe-column>
<vxe-column field="operation" title="操作" width='120'> <vxe-column field="operation" title="操作" width='230'>
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <el-button <el-button type="text" icon="el-icon-setting" :size="defaultFormItemSize" @click="openConfig(scope.row)">配置</el-button>
type="text" <el-button type="text" icon="el-icon-menu" :size="defaultFormItemSize" @click="view(scope.row)">详情</el-button>
:size="defaultFormItemSize" <el-button type="text" icon="el-icon-remove-outline" :size="defaultFormItemSize" @click="offline(scope.row)">下线</el-button>
@click="dataImport(scope.row)" <el-button v-if="scope.row.status!==2" type="text" icon="el-icon-delete" :size="defaultFormItemSize" @click="del(scope.row)">删除</el-button>
>导入</el-button
> -->
<el-button type="text" icon="el-icon-delete" :size="defaultFormItemSize" @click="del(scope.row)">删除</el-button>
</template> </template>
</vxe-column> </vxe-column>
</vxe-table> </vxe-table>
...@@ -80,6 +77,7 @@ import { mapGetters } from 'vuex' ...@@ -80,6 +77,7 @@ import { mapGetters } from 'vuex'
import { DropdownWidget, TableWidget, UploadWidget, ChartWidget } from '@/utils/widget.js' import { DropdownWidget, TableWidget, UploadWidget, ChartWidget } from '@/utils/widget.js'
import { plugOrchestration } from '@/api/gptController.js' import { plugOrchestration } from '@/api/gptController.js'
import editOrAdd from './dialog/editOrAdd' import editOrAdd from './dialog/editOrAdd'
import config from './dialog/config'
export default { export default {
data() { data() {
return { return {
...@@ -167,7 +165,23 @@ export default { ...@@ -167,7 +165,23 @@ export default {
this.refresh() this.refresh()
}) })
}, },
openConfig(item) {
this.$dialog
.show(
'配置服务',
config,
{
area: ['100%', '100%']
},
{ isEdit: false, item }
)
.then((res) => {
this.refresh()
})
.catch((e) => {
this.refresh()
})
},
del(item) { del(item) {
this.$confirm('是否确认删除', '提示', { this.$confirm('是否确认删除', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
...@@ -186,6 +200,25 @@ export default { ...@@ -186,6 +200,25 @@ export default {
}) })
}) })
}, },
offline(item) {
this.$confirm('是否确认下线', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let params = { pluginId: item.pluginId }
plugOrchestration
.offline(this, params)
.then((res) => {
this.$message.success('成功下线')
this.refresh()
})
.catch((e) => {
console.log(e)
})
})
},
view(item) {},
refresh(reloadData = false) { refresh(reloadData = false) {
if (reloadData) { if (reloadData) {
this.myDataSetPage.tableData.impl.refreshTable(true, 1) this.myDataSetPage.tableData.impl.refreshTable(true, 1)
......
...@@ -121,7 +121,7 @@ ...@@ -121,7 +121,7 @@
</template> </template>
<script> <script>
import { KnowledgeManage, MyModel, ModelVersion, TemplateController, ModelDeployment, KnowledgeGraph } from '@/api/gptController.js' import { KnowledgeManage, MyModel, ModelVersion, TemplateController, ModelInstance, KnowledgeGraph } from '@/api/gptController.js'
import promptWordTemplate from '../promptWordTemplate' import promptWordTemplate from '../promptWordTemplate'
export default { export default {
data() { data() {
...@@ -233,7 +233,7 @@ export default { ...@@ -233,7 +233,7 @@ export default {
}) })
}, },
getServeList() { getServeList() {
ModelDeployment.canUseList(this, {}) ModelInstance.canUseList(this, {})
.then((res) => { .then((res) => {
this.serveList = res?.data?.dataList this.serveList = res?.data?.dataList
this.form.model_name = this.serveList[0].versionName this.form.model_name = this.serveList[0].versionName
......
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