From 5efb195a3e0c956c4b254408a8868368135eb773 Mon Sep 17 00:00:00 2001
From: zhangxiao <898441624@qq.com>
Date: 星期五, 16 八月 2024 14:11:52 +0800
Subject: [PATCH] fix: 模型修改
---
src/router/routes/modules/session.ts | 2
src/api/model.ts | 7 +
src/views/dmx/model/index.vue | 118 ++++++++++++++---------
src/views/dmx/agent/components/editAgent.vue | 129 ++++++++++++++++---------
yarn.lock | 2
src/views/dmx/model/components/addTableName.vue | 9 +
src/components/menu/index.vue | 7 +
src/views/dmx/model/components/addPageModel.vue | 2
src/router/routes/modules/authority.ts | 1
9 files changed, 176 insertions(+), 101 deletions(-)
diff --git a/src/api/model.ts b/src/api/model.ts
index a5eca7f..813d6e6 100644
--- a/src/api/model.ts
+++ b/src/api/model.ts
@@ -83,3 +83,10 @@
params,
});
}
+
+// 鑾峰彇妯″瀷鍒楄〃
+export function getFactories(params) {
+ return axios.get('/api/v1/llm/factories', {
+ params,
+ });
+}
diff --git a/src/components/menu/index.vue b/src/components/menu/index.vue
index 4485255..d7db1e6 100644
--- a/src/components/menu/index.vue
+++ b/src/components/menu/index.vue
@@ -31,6 +31,7 @@
const goto = (item: RouteRecordRaw) => {
// Open external link
+
if (regexUrl.test(item.path)) {
openWindow(item.path);
selectedKey.value = [item.name as string];
@@ -84,7 +85,8 @@
};
listenerRouteChange((newRoute) => {
const { requiresAuth, activeMenu, hideInMenu } = newRoute.meta;
- if (requiresAuth && (!hideInMenu || activeMenu)) {
+ // if (requiresAuth && (!hideInMenu || activeMenu)) {//闄ゅ幓杩欎袱涓垽鏂悗锛屽彲浠ユ甯稿睍寮�鑿滃崟
+ if (requiresAuth) {
const menuOpenKeys = findMenuOpenKeys(
(activeMenu || newRoute.name) as string
);
@@ -96,6 +98,7 @@
activeMenu || menuOpenKeys[menuOpenKeys.length - 1],
];
}
+ console.log(selectedKey.value, 48877);
}, true);
const setCollapse = (val: boolean) => {
if (appStore.device === 'desktop')
@@ -139,6 +142,7 @@
};
// selected-keys={selectedKey.value}
+ console.log(selectedKey.value, 68877);
return () => (
<a-menu
mode={topMenu.value ? 'horizontal' : 'vertical'}
@@ -147,6 +151,7 @@
show-collapse-button={appStore.device !== 'mobile'}
auto-open={false}
auto-open-selected={true}
+ selected-keys={selectedKey.value}
level-indent={34}
style="height: 100%;width:100%;"
onCollapse={setCollapse}
diff --git a/src/router/routes/modules/authority.ts b/src/router/routes/modules/authority.ts
index d848aa2..a7c28e5 100644
--- a/src/router/routes/modules/authority.ts
+++ b/src/router/routes/modules/authority.ts
@@ -10,6 +10,7 @@
requiresAuth: true,
icon: 'icon-lock',
order: 5,
+ activeMenu:false,
},
children: [
{
diff --git a/src/router/routes/modules/session.ts b/src/router/routes/modules/session.ts
index 3a43192..f22e482 100644
--- a/src/router/routes/modules/session.ts
+++ b/src/router/routes/modules/session.ts
@@ -19,7 +19,7 @@
requiresAuth: true,
hideInMenu:true,
roles: ['*'],
- activeMenu:'session'
+ // activeMenu:'session'
},
component:()=>import('@/views/sessionManager/index.vue'),
}
diff --git a/src/views/dmx/agent/components/editAgent.vue b/src/views/dmx/agent/components/editAgent.vue
index f10b761..86ea2e4 100644
--- a/src/views/dmx/agent/components/editAgent.vue
+++ b/src/views/dmx/agent/components/editAgent.vue
@@ -19,48 +19,87 @@
title-align="start"
fullscreen
>
- <div class="main-container">
- <div class="main-container-lf">
- <div style="padding: 10px;font-size: 16px;background: var(--color-neutral-3);">鏅鸿兘浣撻厤缃�</div>
- <div style="display: flex;width: 100%;" :style="{height:height}">
- <div style="width: 50%;height: 100%">
- <div style="padding: 10px;font-size: 12px;color: #2a2a2b;">鏅鸿兘浣撶敾鍍�</div>
- <div>
- <a-textarea v-model="system" placeholder="" disabled style="height: 400px;" />
+ <div class="main-container">
+ <div class="main-container-lf">
+ <div
+ style="
+ padding: 10px;
+ font-size: 16px;
+ background: var(--color-neutral-3);
+ "
+ >鏅鸿兘浣撻厤缃�</div
+ >
+ <div style="display: flex; width: 100%" :style="{ height: height }">
+ <div style="width: 50%; height: 100%">
+ <div style="padding: 10px; font-size: 12px; color: #2a2a2b"
+ >鏅鸿兘浣撶敾鍍�</div
+ >
+ <div>
+ <a-textarea
+ v-model="system"
+ placeholder=""
+ disabled
+ style="height: 400px"
+ />
+ </div>
</div>
-
- </div>
- <div style="width: 50%;border: 1px solid var(--color-neutral-3);background: var(--color-neutral-3)">
- <a-form ref="formRef" :rules="rules" :model="form" @submit="handleSubmit" layout="vertical" >
- <a-collapse :default-active-key="['1']">
- <a-collapse-item header="鍩虹淇℃伅" key="0" v-if="typeAngint == 'edit'">
- <a-input v-model="form.name" placeholder="璇疯緭鍏ユ櫤鑳戒綋鍚嶇О" style="width:200px;margin-top: 10px" />
- </a-collapse-item>
- <a-collapse-item header="AI妯″瀷閰嶇疆" key="1">
- <a-form-item field="llm_id" label="妯″瀷">
- <a-space direction="vertical" size="large">
- <a-select :size="'large'" field="llm_id" v-model="form.llm_id" :style="{width:'25rem'}" placeholder="璇烽�夋嫨 ...">
- <a-optgroup
- :label="index"
- v-for="(item, index) in modelList"
- :key="index"
+ <div
+ style="
+ width: 50%;
+ border: 1px solid var(--color-neutral-3);
+ background: var(--color-neutral-3);
+ "
+ >
+ <a-form
+ ref="formRef"
+ :rules="rules"
+ :model="form"
+ @submit="handleSubmit"
+ layout="vertical"
+ >
+ <a-collapse :default-active-key="['1']">
+ <a-collapse-item
+ header="鍩虹淇℃伅"
+ key="0"
+ v-if="typeAngint == 'edit'"
+ >
+ <a-input
+ v-model="form.name"
+ placeholder="璇疯緭鍏ユ櫤鑳戒綋鍚嶇О"
+ style="width: 200px; margin-top: 10px"
+ />
+ </a-collapse-item>
+ <a-collapse-item header="AI妯″瀷閰嶇疆" key="1">
+ <a-form-item field="llm_id" label="妯″瀷">
+ <a-space direction="vertical" size="large">
+ <a-select
+ :size="'large'"
+ field="llm_id"
+ v-model="form.llm_id"
+ :style="{ width: '25rem' }"
+ placeholder="璇烽�夋嫨 ..."
>
- <a-option
- v-for="obj in item"
- :key="obj.fid"
- :disabled="!obj.available"
- :value="obj.llm_id"
+ <a-optgroup
+ :label="index"
+ v-for="(item, index) in modelList"
+ :key="index"
>
- {{ obj.llm_name }}
- </a-option>
- </a-optgroup>
- </a-select>
- </a-space>
- </a-form-item>
+ <a-option
+ v-for="obj in item"
+ :key="obj.fid"
+ :disabled="!obj.available"
+ :value="obj.llm_id"
+ >
+ {{ obj.llm_name }}
+ </a-option>
+ </a-optgroup>
+ </a-select>
+ </a-space>
+ </a-form-item>
</a-collapse-item>
<a-collapse-item header="寮�鍦哄紩瀵�" :key="'2'" disabled>
</a-collapse-item>
- <a-collapse-item header="鐭ヨ瘑搴�" key="3">
+ <a-collapse-item header="鐭ヨ瘑搴�" key="3">
<a-form-item field="kb_ids" label="鐭ヨ瘑搴�">
<a-select
v-model="form.kb_ids"
@@ -72,7 +111,7 @@
v-for="item in tabs"
:key="item.id"
:value="item.id"
- >{{ item.name }}</a-option
+ >{{ item.name }}</a-option
>
</a-select>
</a-form-item>
@@ -119,8 +158,8 @@
import useLoading from '@/hooks/loading';
import { dialogSet } from '@/api/Agent';
import { Message } from '@arco-design/web-vue';
- import EventBus from "@/utils/EventBus";
- import sessionAction from "@/views/dmx/IntelligentAgent/components/sessionAction.vue";
+ import EventBus from '@/utils/EventBus';
+ import sessionAction from '@/views/dmx/IntelligentAgent/components/sessionAction.vue';
const { setLoading } = useLoading(true);
const props = defineProps(['typeAngint', 'formData']);
const visible = ref(false);
@@ -193,7 +232,7 @@
const handleSubmit = async ({ values, errors }) => {
// console.log('values:', values, '\nerrors:', errors)
- if(!errors){
+ if (!errors) {
let title = '鍒涘缓鎴愬姛';
let formNew = { ...form };
if (props.typeAngint == 'edit') {
@@ -224,9 +263,9 @@
visible.value = true;
nextTick(() => {
Object.assign(form, data);
- console.log(form,'浼犲��');
+ console.log(form, '浼犲��');
system.value = form.prompt_config.system;
- if(tabs.value && tabs.value.length>0){
+ if (tabs.value && tabs.value.length > 0) {
form.kb_ids = [tabs.value[0].id];
}
});
@@ -325,8 +364,8 @@
line-height: 40px;
}
}
- :deep(.arco-textarea-wrapper.arco-textarea-disabled){
- background: var(--color-bg-2);
- color: var(--color-text-1);
+ :deep(.arco-textarea-wrapper.arco-textarea-disabled) {
+ background: var(--color-bg-2);
+ color: var(--color-text-1);
}
</style>
diff --git a/src/views/dmx/model/components/addPageModel.vue b/src/views/dmx/model/components/addPageModel.vue
index eda4416..54f122d 100644
--- a/src/views/dmx/model/components/addPageModel.vue
+++ b/src/views/dmx/model/components/addPageModel.vue
@@ -28,7 +28,7 @@
<a-select v-model="form[item.key]" placeholder="璇烽�夋嫨">
<a-option
v-for="(list, v) in item.options"
- :value="list"
+ :value="v"
:label="v"
></a-option>
</a-select>
diff --git a/src/views/dmx/model/components/addTableName.vue b/src/views/dmx/model/components/addTableName.vue
index 7ae55bd..eb7dfe5 100644
--- a/src/views/dmx/model/components/addTableName.vue
+++ b/src/views/dmx/model/components/addTableName.vue
@@ -27,8 +27,8 @@
>
<a-option
v-for="(item, index) in modalList"
- :value="index"
- :label="index"
+ :value="item.name"
+ :label="item.name"
:disabled="item.added"
></a-option>
</a-select>
@@ -43,6 +43,7 @@
<a-textarea
v-model="form.tags"
placeholder="璇疯緭鍏ユā鍨嬫弿杩�"
+ :max-length="50"
allow-clear
/>
</a-form-item>
@@ -85,7 +86,7 @@
computed,
} from 'vue';
import {
- modelmyLlms,
+ getFactories,
addLlmFactory,
getLlmDetail,
editLlmFactory,
@@ -233,7 +234,7 @@
};
const modalList = ref([]);
const queryModel = async () => {
- const res = await modelmyLlms();
+ const res = await getFactories();
modalList.value = res.data;
};
queryModel();
diff --git a/src/views/dmx/model/index.vue b/src/views/dmx/model/index.vue
index 6c3bde1..ef1335c 100644
--- a/src/views/dmx/model/index.vue
+++ b/src/views/dmx/model/index.vue
@@ -30,11 +30,8 @@
<a-scrollbar
style="height: calc(100vh - 320px); overflow: auto"
>
- <div
- style="display: flex; flex-wrap: wrap"
- class="card_content"
- >
- <div class="card-wrap">
+ <div class="card_content">
+ <div class="card-wrap content_top">
<div class="card_wrap_box">
<div class="card_wrap_box_img">
<img
@@ -60,6 +57,11 @@
</a-card>
<div class="arco-btn-group">
<a-space class="btn-group">
+ <div class="create_time">
+ 鍒涘缓鏃堕棿锛�
+ <span> {{ item.create_date }} </span>
+ </div>
+
<!-- <editModel></editModel> -->
<a-button @click="handleDeleteModel(item, 1)">
鍒犻櫎
@@ -74,46 +76,51 @@
</div>
</div>
</div>
- <div
- class="card-wrap"
- v-for="(list, index) of item.llm"
- :key="index"
- >
- <div class="card_wrap_box">
- <div class="card_wrap_box_img">
- <img
- :style="{
- width: '100%',
- }"
- alt="鏆傛棤鍥剧墖"
- :src="list.logo ? httpUrl + list.logo : pdfImg"
- />
- <!-- src="https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/a20012a2d4d5b9db43dfc6a01fe508c0.png~tplv-uwbnlip3yd-webp.webp" -->
- </div>
- <a-card :bordered="false" hoverable>
- <div class="arco-card-body-content">
- <div class="arco-card-body-content-title">
- {{ list.name }}
- </div>
- <div class="arco-card-body-content-dec">{{
- list.type
- }}</div>
+ <div class="subset_list">
+ <div
+ class="card-wrap"
+ v-for="(list, index) of item.llm"
+ :key="index"
+ >
+ <div class="card_wrap_box">
+ <div class="card_wrap_box_img">
+ <img
+ :style="{
+ width: '100%',
+ }"
+ alt="鏆傛棤鍥剧墖"
+ :src="list.logo ? httpUrl + list.logo : pdfImg"
+ />
</div>
- </a-card>
- <div class="arco-btn-group">
- <a-space class="btn-group">
- <a-button @click="handleDeleteModel(list)">
- 鍒犻櫎
- </a-button>
- <!-- <a-button
+ <a-card :bordered="false" hoverable>
+ <div class="arco-card-body-content">
+ <div class="arco-card-body-content-title">
+ {{ list.name }}
+ </div>
+ <div class="arco-card-body-content-dec">{{
+ list.type
+ }}</div>
+ </div>
+ </a-card>
+ <div class="arco-btn-group">
+ <a-space class="btn-group">
+ <div class="create_time_list">
+ 鍒涘缓鏃堕棿锛�
+ <span> {{ list.create_date }} </span>
+ </div>
+ <a-button @click="handleDeleteModel(list)">
+ 鍒犻櫎
+ </a-button>
+ <!-- <a-button
type="primary"
@click="handleEditModel(list)"
>
缂栬緫
</a-button> -->
- <!-- <editModel></editModel> -->
- </a-space>
+ <!-- <editModel></editModel> -->
+ </a-space>
+ </div>
</div>
</div>
</div>
@@ -245,7 +252,6 @@
};
//缂栬緫妯″瀷瀛愮被
const handleEditModel = (val, type) => {
- console.log(val, 6766);
if (type == 1) {
tabShow.value = true;
editList.value = val;
@@ -263,6 +269,7 @@
//鍒犻櫎妯″瀷
const handleDeleteModel = (val, type) => {
+ const factory = tabKey.value;
if (type == 1) {
handleDelete(val);
} else {
@@ -272,7 +279,6 @@
okText: '纭畾',
cancelText: '鍙栨秷',
onOk: async () => {
- const factory = tabKey.value;
const res = await deleteLlm({
llm_factory: tabKey.value,
llm_name: val.name,
@@ -291,17 +297,15 @@
//鐖剁骇妯″瀷
const handleDelete = async (key: any) => {
- console.log(tabData.value[key]);
- if (tabData.value[key].llm.length > 0) {
+ if (tabData.value[key] && tabData.value[key].llm.length > 0) {
Message.error('璇峰厛鍒犻櫎瀛愭ā鍨�');
return;
}
- if (key !== 'key') {
- const res = await deleteLlmFactory(key);
- if ((res as any).code == 200) {
- Reflect.deleteProperty(tabData.value, key);
- queryModel();
- }
+
+ const res = await deleteLlmFactory(tabKey.value);
+ if ((res as any).code == 200) {
+ // Reflect.deleteProperty(tabData.value, tabKey.value);
+ queryModel();
}
};
@@ -340,6 +344,7 @@
loading.value = true;
tabData.value = Object.assign({}, tabData.value, res.data);
tabData.value = filterObject(tabData.value, 1);
+
tabKey.value = Object.keys(tabData.value)[0];
await getFactory();
};
@@ -477,6 +482,9 @@
font-weight: 400;
}
}
+ .content_top {
+ border-bottom: 1px solid #f0f0f0 !important;
+ }
.card_content {
.card_wrap_box_img {
// min-height: 200px;
@@ -488,12 +496,25 @@
object-fit: cover; /* 涓嶄細鍙樺舰锛屼絾鍙兘瑁佸壀鍥剧墖 */
}
}
+ .subset_list {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+ }
.card_wrap_box {
// position: relative;
.arco-btn-group {
position: absolute;
right: 10px;
top: 87%;
+ .create_time {
+ text-align: left;
+ width: 155px;
+ }
+ .create_time_list {
+ text-align: left;
+ width: 223px;
+ }
}
}
}
@@ -510,6 +531,7 @@
transform: translateY(-4px);
// box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.1);
}
+
:deep(.arco-card) {
height: 100%;
border-radius: 4px;
diff --git a/yarn.lock b/yarn.lock
index 2b1e84c..758b2fe 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5580,7 +5580,7 @@
moment@^2.30.1:
version "2.30.1"
- resolved "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz"
+ resolved "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae"
integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==
mozjpeg@^7.0.0:
--
Gitblit v1.8.0