From 8fc16c6f29bd098598a03e8306788d9b3d2a60ba Mon Sep 17 00:00:00 2001
From: yinbangzhong <zhongbangyin@126.com>
Date: 星期二, 27 八月 2024 16:04:41 +0800
Subject: [PATCH] agent

---
 src/views/dmx/model/components/addPageModel.vue |  183 +++++++++++++++++----------------------------
 1 files changed, 70 insertions(+), 113 deletions(-)

diff --git a/src/views/dmx/model/components/addPageModel.vue b/src/views/dmx/model/components/addPageModel.vue
index 21cd429..9003dcb 100644
--- a/src/views/dmx/model/components/addPageModel.vue
+++ b/src/views/dmx/model/components/addPageModel.vue
@@ -17,35 +17,33 @@
       :style="{ width: '90%', margin: '0 auto' }"
       layout="vertical"
     >
-      <div v-if="isType !== 1">
-        <a-form-item field="model_type" label="妯″瀷绫诲瀷">
-          <a-select v-model="form.model_type" placeholder="璇烽�夋嫨">
-            <a-option value="chat">chat</a-option>
-            <a-option value="embedding">embedding</a-option>
-          </a-select>
-        </a-form-item>
-        <a-form-item field="llm_name" label="妯″瀷鍚嶇О">
-          <a-input v-model="form.llm_name" placeholder="璇疯緭鍏ユā鍨嬪悕绉�" />
-        </a-form-item>
-
-        <!-- <a-form-item field="volc_ak" label="鐏北 ACCESS_KEY">
-          <a-input v-model="form.volc_ak" placeholder="璇疯緭鍏ョ伀灞� ACCESS_KEY" />
-          <a-button
-            type="primary"
-            @click="handleClick"
-            style="margin-left: 10px"
-          >
-            <template #icon>
-              <icon-plus />
-            </template>
-          </a-button>
-        </a-form-item>
-        <a-form-item field="volc_sk" label="鐏北 SECRET_KEY">
-          <a-input v-model="form.volc_sk" placeholder="璇疯緭鍏ョ伀灞� SECRET_KEY" />
-        </a-form-item> -->
-        <a-form-item field="api_base" label="鍩虹URL">
-          <a-input v-model="form.api_base" placeholder="璇疯緭鍏ュ熀纭�URL" />
-        </a-form-item>
+      <div>
+        <div v-for="(item, index) in form.formData.params" :key="index">
+          <div v-if="item.value_type === 'select'">
+            <a-form-item
+              :field="item.key"
+              :label="item.name"
+              :required="item.required"
+            >
+              <a-select v-model="form[item.key]" placeholder="璇烽�夋嫨">
+                <a-option
+                  v-for="(list, v) in item.options"
+                  :value="v"
+                  :label="v"
+                ></a-option>
+              </a-select>
+            </a-form-item>
+          </div>
+          <div v-else-if="item.value_type === 'input'">
+            <a-form-item
+              :field="item.key"
+              :label="item.name"
+              :required="item.required"
+            >
+              <a-input v-model="form[item.key]" placeholder="璇疯緭鍏�" />
+            </a-form-item>
+          </div>
+        </div>
         <!-- <a-form-item
           field="raptor"
           label="鏄惁鏀寔 Vision"
@@ -54,17 +52,22 @@
           <a-switch v-model="form.raptor" />
         </a-form-item> -->
         <a-form-item field="logo" label="妯″瀷鍥剧墖">
-          <a-space direction="vertical" :style="{ width: '100%' }">
+          <a-space
+            direction="vertical"
+            v-model="form.logo"
+            :style="{ width: '100%' }"
+          >
             <Upload
               :action="uploadAction"
               :limit="1"
               :url="form.urlS"
+              @handleRemove="deleteRemove"
               @update:fileList="updateFileList"
               @success="handleSuccess"
             ></Upload>
           </a-space>
         </a-form-item>
-        <a-form-item field="all_params" label="澧炲姞鍏跺畠鍙傛暟閰嶇疆">
+        <!-- <a-form-item field="all_params" label="澧炲姞鍏跺畠鍙傛暟閰嶇疆">
           <a-button
             type="primary"
             @click="handleAddClick"
@@ -74,7 +77,7 @@
               <icon-plus />
             </template>
           </a-button>
-        </a-form-item>
+        </a-form-item> -->
 
         <a-form-item v-for="(item, index) in form.addFomList" :key="index">
           <div class="addInput">
@@ -98,26 +101,6 @@
           </div>
         </a-form-item>
       </div>
-      <div v-else>
-        <a-form-item field="name" label="API-Key">
-          <a-input v-model="form.name" placeholder="API-Key" />
-        </a-form-item>
-        <a-form-item field="describe" label="Base-Url">
-          <a-input v-model="form.name" placeholder="Base-Url" />
-        </a-form-item>
-
-        <a-form-item field="section" label="妯″瀷鍥剧墖">
-          <a-space direction="vertical" :style="{ width: '100%' }">
-            <Upload
-              :action="uploadAction"
-              :limit="1"
-              :url="form.urlS"
-              @update:fileList="updateFileList"
-              @success="handleSuccess"
-            ></Upload>
-          </a-space>
-        </a-form-item>
-      </div>
 
       <a-form-item>
         <div style="width: 100%; text-align: right">
@@ -133,13 +116,13 @@
 
 <script lang="ts" setup>
   import { reactive, ref, computed, watch, watchEffect, onMounted } from 'vue';
