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