From 6d453537c8acf92ea5d9decbf6744df07f00efb1 Mon Sep 17 00:00:00 2001
From: liudong <liudong>
Date: 星期六, 03 八月 2024 22:29:25 +0800
Subject: [PATCH] 智能体管理的页面开发和功能开发

---
 src/views/dmx/IntelligentAgent/components/editAgent.vue |  149 ++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 134 insertions(+), 15 deletions(-)

diff --git a/src/views/dmx/IntelligentAgent/components/editAgent.vue b/src/views/dmx/IntelligentAgent/components/editAgent.vue
index 813ca79..f4c81de 100644
--- a/src/views/dmx/IntelligentAgent/components/editAgent.vue
+++ b/src/views/dmx/IntelligentAgent/components/editAgent.vue
@@ -1,6 +1,6 @@
 
 <template>
-  <a-button  v-if="typeAngint=='edit'" type="text" size="small" @click="handleClick">
+  <a-button  v-if="typeAngint=='edit'" type="text" size="small" @click="editClick">
     <template #icon>
       <icon-tool />
     </template>
@@ -20,22 +20,38 @@
         <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;background: #ffffff;color: #666666"  />
           </div>
 
         </div>
         <div style="background:#eeeeee;width: 50%;">
           <a-form ref="formRef" :rules="rules" :model="form" @submit="handleSubmit"  layout="vertical" >
-
             <a-collapse :default-active-key="['1']">
-              <a-collapse-item header="AI妯″瀷閰嶇疆" 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="寮�鍦哄紩瀵�" :key="'2'">
+              <a-collapse-item header="AI妯″瀷閰嶇疆" key="1">
+                <a-space direction="vertical" size="large">
+                  <a-select :size="'large'" v-model="form.llm_id" :style="{width:'25rem'}" placeholder="璇烽�夋嫨 ...">
+                    <a-optgroup  :label="index" v-for="(item,index) in modelList" :key=index>
+                      <a-option
+                        v-for="(obj) in item"
+                        :key='obj.fid'
+                        :value="obj.llm_id"
+                      >
+                        {{obj.llm_name}}
+                      </a-option>
+                    </a-optgroup>
+                  </a-select>
+                </a-space>
+              </a-collapse-item>
+              <a-collapse-item header="寮�鍦哄紩瀵�" :key="'2'" disabled>
 
               </a-collapse-item>
               <a-collapse-item header="鐭ヨ瘑搴�" key="3">
-
+                <a-select v-model="form.kb_ids" :style="{width:'25rem'}" placeholder="璇烽�夋嫨 ..." multiple >
+                  <a-option v-for="(item) in tabs" :key="item.id"  :value="item.id">{{item.name}}</a-option>
+                </a-select>
               </a-collapse-item>
               <a-collapse-item header="宸ュ叿" key="4" disabled>
               </a-collapse-item>
@@ -44,7 +60,7 @@
             </a-collapse>
 
             <a-form-item>
-              <div style="position: absolute;right: 10px;top: 10px">
+              <div style="position: absolute;right: 10px;top: 0px;z-index: 99999">
 <!--                <a-button @click="visible = false">鍙栨秷</a-button>-->
                 <a-button style="margin-left: 10px" type="primary" html-type="submit">淇濆瓨</a-button>
               </div>
@@ -85,16 +101,60 @@
 <script lang="ts" setup>
 import { onMounted, onBeforeMount, reactive, ref, nextTick } from "vue";
 import { IconSend } from "@arco-design/web-vue/es/icon";
