知识库相关
This commit is contained in:
@@ -5,30 +5,42 @@ export interface knowledgeQueryParams {
|
||||
keyword?: string;
|
||||
pageNum: number;
|
||||
pageSize: number;
|
||||
datasetType?: number; // 1=文本,2=视频
|
||||
}
|
||||
|
||||
// 创建知识库参数
|
||||
export interface CreateknowledgeParams {
|
||||
name: string; // 必传
|
||||
datasetType: number; // 1=文本,2=视频
|
||||
description?: string; // 可选
|
||||
embeddingModel?: string; // 向量模型
|
||||
status?: string; // 状态
|
||||
}
|
||||
|
||||
// 更新知识库参数
|
||||
export interface UpdateknowledgeParams {
|
||||
id: string; // 必传
|
||||
name?: string; // 可选
|
||||
datasetType?: number; // 1=文本,2=视频
|
||||
description?: string; // 可选
|
||||
embeddingModel?: string; // 向量模型
|
||||
status?: string; // 状态
|
||||
}
|
||||
|
||||
// 数据集信息
|
||||
export interface knowledgeInfo {
|
||||
id?: string;
|
||||
name: string;
|
||||
datasetType?: number; // 1=文本,2=视频
|
||||
description?: string;
|
||||
fileCount?: number;
|
||||
totalSize?: number;
|
||||
createdAt?: string;
|
||||
updatedAt?: string;
|
||||
embeddingModel?: string; // 向量模型
|
||||
documentCount?: number; // 文档数量
|
||||
charCount?: number; // 字符数量
|
||||
status?: string; // 状态
|
||||
}
|
||||
|
||||
// 获取知识库列表
|
||||
|
||||
@@ -48,6 +48,42 @@ const messages = ref<Message[]>([
|
||||
time: '09:31',
|
||||
isUser: false,
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
content: '当然可以,这个系统提供了多种功能:日记、文件、快捷指令、快捷回复,以及技能管理和模型管理入口。你想先看哪一块?',
|
||||
time: '09:31',
|
||||
isUser: true,
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
content: '当然可以,这个系统提供了多种功能:日记、文件、快捷指令、快捷回复,以及技能管理和模型管理入口。你想先看哪一块?',
|
||||
time: '09:31',
|
||||
isUser: false,
|
||||
},
|
||||
{
|
||||
id: 6,
|
||||
content: '当然可以,这个系统提供了多种功能:日记、文件、快捷指令、快捷回复,以及技能管理和模型管理入口。你想先看哪一块?',
|
||||
time: '09:31',
|
||||
isUser: true,
|
||||
},
|
||||
{
|
||||
id: 7,
|
||||
content: '当然可以,这个系统提供了多种功能:日记、文件、快捷指令、快捷回复,以及技能管理和模型管理入口。你想先看哪一块?',
|
||||
time: '09:31',
|
||||
isUser: false,
|
||||
},
|
||||
{
|
||||
id: 8,
|
||||
content: '当然可以,这个系统提供了多种功能:日记、文件、快捷指令、快捷回复,以及技能管理和模型管理入口。你想先看哪一块?',
|
||||
time: '09:31',
|
||||
isUser: true,
|
||||
},
|
||||
{
|
||||
id: 9,
|
||||
content: '当然可以,这个系统提供了多种功能:日记、文件、快捷指令、快捷回复,以及技能管理和模型管理入口。你想先看哪一块?',
|
||||
time: '09:31',
|
||||
isUser: false,
|
||||
},
|
||||
]);
|
||||
</script>
|
||||
|
||||
|
||||
@@ -1,62 +1,61 @@
|
||||
<template>
|
||||
<el-dialog :title="isEdit ? '编辑数据集' : '新增数据集'" v-model="isShowDialog" width="600px" :close-on-click-modal="false" @close="onCancel">
|
||||
<el-form ref="formRef" :model="ruleForm" :rules="rules" label-width="100px">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="数据集名称" prop="name">
|
||||
<el-input v-model="ruleForm.name" placeholder="请输入数据集名称" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="数据集类型" prop="type">
|
||||
<el-select v-model="ruleForm.type" placeholder="请选择类型" clearable style="width: 100%">
|
||||
<el-option label="文本" value="text" />
|
||||
<el-option label="问答" value="qa" />
|
||||
<el-option label="表格" value="table" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="向量模型" prop="embeddingModel">
|
||||
<el-select v-model="ruleForm.embeddingModel" placeholder="请选择向量模型" clearable style="width: 100%">
|
||||
<el-option label="text-embedding-ada-002" value="text-embedding-ada-002" />
|
||||
<el-option label="text-embedding-3-small" value="text-embedding-3-small" />
|
||||
<el-option label="text-embedding-3-large" value="text-embedding-3-large" />
|
||||
<el-option label="bge-large-zh" value="bge-large-zh" />
|
||||
<el-option label="m3e-base" value="m3e-base" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="描述" prop="description">
|
||||
<el-input v-model="ruleForm.description" type="textarea" :rows="4" placeholder="请输入数据集描述" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20" v-if="isEdit">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="文档数量">
|
||||
<el-input :value="ruleForm.documentCount" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="字符数量">
|
||||
<el-input :value="ruleForm.charCount" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<span class="dialog-footer">
|
||||
<el-button @click="onCancel">取 消</el-button>
|
||||
<el-button type="primary" @click="onSubmit" :loading="submitLoading">{{ isEdit ? '保 存' : '创 建' }}</el-button>
|
||||
</span>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<el-dialog :title="isEdit ? '编辑数据集' : '新增数据集'" v-model="isShowDialog" width="600px" :close-on-click-modal="false" @close="onCancel">
|
||||
<el-form ref="formRef" :model="ruleForm" :rules="rules" label-width="100px">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="数据集名称" prop="name">
|
||||
<el-input v-model="ruleForm.name" placeholder="请输入数据集名称" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="数据集类型" prop="datasetType">
|
||||
<el-select v-model="ruleForm.datasetType" placeholder="请选择类型" clearable style="width: 100%">
|
||||
<el-option label="文本" :value="1" />
|
||||
<el-option label="视频" :value="2" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="向量模型" prop="embeddingModel">
|
||||
<el-select v-model="ruleForm.embeddingModel" placeholder="请选择向量模型" clearable style="width: 100%">
|
||||
<el-option label="text-embedding-ada-002" value="text-embedding-ada-002" />
|
||||
<el-option label="text-embedding-3-small" value="text-embedding-3-small" />
|
||||
<el-option label="text-embedding-3-large" value="text-embedding-3-large" />
|
||||
<el-option label="bge-large-zh" value="bge-large-zh" />
|
||||
<el-option label="m3e-base" value="m3e-base" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="描述" prop="description">
|
||||
<el-input v-model="ruleForm.description" type="textarea" :rows="4" placeholder="请输入数据集描述" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20" v-if="isEdit">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="文档数量">
|
||||
<el-input :value="ruleForm.documentCount" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="字符数量">
|
||||
<el-input :value="ruleForm.charCount" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<span class="dialog-footer">
|
||||
<el-button @click="onCancel">取 消</el-button>
|
||||
<el-button type="primary" @click="onSubmit" :loading="submitLoading">{{ isEdit ? '保 存' : '创 建' }}</el-button>
|
||||
</span>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
@@ -86,7 +85,7 @@ const submitLoading = ref(false);
|
||||
const ruleForm = reactive({
|
||||
id: '',
|
||||
name: '',
|
||||
type: 'text',
|
||||
datasetType: 1 as number,
|
||||
description: '',
|
||||
embeddingModel: 'text-embedding-ada-002',
|
||||
documentCount: 0,
|
||||
@@ -96,7 +95,7 @@ const ruleForm = reactive({
|
||||
// 表单验证规则
|
||||
const rules = reactive<FormRules>({
|
||||
name: [{ required: true, message: '请输入数据集名称', trigger: 'blur' }],
|
||||
type: [{ required: true, message: '请选择数据集类型', trigger: 'change' }],
|
||||
datasetType: [{ required: true, message: '请选择数据集类型', trigger: 'change' }],
|
||||
embeddingModel: [{ required: true, message: '请选择向量模型', trigger: 'change' }],
|
||||
});
|
||||
|
||||
@@ -104,7 +103,7 @@ const rules = reactive<FormRules>({
|
||||
const resetForm = () => {
|
||||
ruleForm.id = '';
|
||||
ruleForm.name = '';
|
||||
ruleForm.type = 'text';
|
||||
ruleForm.datasetType = 1;
|
||||
ruleForm.description = '';
|
||||
ruleForm.embeddingModel = 'text-embedding-ada-002';
|
||||
ruleForm.documentCount = 0;
|
||||
@@ -122,7 +121,7 @@ const openDialog = async (row?: any) => {
|
||||
const data = res.data || row;
|
||||
ruleForm.id = data.id || '';
|
||||
ruleForm.name = data.name || '';
|
||||
ruleForm.type = data.type || 'text';
|
||||
ruleForm.datasetType = data.datasetType || 1;
|
||||
ruleForm.description = data.description || '';
|
||||
ruleForm.embeddingModel = data.embeddingModel || 'text-embedding-ada-002';
|
||||
ruleForm.documentCount = data.documentCount || 0;
|
||||
@@ -132,7 +131,7 @@ const openDialog = async (row?: any) => {
|
||||
// 使用传入的row数据
|
||||
ruleForm.id = row.id || '';
|
||||
ruleForm.name = row.name || '';
|
||||
ruleForm.type = row.type || 'text';
|
||||
ruleForm.datasetType = row.datasetType || 1;
|
||||
ruleForm.description = row.description || '';
|
||||
ruleForm.embeddingModel = row.embeddingModel || 'text-embedding-ada-002';
|
||||
ruleForm.documentCount = row.documentCount || 0;
|
||||
@@ -161,7 +160,7 @@ const onSubmit = async () => {
|
||||
const data = {
|
||||
id: ruleForm.id || undefined,
|
||||
name: ruleForm.name,
|
||||
type: ruleForm.type,
|
||||
datasetType: ruleForm.datasetType,
|
||||
description: ruleForm.description,
|
||||
embeddingModel: ruleForm.embeddingModel,
|
||||
status: 'enable',
|
||||
|
||||
@@ -1,107 +1,106 @@
|
||||
<template>
|
||||
<div class="knowledge-knowledge-page">
|
||||
<div class="knowledge-knowledge-container">
|
||||
<el-card shadow="hover">
|
||||
<div class="knowledge-knowledge-search mb15">
|
||||
<el-form :inline="true">
|
||||
<el-form-item label="数据集名称">
|
||||
<el-input size="default" v-model="tableData.param.keyword" placeholder="请输入数据集名称" clearable style="width: 200px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="数据集类型">
|
||||
<el-select size="default" v-model="tableData.param.type" placeholder="请选择类型" clearable style="width: 150px">
|
||||
<el-option label="文本" value="text" />
|
||||
<el-option label="问答" value="qa" />
|
||||
<el-option label="表格" value="table" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态">
|
||||
<el-select size="default" v-model="tableData.param.status" placeholder="请选择状态" clearable style="width: 120px">
|
||||
<el-option label="启用" value="enable" />
|
||||
<el-option label="禁用" value="disable" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button size="default" type="primary" @click="getknowledgeList">
|
||||
<el-icon><ele-Search /></el-icon>
|
||||
查询
|
||||
</el-button>
|
||||
<el-button size="default" @click="onResetQuery">
|
||||
<el-icon><ele-Refresh /></el-icon>
|
||||
重置
|
||||
</el-button>
|
||||
<el-button size="default" type="success" @click="onOpenAdd" v-auth="'api/v1/knowledge/knowledge/create'">
|
||||
<el-icon><ele-Plus /></el-icon>
|
||||
新增
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<el-table :data="tableData.data" style="width: 100%" v-loading="tableData.loading" border>
|
||||
<el-table-column type="index" label="序号" width="60" align="center" />
|
||||
<el-table-column prop="name" label="数据集名称" min-width="180" show-overflow-tooltip>
|
||||
<template #default="scope">
|
||||
<el-link type="primary" @click="onViewDetail(scope.row)">{{ scope.row.name }}</el-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="type" label="类型" width="100" align="center">
|
||||
<template #default="scope">
|
||||
<el-tag :type="getTypeTagType(scope.row.type)">{{ getTypeText(scope.row.type) }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="documentCount" label="文档数" width="100" align="center" />
|
||||
<el-table-column prop="charCount" label="字符数" width="120" align="center">
|
||||
<template #default="scope">
|
||||
{{ formatCharCount(scope.row.charCount) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="embeddingModel" label="向量模型" width="150" show-overflow-tooltip />
|
||||
<el-table-column prop="status" label="状态" width="80" align="center">
|
||||
<template #default="scope">
|
||||
<el-switch
|
||||
v-model="scope.row.statusEnabled"
|
||||
inline-prompt
|
||||
active-text="启"
|
||||
inactive-text="停"
|
||||
@change="onStatusChange(scope.row)"
|
||||
v-auth="'api/v1/knowledge/knowledge/updateStatus'"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="createdAt" label="创建时间" width="170" show-overflow-tooltip />
|
||||
<el-table-column prop="updatedAt" label="更新时间" width="170" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="200" fixed="right" align="center">
|
||||
<template #default="scope">
|
||||
<el-button size="small" text type="primary" @click="onEdit(scope.row)" v-auth="'api/v1/knowledge/knowledge/update'">编辑</el-button>
|
||||
<el-button size="small" text type="success" @click="onManageDocuments(scope.row)">文档</el-button>
|
||||
<el-button size="small" text type="danger" @click="onRowDel(scope.row)" v-auth="'api/v1/knowledge/knowledge/delete'">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!-- 分页 -->
|
||||
<div class="mt15" style="text-align: right">
|
||||
<el-pagination
|
||||
v-model:current-page="tableData.param.pageNum"
|
||||
v-model:page-size="tableData.param.pageSize"
|
||||
:page-sizes="[10, 20, 50, 100]"
|
||||
:total="tableData.total"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
@size-change="onSizeChange"
|
||||
@current-change="onCurrentChange"
|
||||
/>
|
||||
</div>
|
||||
</el-card>
|
||||
<div class="knowledge-knowledge-page">
|
||||
<div class="knowledge-knowledge-container">
|
||||
<el-card shadow="hover">
|
||||
<div class="knowledge-knowledge-search mb15">
|
||||
<el-form :inline="true">
|
||||
<el-form-item label="数据集名称">
|
||||
<el-input size="default" v-model="tableData.param.keyword" placeholder="请输入数据集名称" clearable style="width: 200px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="数据集类型">
|
||||
<el-select size="default" v-model="tableData.param.datasetType" placeholder="请选择类型" clearable style="width: 150px">
|
||||
<el-option label="文本" :value="1" />
|
||||
<el-option label="视频" :value="2" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态">
|
||||
<el-select size="default" v-model="tableData.param.status" placeholder="请选择状态" clearable style="width: 120px">
|
||||
<el-option label="启用" value="enable" />
|
||||
<el-option label="禁用" value="disable" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button size="default" type="primary" @click="getknowledgeList">
|
||||
<el-icon><ele-Search /></el-icon>
|
||||
查询
|
||||
</el-button>
|
||||
<el-button size="default" @click="onResetQuery">
|
||||
<el-icon><ele-Refresh /></el-icon>
|
||||
重置
|
||||
</el-button>
|
||||
<el-button size="default" type="success" @click="onOpenAdd" v-auth="'api/v1/knowledge/knowledge/create'">
|
||||
<el-icon><ele-Plus /></el-icon>
|
||||
新增
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<el-table :data="tableData.data" style="width: 100%" v-loading="tableData.loading" border>
|
||||
<el-table-column type="index" label="序号" width="60" align="center" />
|
||||
<el-table-column prop="name" label="数据集名称" min-width="180" show-overflow-tooltip>
|
||||
<template #default="scope">
|
||||
<el-link type="primary" @click="onViewDetail(scope.row)">{{ scope.row.name }}</el-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="datasetType" label="类型" width="100" align="center">
|
||||
<template #default="scope">
|
||||
<el-tag :type="getTypeTagType(scope.row.datasetType)">{{ getTypeText(scope.row.datasetType) }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="documentCount" label="文档数" width="100" align="center" />
|
||||
<el-table-column prop="charCount" label="字符数" width="120" align="center">
|
||||
<template #default="scope">
|
||||
{{ formatCharCount(scope.row.charCount) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="embeddingModel" label="向量模型" width="150" show-overflow-tooltip />
|
||||
<el-table-column prop="status" label="状态" width="80" align="center">
|
||||
<template #default="scope">
|
||||
<el-switch
|
||||
v-model="scope.row.statusEnabled"
|
||||
inline-prompt
|
||||
active-text="启"
|
||||
inactive-text="停"
|
||||
@change="onStatusChange(scope.row)"
|
||||
v-auth="'api/v1/knowledge/knowledge/updateStatus'"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="createdAt" label="创建时间" width="170" show-overflow-tooltip />
|
||||
<el-table-column prop="updatedAt" label="更新时间" width="170" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="200" fixed="right" align="center">
|
||||
<template #default="scope">
|
||||
<el-button size="small" text type="primary" @click="onEdit(scope.row)" v-auth="'api/v1/knowledge/knowledge/update'">编辑</el-button>
|
||||
<el-button size="small" text type="success" @click="onManageDocuments(scope.row)">文档</el-button>
|
||||
<el-button size="small" text type="danger" @click="onRowDel(scope.row)" v-auth="'api/v1/knowledge/knowledge/delete'">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!-- 分页 -->
|
||||
<div class="mt15" style="text-align: right">
|
||||
<el-pagination
|
||||
v-model:current-page="tableData.param.pageNum"
|
||||
v-model:page-size="tableData.param.pageSize"
|
||||
:page-sizes="[10, 20, 50, 100]"
|
||||
:total="tableData.total"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
@size-change="onSizeChange"
|
||||
@current-change="onCurrentChange"
|
||||
/>
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
<Editknowledge ref="editknowledgeRef" @getknowledgeList="getknowledgeList" />
|
||||
</div>
|
||||
<Editknowledge ref="editknowledgeRef" @getknowledgeList="getknowledgeList" />
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
<script lang="ts">
|
||||
export default {
|
||||
name: 'knowledgeknowledge',
|
||||
};
|
||||
</script>
|
||||
</script>
|
||||
|
||||
<script setup lang="ts">
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, onMounted } from 'vue';
|
||||
import { useRouter } from 'vue-router';
|
||||
import { ElMessage, ElMessageBox } from 'element-plus';
|
||||
@@ -117,7 +116,7 @@ const tableData = reactive({
|
||||
loading: false,
|
||||
param: {
|
||||
keyword: '',
|
||||
type: '',
|
||||
datasetType: undefined as number | undefined,
|
||||
status: undefined as string | undefined,
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
@@ -148,30 +147,26 @@ const getknowledgeList = async () => {
|
||||
};
|
||||
|
||||
// 获取类型标签类型
|
||||
const getTypeTagType = (type: string) => {
|
||||
switch (type) {
|
||||
case 'text':
|
||||
const getTypeTagType = (datasetType: number) => {
|
||||
switch (datasetType) {
|
||||
case 1:
|
||||
return 'primary';
|
||||
case 'qa':
|
||||
case 2:
|
||||
return 'success';
|
||||
case 'table':
|
||||
return 'warning';
|
||||
default:
|
||||
return 'info';
|
||||
}
|
||||
};
|
||||
|
||||
// 获取类型文本
|
||||
const getTypeText = (type: string) => {
|
||||
switch (type) {
|
||||
case 'text':
|
||||
const getTypeText = (datasetType: number) => {
|
||||
switch (datasetType) {
|
||||
case 1:
|
||||
return '文本';
|
||||
case 'qa':
|
||||
return '问答';
|
||||
case 'table':
|
||||
return '表格';
|
||||
case 2:
|
||||
return '视频';
|
||||
default:
|
||||
return type;
|
||||
return String(datasetType);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -187,7 +182,7 @@ const formatCharCount = (count: number) => {
|
||||
// 重置查询
|
||||
const onResetQuery = () => {
|
||||
tableData.param.keyword = '';
|
||||
tableData.param.type = '';
|
||||
tableData.param.datasetType = undefined;
|
||||
tableData.param.status = undefined;
|
||||
tableData.param.pageNum = 1;
|
||||
getknowledgeList();
|
||||
@@ -261,9 +256,9 @@ const onCurrentChange = (page: number) => {
|
||||
onMounted(() => {
|
||||
getknowledgeList();
|
||||
});
|
||||
</script>
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
<style scoped lang="scss">
|
||||
.knowledge-knowledge-page {
|
||||
padding: 15px;
|
||||
.knowledge-knowledge-container {
|
||||
@@ -274,4 +269,4 @@ onMounted(() => {
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -156,7 +156,7 @@
|
||||
<template #default="{ row }">
|
||||
<el-button text size="small" v-debounce @click="onPreviewFile(row)">预览</el-button>
|
||||
<el-button v-if="row.vectorStatus === 1" text size="small" type="primary" v-debounce @click="onGenerateVector(row)"
|
||||
>生成向量</el-button
|
||||
>生成向量</el-button
|
||||
>
|
||||
<el-button v-else text size="small" type="primary" v-debounce @click="onViewTaskList(row)">查看任务</el-button>
|
||||
<el-button text size="small" type="danger" v-debounce @click="onDeleteFile(row)">删除</el-button>
|
||||
@@ -233,6 +233,12 @@
|
||||
<el-form-item label="名称" prop="name">
|
||||
<el-input v-model="knowledgeForm.name" placeholder="请输入知识库名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="数据集类型" prop="datasetType">
|
||||
<el-select v-model="knowledgeForm.datasetType" placeholder="请选择类型" clearable style="width: 100%">
|
||||
<el-option label="文本" :value="1" />
|
||||
<el-option label="视频" :value="2" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="描述" prop="description">
|
||||
<el-input v-model="knowledgeForm.description" type="textarea" :rows="3" placeholder="请输入描述" />
|
||||
</el-form-item>
|
||||
@@ -469,10 +475,12 @@ const knowledgeFormRef = ref<FormInstance>();
|
||||
const knowledgeForm = reactive({
|
||||
id: '',
|
||||
name: '',
|
||||
datasetType: undefined as number | undefined,
|
||||
description: '',
|
||||
});
|
||||
const knowledgeRules = reactive<FormRules>({
|
||||
name: [{ required: true, message: '请输入知识库名称', trigger: 'blur' }],
|
||||
datasetType: [{ required: true, message: '请选择数据集类型', trigger: 'change' }],
|
||||
});
|
||||
|
||||
// 文件列表(含OSS上传结果)
|
||||
@@ -555,6 +563,7 @@ const getknowledgeList = async () => {
|
||||
const response = await listknowledges({
|
||||
pageNum: 1,
|
||||
pageSize: 100,
|
||||
datasetType: 1,
|
||||
});
|
||||
knowledgeList.value = response.data.list || [];
|
||||
} catch (_error) {
|
||||
@@ -576,6 +585,7 @@ const onSelectknowledge = (item: any) => {
|
||||
const onAddknowledge = () => {
|
||||
knowledgeForm.id = '';
|
||||
knowledgeForm.name = '';
|
||||
knowledgeForm.datasetType = undefined;
|
||||
knowledgeForm.description = '';
|
||||
showknowledgeDialog.value = true;
|
||||
};
|
||||
@@ -594,6 +604,7 @@ const onCardContextMenu = (event: MouseEvent, item: any) => {
|
||||
const onRenameknowledge = (item: any) => {
|
||||
knowledgeForm.id = item.id;
|
||||
knowledgeForm.name = item.name;
|
||||
knowledgeForm.datasetType = item.datasetType;
|
||||
knowledgeForm.description = item.description || '';
|
||||
showknowledgeDialog.value = true;
|
||||
};
|
||||
@@ -634,12 +645,14 @@ const onSaveknowledge = async () => {
|
||||
await updateknowledge({
|
||||
id: knowledgeForm.id,
|
||||
name: knowledgeForm.name,
|
||||
datasetType: knowledgeForm.datasetType,
|
||||
description: knowledgeForm.description,
|
||||
});
|
||||
} else {
|
||||
// 创建知识库
|
||||
await createknowledge({
|
||||
name: knowledgeForm.name,
|
||||
datasetType: knowledgeForm.datasetType!,
|
||||
description: knowledgeForm.description,
|
||||
});
|
||||
}
|
||||
@@ -988,7 +1001,7 @@ const onSaveModelConfig = async () => {
|
||||
// 构建请求数据,只传递接口需要的字段
|
||||
const data = {
|
||||
modelType: selectedModelType.value,
|
||||
configType: selectedConfigType.value,
|
||||
configType: selectedConfigType,
|
||||
modelName: modelFormData.value.modelName,
|
||||
modelDesc: modelFormData.value.modelDesc,
|
||||
configContent: {} as Record<string, any>,
|
||||
|
||||
Reference in New Issue
Block a user