-  import { addLlm, getLlmDetail, editLlm } from '@/api/model';
+  import { addLlm, getLlmDetail, editLlm, getFactoryDetail } from '@/api/model';
   import { Modal, Message } from '@arco-design/web-vue';
   import message from '@arco-design/web-vue/es/message';
   import { resolveUnref } from '@vueuse/core';
-  import { useUserStore } from '@/store';
+  import { userModelState } from '@/store';
 
-  const userStore = useUserStore();
+  const modelStore = userModelState();
 
   const addPageModelVisible = defineModel('show');
   const loading = ref(false);
@@ -168,10 +151,8 @@
   const form = reactive({
     size: 'medium',
     name: '',
+    formData: { logo: '' },
     llm_factory: '',
-    model_type: '',
-    province: 'haidian',
-    options: [],
     llm_name: '',
     api_base: '',
     volc_ak: '',
@@ -182,51 +163,26 @@
     slider: 5,
     score: 5,
     switch: false,
-    multiSelect: ['section one'],
-    treeSelect: '',
     raptor: false,
-    addFomList: [],
+    addFomList: <any[]>[],
   });
-  const form_ref = ref(null);
+
+  const form_ref = ref();
 
   const rules = {
-    model_type: [
+    logo: [
       {
         required: true,
-        message: '璇烽�夋嫨妯″瀷绫诲瀷',
-      },
-    ],
-    llm_name: [
-      {
-        required: true,
-        message: '鍚嶇О涓嶅厑璁镐负绌�',
-      },
-    ],
-    volc_sk: [
-      {
-        required: true,
-        message: '璇疯緭鍏olc_sk',
-      },
-    ],
-    volc_ak: [
-      {
-        required: true,
-        message: '璇疯緭鍏olc_ak',
-      },
-    ],
-    api_base: [
-      {
-        required: true,
-        message: '璇疯緭鍏pi_base',
+        message: '妯″瀷鍥剧墖涓嶈兘涓虹┖',
       },
     ],
   };
 
   const uploadAction = '/api/v1/llm/upload'; // 鏇挎崲涓轰綘鐨勪笂浼燗PI
   const fileList = ref([]);
-  const imageUrls = ref([]);
+  const imageUrls = ref<any[]>([]);
   const uploadUrl = ref([]);
-  const httpUrl = localStorage.getItem('httpUrl');
+  const httpUrl = modelStore.hrefUrl;
 
   const updateFileList = (newFileList) => {
     fileList.value = newFileList;
@@ -234,57 +190,49 @@
 
   const handleSuccess = (urls) => {
     uploadUrl.value = urls;
+    form.logo = urls[0];
 
     const urlsArr = urls.map((url) => {
       return httpUrl + url;
     });
     imageUrls.value = urlsArr; // 鎷垮埌涓婁紶鐨勫浘鐗囧湴鍧�
   };
+  const deleteRemove = () => {
+    form.logo = '';
+    uploadUrl.value = [];
+    imageUrls.value = [];
+  };
+
   const emit = defineEmits(['refresh-parent']);
   const handleSubmit = ({ values, errors }) => {
     const all_params = form.addFomList.map((item) => {
       return item.name + ':' + item.value;
     });
+    console.log(form, 9999);
     form_ref.value
       ?.validate()
       .then(async (res) => {
         if (!res) {
+          form.formData.logo = uploadUrl.value[0] || '';
+          form.llm_factory = editList.value.llm_factory;
+          delete form.formData;
           if (props.title == '缂栬緫') {
-            console.log(imageUrls.value, 999);
-            const data = await editLlm({
-              llm_factory: editList.value.llm_factory,
-              llm_name: form.llm_name,
-              model_type: form.model_type,
-              volc_ak: form.volc_ak,
-              volc_sk: form.volc_sk,
-              api_base: form.api_base,
-              all_params: all_params,
-              logo: uploadUrl.value[0],
-            });
+            const data = await editLlm(form);
 
             if ((data as any).code == 200) {
               message.success('娣诲姞鎴愬姛');
               addPageModelVisible.value = false;
-              emit('refresh-parent');
+              emit('refresh-parent', editList.value.llm_factory);
             } else {
               message.error('娣诲姞澶辫触');
             }
           } else {
-            const data = await addLlm({
-              llm_factory: editList.value.llm_factory,
-              llm_name: form.llm_name,
-              model_type: form.model_type,
-              volc_ak: form.volc_ak,
-              volc_sk: form.volc_sk,
-              api_base: form.api_base,
-              all_params: all_params,
-              logo: uploadUrl.value[0],
-            });
+            const data = await addLlm(form);
 
             if ((data as any).code == 200) {
               message.success('娣诲姞鎴愬姛');
               addPageModelVisible.value = false;
-              emit('refresh-parent');
+              emit('refresh-parent', editList.value.llm_factory);
             } else {
               message.error('娣诲姞澶辫触');
             }
@@ -372,6 +320,15 @@
 
     imageUrls.value.push(httpUrl + data.data.logo);
   };
+  const getFactory = async () => {
+    const { data } = await getFactoryDetail({
+      factory_name: editList.value.llm_factory,
+    });
+    form.formData = data;
+  };
+  onMounted(() => {
+    getFactory();
+  });
 
   watchEffect(() => {
     if (props.editList.name) {

--
Gitblit v1.8.0