+import { queryKbList, queryModelList } from "@/api/kbList";
+import useLoading from "@/hooks/loading";
+import { dialogSet } from "@/api/Agent";
+import { Message } from "@arco-design/web-vue";
+const {  setLoading } = useLoading(true);
 const props =  defineProps(['typeAngint','formData'])
 const visible = ref(false);
 const loading = ref(false);
 const form = reactive({
-
+  name: "",
+  icon: "",
+  language: "English",
+  prompt_config: {
+    empty_response: "",
+    prologue: "浣犲ソ锛� 鎴戞槸浣犵殑鍔╃悊锛屾湁浠�涔堝彲浠ュ府鍒颁綘鐨勫悧锛�",
+    quote: true,
+    self_rag: true,
+    system: "绀轰緥锛歕n" +
+      "浣犳槸 XX锛屽叿鏈� XX 缁忛獙锛屾搮闀� XX锛屸�n" +
+      "浣犵殑浠诲姟鏄� XX 锛岄渶瑕佹寜鐓т互涓嬫楠ゆ墽琛岋細\n" +
+      "1. XX\n" +
+      "2. XX\n" +
+      "3. 鈥n",
+    parameters: [
+      {
+        "key": "knowledge",
+        "optional": false
+      }
+    ]
+  },
+  kb_ids: [
+    "985eda244efc11ef9a7a0242ac120006"
+  ],
+  llm_id: "qwen-plus",
+  llm_setting: {
+    temperature: 0.1,
+    top_p: 0.3,
+    presence_penalty: 0.4,
+    frequency_penalty: 0.7,
+    max_tokens: 512
+  },
+  similarity_threshold: 0.2,
+  vector_similarity_weight: 0.30000000000000004,
+  top_n: 8
 });
+const system = ref('');
+const embdId = ref('');
+const modelList = ref({});
+const renderData = ref([]);
 const formRef = ref(null);
+let tabs = ref([])
 const height = ref('calc(100vh - 150px)')
 const heightrg = ref('calc(100vh - 100px)')
-
+const emit =  defineEmits(['cancelModal'])
 const rules = {
   name: [
     {
@@ -105,15 +165,42 @@
 }
 
 
-const handleSubmit = ({values, errors}) => {
-  console.log('values:', values, '\nerrors:', errors)
+const handleSubmit = async({values, errors}) => {
+  // console.log('values:', values, '\nerrors:', errors)
+  let title = '鍒涘缓鎴愬姛';
+  let formNew = {...form}
+  if(props.typeAngint == 'edit'){
+    formNew.dialog_id = form.id;
+    delete formNew.id;
+    delete formNew.off;
+    title = '淇敼鎴愬姛';
+  }
+
+  const data = await dialogSet(formNew);
+  if(data.code == 0){
+    Message.success(title);
+    handleCancel()
+
+  }
+
 }
+
+const editClick = (data) => {
+  visible.value = true;
+
+  console.log(props.formData);
+  Object.assign(form,props.formData);
+  console.log(form);
+  system.value = form.prompt_config.system;
+
+};
 
 const handleClick = (data) => {
   visible.value = true;
   nextTick(()=>{
     Object.assign(form,data);
     console.log(form);
+    system.value = form.prompt_config.system;
   })
 };
 defineExpose({
@@ -132,12 +219,25 @@
 };
 const handleCancel = () => {
   visible.value = false;
+  emit('cancelModal')
 }
 
 const handleOpened =(el) => {
-  formRef.value.resetFields();
-}
+  // formRef.value.resetFields();
 
+
+}
+const queryModel = async (params) => {
+  try {
+    const data = await queryModelList(params);
+    console.log(data.data, '澶фā鍨嬪垪琛�');
+    modelList.value = data.data
+  } catch (err) {
+    // you can report use errorHandler or other
+  } finally {
+
+  }
+};
 const file = ref();
 
 const onChange = (_, currentFile) => {
@@ -150,8 +250,27 @@
   file.value = currentFile;
 };
 
-onBeforeMount(()=>{
 
+
+const knowledgeData = async (
+  params = { page: 1, page_size: 20 }
+) => {
+  setLoading(true);
+  try {
+    const { data } = await queryKbList(params);
+    console.log(data, 'data');
+    tabs.value = data;
+    console.log(tabs.value, 'tabs');
+  } catch (err) {
+    // you can report use errorHandler or other
+  } finally {
+    setLoading(false);
+  }
+};
+
+onBeforeMount(()=>{
+  queryModel({})
+  knowledgeData()
 })
 onMounted(()=>{
 

--
Gitblit v1.8.0