【功能新增】AI:知识库文档上传:70%,SplitStep 已完成

This commit is contained in:
YunaiV 2025-03-01 11:41:07 +08:00
parent de41b6cdba
commit 809fb9fdfc
3 changed files with 49 additions and 9 deletions

View File

@ -25,19 +25,27 @@ export const KnowledgeDocumentApi = {
},
// 新增知识库文档(单个)
createKnowledgeDocument: async (data: KnowledgeDocumentVO) => {
createKnowledgeDocument: async (data: any) => {
return await request.post({ url: `/ai/knowledge/document/create`, data })
},
// 新增知识库文档(批量
// 新增知识库文档(多个
createKnowledgeDocumentList: async (data: any) => {
return await request.post({ url: `/ai/knowledge/document/create-list`, data })
},
// // 修改AI 知识库文档
// updateKnowledgeDocument: async (data: KnowledgeDocumentVO) => {
// return await request.put({ url: `/ai/knowledge/document/update`, data })
// },
// 修改知识库文档
updateKnowledgeDocument: async (data: any) => {
return await request.put({ url: `/ai/knowledge/document/update`, data })
},
// 修改知识库文档状态
updateKnowledgeDocumentStatus: async (data: any) => {
return await request.put({
url: `/ai/knowledge/document/update-status`,
data
})
},
// 删除知识库文档
deleteKnowledgeDocument: async (id: number) => {

View File

@ -22,7 +22,7 @@
<div class="segment-settings mb-20px">
<el-form label-width="120px">
<el-form-item label="最大 Token 数">
<el-input-number v-model="modelData.segmentMaxTokens" :min="100" :max="2000" />
<el-input-number v-model="modelData.segmentMaxTokens" :min="1" :max="2048" />
</el-form-item>
</el-form>
</div>
@ -38,6 +38,9 @@
<div class="flex items-center cursor-pointer">
<Icon icon="ep:document" class="text-danger mr-5px" />
<span>{{ currentFile?.name || '请选择文件' }}</span>
<span v-if="currentFile?.segments" class="ml-5px text-gray-500 text-12px">
({{ currentFile.segments.length }}个分片)
</span>
<Icon icon="ep:arrow-down" class="ml-5px" />
</div>
<template #dropdown>
@ -48,6 +51,9 @@
@click="selectFile(index)"
>
{{ file.name }}
<span v-if="file.segments" class="ml-5px text-gray-500 text-12px">
({{ file.segments.length }}个分片)
</span>
</el-dropdown-item>
</el-dropdown-menu>
</template>
@ -182,7 +188,7 @@ const handleSave = async () => {
try {
if (modelData.value.id) {
//
modelData.value.ids = await KnowledgeDocumentApi.createKnowledgeDocumentList({
modelData.value.ids = await KnowledgeDocumentApi.updateKnowledgeDocument({
id: modelData.value.id,
segmentMaxTokens: modelData.value.segmentMaxTokens
})

View File

@ -53,7 +53,13 @@
<el-table-column label="召回次数" align="center" prop="retrievalCount" />
<el-table-column label="是否启用" align="center" prop="status">
<template #default="scope">
<dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.status" />
<el-switch
v-model="scope.row.status"
:active-value="0"
:inactive-value="1"
@change="handleStatusChange(scope.row)"
:disabled="!checkPermi(['ai:knowledge:update'])"
/>
</template>
</el-table-column>
<el-table-column
@ -102,6 +108,8 @@ import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime'
import { KnowledgeDocumentApi, KnowledgeDocumentVO } from '@/api/ai/knowledge/document'
import { useRoute, useRouter } from 'vue-router'
import { checkPermi } from '@/utils/permission'
import { CommonStatusEnum } from '@/utils/constants'
// import KnowledgeDocumentForm from './KnowledgeDocumentForm.vue'
/** AI 知识库文档 列表 */
@ -177,6 +185,24 @@ const handleDelete = async (id: number) => {
} catch {}
}
/** 修改状态操作 */
const handleStatusChange = async (row: KnowledgeDocumentVO) => {
try {
//
const text = row.status === CommonStatusEnum.ENABLE ? '启用' : '禁用'
await message.confirm('确认要"' + text + '""' + row.name + '"文档吗?')
//
await KnowledgeDocumentApi.updateKnowledgeDocumentStatus({ id: row.id, status: row.status })
message.success(t('common.updateSuccess'))
//
await getList()
} catch {
//
row.status =
row.status === CommonStatusEnum.ENABLE ? CommonStatusEnum.DISABLE : CommonStatusEnum.ENABLE
}
}
/** 初始化 **/
onMounted(() => {
// ID