Ver código fonte

fix:模型管理系统配置模块新增接口调试

hanyang 1 ano atrás
pai
commit
a74ea6298c

+ 6 - 0
src/apis/rgflow-dify.js

@@ -427,6 +427,12 @@ export function getTtsModel() {
     method: 'get'
   });
 }
+export function getSystemModelItem(type) {
+  return request({
+    url: `/dify/console/api/workspaces/current/default-model?model_type=${type}`,
+    method: 'get'
+  });
+}
 // dify 系统模型配置
 export function updateSystemModelSettingDIFY(data) {
   return request({

+ 58 - 42
src/modules/model-manage/dify/SystemSetting.vue

@@ -17,31 +17,47 @@
       <a-form :model="form" :layout="layout">
         <a-form-item field="" label="系统推理模型">
           <a-select v-model="form.llm.model">
-            <a-option v-for="item in llm_options" :key="item.model" :Value="item.model">{{ item.model }}</a-option>
+            <a-optgroup :label="index" v-for="(item, index) in llm_options" :key="index">
+              <a-option v-for="obj in item" :key="obj.model" :value="obj.model">
+                {{ obj.model }}
+              </a-option>
+            </a-optgroup>
           </a-select>
         </a-form-item>
         <a-form-item field="" label="Embedding 模型">
           <a-select v-model="form.embd.model">
-            <a-option v-for="item in Embedding_options" :key="item.model" :Value="item.model">{{
-              item.model
-            }}</a-option>
+            <a-optgroup :label="index" v-for="(item, index) in Embedding_options" :key="index">
+              <a-option v-for="obj in item" :key="obj.model" :value="obj.model">
+                {{ obj.model }}
+              </a-option>
+            </a-optgroup>
           </a-select>
         </a-form-item>
         <a-form-item field="" label="Rerank 模型">
           <a-select v-model="form.rerank.model">
-            <a-option v-for="item in rarank_options" :key="item.model" :Value="item.model">{{ item.model }}</a-option>
+            <a-optgroup :label="index" v-for="(item, index) in rarank_options" :key="index">
+              <a-option v-for="obj in item" :key="obj.model" :value="obj.model">
+                {{ obj.model }}
+              </a-option>
+            </a-optgroup>
           </a-select>
         </a-form-item>
         <a-form-item field="" label="语音转文本模型">
           <a-select v-model="form.speech2txt.model">
-            <a-option v-for="item in speech2text_options" :key="item.model" :Value="item.model">{{
-              item.model
-            }}</a-option>
+            <a-optgroup :label="index" v-for="(item, index) in speech2text_options" :key="index">
+              <a-option v-for="obj in item" :key="obj.model" :value="obj.model">
+                {{ obj.model }}
+              </a-option>
+            </a-optgroup>
           </a-select>
         </a-form-item>
         <a-form-item field="" label="文本转语音模型">
           <a-select v-model="form.tts.model">
-            <a-option v-for="item in tts_options" :key="item.model" :Value="item.model">{{ item.model }}</a-option>
+            <a-optgroup :label="index" v-for="(item, index) in tts_options" :key="index">
+              <a-option v-for="obj in item" :key="obj.model" :value="obj.model">
+                {{ obj.model }}
+              </a-option>
+            </a-optgroup>
           </a-select>
         </a-form-item>
       </a-form>
@@ -57,7 +73,8 @@ import {
   getRarankModel,
   getSpeech2TextModel,
   getTtsModel,
-  updateSystemModelSettingDIFY
+  updateSystemModelSettingDIFY,
+  getSystemModelItem
 } from '../../../apis/rgflow-dify';
 import { Message } from '@arco-design/web-vue';
 const props = defineProps({
@@ -114,6 +131,13 @@ const rarank_options = ref([]);
 const speech2text_options = ref([]);
 const tts_options = ref([]);
 
+function filterDataByModelType(data, modelType) {
+  const result = {};
+  data.forEach((item) => {
+    result[item.provider] = item.models;
+  });
+  return result;
+}
 const updateSystemModelSettingDIFYFun = async (data) => {
   loading.value = true;
   try {
@@ -131,14 +155,8 @@ const updateSystemModelSettingDIFYFun = async (data) => {
 const getSystemModelFun = async () => {
   try {
     const res = await getSystemModel();
-
     if (res.data) {
-      llm_options.value = res.data[0]?.models || [];
-      form.value.llm.provider = res.data.provider;
-      if (llm_options.value.length) {
-        form.value.llm.model = llm_options.value[0].model;
-        form.value.llm.model_type = llm_options.value[0].model_type;
-      }
+      llm_options.value = filterDataByModelType(res.data) || {};
     }
   } catch (e) {
     console.log(e);
@@ -148,12 +166,7 @@ const getEmbeddingModelFun = async () => {
   try {
     const res = await getEmbeddingModel();
     if (res.data) {
-      form.value.embd.provider = res.data.provider;
-      Embedding_options.value = res.data[0]?.models || [];
-      if (Embedding_options.value.length) {
-        form.value.embd.model = Embedding_options.value[0].model;
-        form.value.embd.model_type = Embedding_options.value[0].model_type;
-      }
+      Embedding_options.value = filterDataByModelType(res.data) || {};
     }
   } catch (e) {
     console.log(e);
@@ -163,12 +176,7 @@ const getRarankModelFun = async () => {
   try {
     const res = await getRarankModel();
     if (res.data) {
-      rarank_options.value = res.data[0]?.models || [];
-      form.value.rerank.provider = res.data.provider;
-      if (rarank_options.value.length) {
-        form.value.rerank.model = rarank_options.value[0].model;
-        form.value.rerank.model_type = rarank_options.value[0].model_type;
-      }
+      rarank_options.value = filterDataByModelType(res.data) || {};
     }
   } catch (e) {
     console.log(e);
@@ -178,12 +186,7 @@ const getSpeech2TextModelFun = async () => {
   try {
     const res = await getSpeech2TextModel();
     if (res.data) {
-      form.value.speech2txt.provider = res.data.provider;
-      speech2text_options.value = res.data[0]?.models || [];
-      if (speech2text_options.value.length) {
-        form.value.speech2txt.model = speech2text_options.value[0].model;
-        form.value.speech2txt.model_type = speech2text_options.value[0].model_type;
-      }
+      speech2text_options.value = filterDataByModelType(res.data) || {};
     }
   } catch (e) {
     console.log(e);
@@ -193,24 +196,37 @@ const getTtsModelFun = async () => {
   try {
     const res = await getTtsModel();
     if (res.data) {
-      form.value.tts.provider = res.data.provider;
-      tts_options.value = res.data[0]?.models || [];
-      if (tts_options.value.length) {
-        form.value.tts.model = tts_options.value[0].model;
-        form.value.tts.model_type = tts_options.value[0].model_type;
-      }
+      tts_options.value = filterDataByModelType(res.data) || {};
+    }
+  } catch (e) {
+    console.log(e);
+  }
+};
+const getSystemModelItemFun = async (type, form_type) => {
+  try {
+    const res = await getSystemModelItem(type, form_type);
+    if (res.data) {
+      form.value[form_type].provider = res.data.provider.provider;
+      form.value[form_type].model = res.data.model;
+      form.value[form_type].model_type = res.data.model_type;
     }
   } catch (e) {
     console.log(e);
   }
 };
-
 onMounted(async () => {
+  loading.value = true;
   await getSystemModelFun();
   await getEmbeddingModelFun();
   await getRarankModelFun();
   await getSpeech2TextModelFun();
   await getTtsModelFun();
+  await getSystemModelItemFun('llm', 'llm');
+  await getSystemModelItemFun('text-embedding', 'embd');
+  await getSystemModelItemFun('speech2text', 'speech2text');
+  await getSystemModelItemFun('rerank', 'rerank');
+  await getSystemModelItemFun('tts', 'tts');
+  loading.value = false;
 });
 </script>
 <style scoped lang="css"></style>

+ 2 - 2
vite.config.mjs

@@ -47,8 +47,8 @@ export default defineConfig(({ mode }) => {
         },
 
         '/dify': {
-          target: 'http://192.168.20.119:28003/',
-          // target: 'http://47.96.40.148:8163',
+          // target: 'http://192.168.20.119:28003/',
+          target: 'http://47.96.40.148:8163',
           changeOrigin: true,
           secure: false,
           ws: true,