From 6a47a90801e8b7cc78a4ea5847ee0f9becf693c2 Mon Sep 17 00:00:00 2001 From: xs Date: Mon, 13 Oct 2025 09:02:07 +0800 Subject: [PATCH] =?UTF-8?q?1.5.9=E5=89=8D=E7=AB=AF=20AI=E6=99=BA=E8=83=BD?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=E5=A1=AB=E5=85=85=EF=BC=9AAI=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E4=BF=AE=E6=94=B9=E4=B8=BA=E4=BB=8E=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E5=8A=A8=E6=80=81=E4=BC=A0=E5=8F=82=20AI=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=A2=9E=E5=8A=A0=E6=9D=83=E9=99=90=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/ai/skill/aiAssistant/index.ts | 4 +- src/layout/components/TopBar/aiAssistant.vue | 44 ++++++++++++++++++-- src/views/ai/base/aiFormSetting/index.vue | 2 +- src/views/ai/base/aiModel/index.vue | 4 +- src/views/ai/skill/aiKnowledge/index.vue | 7 ++-- 5 files changed, 48 insertions(+), 13 deletions(-) diff --git a/src/api/ai/skill/aiAssistant/index.ts b/src/api/ai/skill/aiAssistant/index.ts index 9ecdeeb..55cb851 100644 --- a/src/api/ai/skill/aiAssistant/index.ts +++ b/src/api/ai/skill/aiAssistant/index.ts @@ -26,7 +26,7 @@ export const asr = (data: any) => { export const uploadFile = (data: any) => { return request({ - url: '/resource/oss/upload', + url: '/ai/asr/upload', method: 'post', data: data }); @@ -39,5 +39,3 @@ export const recognizeSpeechByUrl = (audioUrl: string) => { params: {audioUrl} }); }; - - diff --git a/src/layout/components/TopBar/aiAssistant.vue b/src/layout/components/TopBar/aiAssistant.vue index 35d390f..6b0e94e 100644 --- a/src/layout/components/TopBar/aiAssistant.vue +++ b/src/layout/components/TopBar/aiAssistant.vue @@ -37,10 +37,11 @@ placeholder="选择AI模型" size="small" popper-class="topIndex" - style="width: 120px" + style="width: 150px" :teleported="true" append-to="body" :disabled="aiThinking" + @change="onModelChange" > @@ -214,6 +215,8 @@ import {AiFormSettingVO, AiFormSettingDetailVO} from '@/api/ai/base/aiFormSettin import {aiFillForm, recognizeSpeechByUrl, uploadFile} from '@/api/ai/skill/aiAssistant'; import router from "@/router" import {useSharedDataStore} from '@/api/monitorData' +import {getAiModelJoinList} from "@/api/ai/skill/aiChat"; +import {AIModelVO} from "@/api/ai/skill/aiChat/types"; const sharedStore = useSharedDataStore() @@ -406,9 +409,41 @@ defineExpose({ }); +const getAiModelList = async () => { + // loading.value = true; + const res = await getAiModelJoinList({modelTypeId: 1}); + aiModelList.value = res.data; + await setDefaultAiModel(); + // console.log(res) + // platformList.value = res.data; + // loading.value = false; +} + +const setDefaultAiModel = async () => { + aiModelList.value.forEach((item: AIModelVO) => { + if (item.defaultFlag === "1") { + // alert(JSON.stringify(item)) + selectedModelId.value = item.modelId; + selectedPlatformId.value = item.platformId; + // provider.value = item.platformCode; + // console.log(item.platformIcon) + // platformIcon.value = item.platformIcon; + } + }) +} + +function onModelChange() { + const model = aiModelList.value.find(m => m.modelId === selectedModelId.value) + if (model) { + selectedPlatformId.value = model.platformId + // platformIcon.value = model.platformIcon; + } +} + watch(state, (newVal) => { if (newVal.isShowSearch) { loadForms() + getAiModelList(); } }); @@ -471,7 +506,7 @@ const handleSend = async (selectedText?: string) => { formSettingId: selectedFormSettingId.value, formSettingDetailList: aiFormSettingDetailListMap.value[selectedFormSettingId.value], modelId: selectedModelId.value, - platformId: 1 + platformId: selectedPlatformId.value } // chatList.value.push({ @@ -978,7 +1013,8 @@ const aiModelList = ref([ { modelId: 3, modelName: 'Claude-3' }, { modelId: 4, modelName: 'Gemini-Pro' } ]) -const selectedModelId = ref(1) // 默认选择第一个模型 +const selectedModelId = ref() // AI模型ID +const selectedPlatformId = ref() // AI平台ID // 新增:更多弹窗过滤输入 const moreFilterText = ref('') diff --git a/src/views/ai/base/aiFormSetting/index.vue b/src/views/ai/base/aiFormSetting/index.vue index 3e7ed82..0ef6455 100644 --- a/src/views/ai/base/aiFormSetting/index.vue +++ b/src/views/ai/base/aiFormSetting/index.vue @@ -35,7 +35,7 @@ 搜索 重置 - 新增 + 新增 diff --git a/src/views/ai/base/aiModel/index.vue b/src/views/ai/base/aiModel/index.vue index b12dbf4..ff6ddd6 100644 --- a/src/views/ai/base/aiModel/index.vue +++ b/src/views/ai/base/aiModel/index.vue @@ -62,8 +62,8 @@
基础模型:{{ item.baseModelName }}
- 编辑 - 删除 + 编辑 + 删除
diff --git a/src/views/ai/skill/aiKnowledge/index.vue b/src/views/ai/skill/aiKnowledge/index.vue index 972883c..df01f8b 100644 --- a/src/views/ai/skill/aiKnowledge/index.vue +++ b/src/views/ai/skill/aiKnowledge/index.vue @@ -77,8 +77,8 @@ 向量模型:{{ kb.modelName }}
- 编辑 - 删除 + 编辑 + 删除 检索
@@ -91,6 +91,7 @@ :active-value="'1'" :inactive-value="'0'" @change="(val: string) => handleStatusChange(kb, val)" + v-hasPermi="['ai:aiKnowledgeBase:edit']" @click.stop style="margin-left: 8px;" /> @@ -604,7 +605,7 @@ function onCreateDialogClose() { .kb-card-status-switch span { color: #fff; - background: #67c23a; + background: #a0c23a; border-radius: 4px; padding: 2px 10px; display: inline-block;