From cd629ebc2899c4bb30b51ce5f99a84574804f863 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 31 七月 2026 15:40:21 +0800
Subject: [PATCH] 银川 1.API密钥管理页面开发联调 2.模型管理页面开发联调 3.知识库管理页面开发联调 4.通知公告页面开发联调

---
 src/views/ai/knowledge/knowledge/retrieval/index.vue |   53 +++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 39 insertions(+), 14 deletions(-)

diff --git a/src/views/ai/knowledge/knowledge/retrieval/index.vue b/src/views/ai/knowledge/knowledge/retrieval/index.vue
index f7b4e4f..cdf76d6 100644
--- a/src/views/ai/knowledge/knowledge/retrieval/index.vue
+++ b/src/views/ai/knowledge/knowledge/retrieval/index.vue
@@ -1,4 +1,6 @@
 <script setup lang="ts">
+import type { AiKnowledgeSegmentApi } from '#/api/ai/knowledge/segment';
+
 import { onMounted, reactive, ref } from 'vue';
 import { useRoute, useRouter } from 'vue-router';
 
@@ -17,15 +19,24 @@
 import { getKnowledge } from '#/api/ai/knowledge/knowledge';
 import { searchKnowledgeSegment } from '#/api/ai/knowledge/segment';
 
+type RetrievalSegment = AiKnowledgeSegmentApi.KnowledgeSegment & {
+  expanded?: boolean;
+};
+
 /** 鐭ヨ瘑搴撴枃妗e彫鍥炴祴璇� */
 defineOptions({ name: 'KnowledgeDocumentRetrieval' });
 
 const route = useRoute();
 const router = useRouter();
 
-const loading = ref(false); // 鍔犺浇鐘舵��
-const segments = ref<any[]>([]); // 鍙洖缁撴灉
-const queryParams = reactive({
+const loading = ref(false);
+const segments = ref<RetrievalSegment[]>([]);
+const queryParams = reactive<{
+  id: number | undefined;
+  content: string;
+  topK: number;
+  similarityThreshold: number;
+}>({
   id: undefined,
   content: '',
   topK: 10,
@@ -38,6 +49,7 @@
     message.warning('璇疯緭鍏ユ煡璇㈡枃鏈�');
     return;
   }
+  if (queryParams.id == null) return;
 
   loading.value = true;
   segments.value = [];
@@ -49,15 +61,22 @@
       topK: queryParams.topK,
       similarityThreshold: queryParams.similarityThreshold,
     });
-    segments.value = data || [];
+    segments.value = (data || []) as RetrievalSegment[];
   } finally {
     loading.value = false;
   }
 }
 
 /** 鍒囨崲娈佃惤灞曞紑鐘舵�� */
-function toggleExpand(segment: any) {
+function toggleExpand(segment: RetrievalSegment) {
   segment.expanded = !segment.expanded;
+}
+
+/** 鑾峰彇鐩镐技搴﹀垎鏁扮殑鏍峰紡绫诲悕 */
+function getScoreClass(score: number) {
+  if (score > 0.8) return 'bg-green-50 text-green-600';
+  if (score >= 0.6) return 'bg-yellow-50 text-yellow-600';
+  return 'bg-gray-100 text-gray-400';
 }
 
 /** 鑾峰彇鐭ヨ瘑搴撻厤缃俊鎭� */
@@ -69,25 +88,30 @@
       queryParams.similarityThreshold =
         knowledge.similarityThreshold || queryParams.similarityThreshold;
     }
-  } catch {}
+  } catch {
+    // 鑾峰彇鐭ヨ瘑搴撻厤缃け璐ワ紝浣跨敤榛樿鍊�
+  }
 }
 
 /** 鍒濆鍖� */
 onMounted(() => {
-  // 濡傛灉鐭ヨ瘑搴� ID 涓嶅瓨鍦紝鏄剧ず閿欒鎻愮ず骞跺叧闂〉闈�
   if (!route.query.id) {
     message.error('鐭ヨ瘑搴� ID 涓嶅瓨鍦紝鏃犳硶杩涜鍙洖娴嬭瘯');
     router.back();
     return;
   }
-  queryParams.id = route.query.id as any;
-
-  // 鑾峰彇鐭ヨ瘑搴撲俊鎭苟璁剧疆榛樿鍊�
-  getKnowledgeInfo(queryParams.id as any);
+  const id = Number(route.query.id);
+  queryParams.id = id;
+  getKnowledgeInfo(id);
 });
 </script>
 <template>
   <Page auto-content-height>
+    <div class="mb-2">
+      <a-button type="default" @click="router.back()">
+        杩斿洖涓婁竴椤�
+      </a-button>
+    </div>
     <div class="flex w-full gap-4">
       <Card class="w-3/4 flex-1">
         <div class="mb-15">
@@ -106,7 +130,7 @@
               placeholder="璇疯緭鍏ユ枃鏈�"
             />
             <div class="absolute bottom-2 right-2 text-sm text-gray-400">
-              {{ queryParams.content?.length }} / 200
+              {{ queryParams.content?.length || 0 }} 瀛楃
             </div>
           </div>
           <div class="m-2 flex items-center">
@@ -165,9 +189,10 @@
                   {{ segment.tokens }} Token
                 </span>
                 <span
-                  class="whitespace-nowrap rounded-full bg-blue-50 px-2 py-1 text-sm text-blue-500"
+                  class="whitespace-nowrap rounded-full px-2 py-1 text-sm"
+                  :class="getScoreClass(segment.score ?? 0)"
                 >
-                  score: {{ segment.score }}
+                  score: {{ segment.score?.toFixed(4) }}
                 </span>
               </div>
               <div

--
Gitblit v1.9.3