From d90805acbb56430309c26658bf3f74e535c42cc3 Mon Sep 17 00:00:00 2001 From: wangdan-fit2cloud Date: Thu, 26 Jun 2025 21:13:43 +0800 Subject: [PATCH] fix: bugs --- .../system-resource-management/document.ts | 557 ++++++++++++++++++ .../system-resource-management/knowledge.ts | 272 +++++++++ .../api/system-resource-management/model.ts | 155 +++++ .../system-resource-management/paragraph.ts | 291 +++++++++ .../api/system-resource-management/problem.ts | 121 ++++ ui/src/enums/tool.ts | 1 + ui/src/router/modules/system.ts | 27 +- ui/src/views/application-overview/index.vue | 2 +- ui/src/views/chat-log/index.vue | 2 +- .../component/KnowledgeListContainer.vue | 2 +- ui/src/views/model/index.vue | 2 +- .../KnowledgeResourceIndex.vue | 225 +++++++ .../ModelResourceIndex.vue | 241 ++++++++ .../ToolResourceIndex.vue | 158 +++-- ui/src/views/system/operate-log/index.vue | 2 +- ui/src/workflow/common/data.ts | 2 +- 16 files changed, 1991 insertions(+), 69 deletions(-) create mode 100644 ui/src/api/system-resource-management/document.ts create mode 100644 ui/src/api/system-resource-management/knowledge.ts create mode 100644 ui/src/api/system-resource-management/model.ts create mode 100644 ui/src/api/system-resource-management/paragraph.ts create mode 100644 ui/src/api/system-resource-management/problem.ts create mode 100644 ui/src/views/system-resource-management/KnowledgeResourceIndex.vue create mode 100644 ui/src/views/system-resource-management/ModelResourceIndex.vue diff --git a/ui/src/api/system-resource-management/document.ts b/ui/src/api/system-resource-management/document.ts new file mode 100644 index 000000000..c0184e9fd --- /dev/null +++ b/ui/src/api/system-resource-management/document.ts @@ -0,0 +1,557 @@ +import { Result } from '@/request/Result' +import { get, post, del, put, exportExcel, exportFile } from '@/request/index' +import type { Ref } from 'vue' +import type { KeyValue } from '@/api/type/common' +import type { pageRequest } from '@/api/type/common' + +const prefix = '/system/resource/knowledge' + +/** + * 文档列表(无分页) + * @param 参数 knowledge_id, + * param { + " name": "string", + } + */ + +const getDocumentList: (knowledge_id: string, loading?: Ref) => Promise> = ( + knowledge_id, + loading, +) => { + return get(`${prefix}/${knowledge_id}/document`, undefined, loading) +} + + +/** + * 文档分页列表 + * @param 参数 knowledge_id, + * param { + " name": "string", + } + */ + +const getDocumentPage: ( + knowledge_id: string, + page: pageRequest, + param: any, + loading?: Ref, +) => Promise> = (knowledge_id, page, param, loading) => { + return get( + `${prefix}/${knowledge_id}/document/${page.current_page}/${page.page_size}`, + param, + loading, + ) +} +/** + * 文档详情 + * @param 参数 knowledge_id + */ +const getDocumentDetail: ( + knowledge_id: string, + document_id: string, + loading?: Ref, +) => Promise> = (knowledge_id, document_id, loading) => { + return get(`${prefix}/${knowledge_id}/document/${document_id}`, {}, loading) +} + +/** + * 修改文档 + * @param 参数 + * knowledge_id, document_id, + * { + "name": "string", + "is_active": true, + "meta": {} + } + */ +const putDocument: ( + knowledge_id: string, + document_id: string, + data: any, + loading?: Ref, +) => Promise> = (knowledge_id, document_id, data: any, loading) => { + return put(`${prefix}/${knowledge_id}/document/${document_id}`, data, undefined, loading) +} + +/** + * 删除文档 + * @param 参数 knowledge_id, document_id, + */ +const delDocument: ( + knowledge_id: string, + document_id: string, + loading?: Ref, +) => Promise> = (knowledge_id, document_id, loading) => { + return del(`${prefix}/${knowledge_id}/document/${document_id}`, loading) +} + +/** + * 批量取消文档任务 + * @param 参数 knowledge_id, + *{ + "id_list": [ + "3fa85f64-5717-4562-b3fc-2c963f66afa6" + ], + "type": 0 +} + */ + +const putBatchCancelTask: ( + knowledge_id: string, + data: any, + loading?: Ref, +) => Promise> = (knowledge_id, data, loading) => { + return put(`${prefix}/${knowledge_id}/document/batch_cancel_task`, data, undefined, loading) +} + +/** + * 取消文档任务 + * @param 参数 knowledge_id, document_id, + */ +const putCancelTask: ( + knowledge_id: string, + document_id: string, + data: any, + loading?: Ref, +) => Promise> = (knowledge_id, document_id, data, loading) => { + return put( + `${prefix}/${knowledge_id}/document/${document_id}/cancel_task`, + data, + undefined, + loading, + ) +} + +/** + * 下载原文档 + * @param 参数 knowledge_id + */ +const getDownloadSourceFile: (knowledge_id: string, document_id: string) => Promise> = ( + knowledge_id, + document_id, +) => { + return get(`${prefix}/${knowledge_id}/document/${document_id}/download_source_file`) +} + +/** + * 导出文档 + * @param document_name 文档名称 + * @param knowledge_id 数据集id + * @param document_id 文档id + * @param loading 加载器 + * @returns + */ +const exportDocument: ( + document_name: string, + knowledge_id: string, + document_id: string, + loading?: Ref, +) => Promise = (document_name, knowledge_id, document_id, loading) => { + return exportExcel( + document_name + '.xlsx', + `${prefix}/${knowledge_id}/document/${document_id}/export`, + {}, + loading, + ) +} +/** + * 导出文档 + * @param document_name 文档名称 + * @param knowledge_id 数据集id + * @param document_id 文档id + * @param loading 加载器 + * @returns + */ +const exportDocumentZip: ( + document_name: string, + knowledge_id: string, + document_id: string, + loading?: Ref, +) => Promise = (document_name, knowledge_id, document_id, loading) => { + return exportFile( + document_name + '.zip', + `${prefix}/${knowledge_id}/document/${document_id}/export_zip`, + {}, + loading, + ) +} + +/** + * 刷新文档向量库 + * @param 参数 + * knowledge_id, document_id, + * { + "state_list": [ + "string" + ] +} + */ +const putDocumentRefresh: ( + knowledge_id: string, + document_id: string, + state_list: Array, + loading?: Ref, +) => Promise> = (knowledge_id, document_id, state_list, loading) => { + return put( + `${prefix}/${knowledge_id}/document/${document_id}/refresh`, + { state_list }, + undefined, + loading, + ) +} + +/** + * 同步web站点类型 + * @param 参数 + * knowledge_id, document_id, + */ +const putDocumentSync: ( + knowledge_id: string, + document_id: string, + loading?: Ref, +) => Promise> = (knowledge_id, document_id, loading) => { + return put( + `${prefix}/${knowledge_id}/document/${document_id}/sync`, + undefined, + undefined, + loading, + ) +} + +/** + * 创建批量文档 + * @param 参数 +{ + "name": "string", + "paragraphs": [ + { + "content": "string", + "title": "string", + "problem_list": [ + { + "id": "string", + "content": "string" + } + ], + "is_active": true + } + ], + "source_file_id": string +} + */ +const putMulDocument: ( + knowledge_id: string, + data: any, + loading?: Ref, +) => Promise> = (knowledge_id, data, loading) => { + return put(`${prefix}/${knowledge_id}/document/batch_create`, data, {}, loading, 1000 * 60 * 5) +} + +/** + * 批量删除文档 + * @param 参数 knowledge_id, + * { + "id_list": [String] +} + */ +const delMulDocument: ( + knowledge_id: string, + data: any, + loading?: Ref, +) => Promise> = (knowledge_id, data, loading) => { + return del( + `${prefix}/${knowledge_id}/document/bach_delete`, + undefined, + { id_list: data }, + loading, + ) +} + +/** + * 批量关联 + * @param 参数 knowledge_id, +{ + "document_id_list": [ + "string" + ], + "model_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "prompt": "string", + "state_list": [ + "string" + ] +} + */ +const putBatchGenerateRelated: ( + knowledge_id: string, + data: any, + loading?: Ref, +) => Promise> = (knowledge_id, data, loading) => { + return put(`${prefix}/${knowledge_id}/document/batch_generate_related`, data, undefined, loading) +} + +/** + * 批量修改命中方式 + * @param knowledge_id 知识库id + * @param data + * {id_list:[],hit_handling_method:'directly_return|optimization',directly_return_similarity} + * @param loading + * @returns + */ +const putBatchEditHitHandling: ( + knowledge_id: string, + data: any, + loading?: Ref, +) => Promise> = (knowledge_id, data, loading) => { + return put(`${prefix}/${knowledge_id}/document/batch_hit_handling`, data, undefined, loading) +} + +/** + * 批量刷新文档向量库 + * @param knowledge_id 知识库id + * @param data +{ + "id_list": [ + "string" + ], + "state_list": [ + "string" + ] +} + * @param loading + * @returns + */ +const putBatchRefresh: ( + knowledge_id: string, + data: any, + stateList: Array, + loading?: Ref, +) => Promise> = (knowledge_id, data, stateList, loading) => { + return put( + `${prefix}/${knowledge_id}/document/batch_refresh`, + { id_list: data, state_list: stateList }, + undefined, + loading, + ) +} + +/** + * 批量同步文档 + * @param 参数 knowledge_id, + */ +const putMulSyncDocument: ( + knowledge_id: string, + data: any, + loading?: Ref, +) => Promise> = (knowledge_id, data, loading) => { + return put(`${prefix}/${knowledge_id}/document/batch_sync`, { id_list: data }, undefined, loading) +} + +/** + * 批量迁移文档 + * @param 参数 knowledge_id,target_knowledge_id, + + */ +const putMigrateMulDocument: ( + knowledge_id: string, + target_knowledge_id: string, + data: any, + loading?: Ref, +) => Promise> = (knowledge_id, target_knowledge_id, data, loading) => { + return put( + `${prefix}/${knowledge_id}/document/migrate/${target_knowledge_id}`, + data, + undefined, + loading, + ) +} + +/** + * 导入QA文档 + * @param 参数 + * file + } + */ +const postQADocument: ( + knowledge_id: string, + data: any, + loading?: Ref, +) => Promise> = (knowledge_id, data, loading) => { + return post(`${prefix}/${knowledge_id}/document/qa`, data, undefined, loading) +} + +/** + * 分段预览(上传文档) + * @param 参数 file:file,limit:number,patterns:array,with_filter:boolean + */ +const postSplitDocument: (knowledge_id: string, data: any) => Promise> = ( + knowledge_id, + data, +) => { + return post( + `${prefix}/${knowledge_id}/document/split`, + data, + undefined, + undefined, + 1000 * 60 * 60, + ) +} + +/** + * 分段标识列表 + * @param loading 加载器 + * @returns 分段标识列表 + */ +const listSplitPattern: ( + knowledge_id: string, + loading?: Ref, +) => Promise>>> = (knowledge_id, loading) => { + return get(`${prefix}/${knowledge_id}/document/split_pattern`, {}, loading) +} + +/** + * 导入表格 + * @param 参数 + * file + */ +const postTableDocument: ( + knowledge_id: string, + data: any, + loading?: Ref, +) => Promise> = (knowledge_id, data, loading) => { + return post(`${prefix}/${knowledge_id}/document/table`, data, undefined, loading) +} + +/** + * 获得QA模版 + * @param 参数 fileName,type, + */ +const exportQATemplate: (fileName: string, type: string, loading?: Ref) => void = ( + fileName, + type, + loading, +) => { + return exportExcel(fileName, `${prefix}/document/template/export`, { type }, loading) +} + +/** + * 获得table模版 + * @param 参数 fileName,type, + */ +const exportTableTemplate: (fileName: string, type: string, loading?: Ref) => void = ( + fileName, + type, + loading, +) => { + return exportExcel(fileName, `${prefix}/document/table_template/export`, { type }, loading) +} + +/** + * 创建Web站点文档 + * @param 参数 + * { + "source_url_list": [ + "string" + ], + "selector": "string" + } + } + */ +const postWebDocument: ( + knowledge_id: string, + data: any, + loading?: Ref, +) => Promise> = (knowledge_id, data, loading) => { + return post(`${prefix}/${knowledge_id}/document/web`, data, undefined, loading) +} + +/** + * 飞书导入获得相关文档 + * @param 参数 + * { + "source_url_list": [ + "string" + ], + "selector": "string" + } + } + */ +const getLarkDocumentList: ( + knowledge_id: string, + folder_token: string, + data: any, + loading?: Ref, +) => Promise> = (knowledge_id, folder_token, data, loading) => { + return post(`${prefix}/lark/${knowledge_id}/${folder_token}/doc_list`, data, undefined, loading) +} + +/** + * 同步飞书文档 + */ +const putLarkDocumentSync: ( + knowledge_id: string, + document_id: string, + loading?: Ref, +) => Promise> = (knowledge_id, document_id, loading) => { + return put( + `${prefix}/lark/${knowledge_id}/document/${document_id}/sync`, + undefined, + undefined, + loading, + ) +} + +/** + * 批量同步飞书文档 + */ +const putMulLarkSyncDocument: ( + knowledge_id: string, + data: any, + loading?: Ref, +) => Promise> = (knowledge_id, data, loading) => { + return put(`${prefix}/lark/${knowledge_id}/_batch`, { id_list: data }, undefined, loading) +} + +/** + * 导入飞书文档 + */ +const importLarkDocument: ( + knowledge_id: string, + data: any, + loading?: Ref, +) => Promise>> = (knowledge_id, data, loading) => { + return post(`${prefix}/lark/${knowledge_id}/import`, data, null, loading) +} + + +export default { + getDocumentList, + getDocumentPage, + getDocumentDetail, + putDocument, + delDocument, + putBatchCancelTask, + putCancelTask, + getDownloadSourceFile, + exportDocument, + exportDocumentZip, + putDocumentRefresh, + putDocumentSync, + putMulDocument, + delMulDocument, + putBatchGenerateRelated, + putBatchEditHitHandling, + putBatchRefresh, + putMulSyncDocument, + putMigrateMulDocument, + postQADocument, + postSplitDocument, + listSplitPattern, + postTableDocument, + postWebDocument, + exportQATemplate, + exportTableTemplate, + getLarkDocumentList, + putLarkDocumentSync, + putMulLarkSyncDocument, + importLarkDocument, +} diff --git a/ui/src/api/system-resource-management/knowledge.ts b/ui/src/api/system-resource-management/knowledge.ts new file mode 100644 index 000000000..031769541 --- /dev/null +++ b/ui/src/api/system-resource-management/knowledge.ts @@ -0,0 +1,272 @@ +import { Result } from '@/request/Result' +import { get, post, del, put, exportFile, exportExcel } from '@/request/index' +import { type Ref } from 'vue' +import type { pageRequest } from '@/api/type/common' +import type { knowledgeData } from '@/api/type/knowledge' + +const prefix = '/system/resource/knowledge' + +/** + * 知识库列表(无分页) + * @param 参数 + * param { + "folder_id": "string", + "name": "string", + "tool_type": "string", + desc: string, + } + */ +const getKnowledgeList: (param?: any, loading?: Ref) => Promise> = ( + param, + loading, +) => { + return get(`${prefix}`, param, loading) +} + +/** + * 知识库分页列表 + * @param 参数 + * param { + "folder_id": "string", + "name": "string", + "tool_type": "string", + desc: string, + } + */ +const getKnowledgeListPage: ( + page: pageRequest, + param?: any, + loading?: Ref, +) => Promise> = (page, param, loading) => { + return get(`${prefix}/${page.current_page}/${page.page_size}`, param, loading) +} + +/** + * 知识库详情 + * @param 参数 knowledge_id + */ +const getKnowledgeDetail: (knowledge_id: string, loading?: Ref) => Promise> = ( + knowledge_id, + loading, +) => { + return get(`${prefix}/${knowledge_id}`, undefined, loading) +} + +/** + * 修改知识库信息 + * @param 参数 + * knowledge_id + * { + "name": "string", + "desc": true + } + */ +const putKnowledge: ( + knowledge_id: string, + data: any, + loading?: Ref, +) => Promise> = (knowledge_id, data, loading) => { + return put(`${prefix}/${knowledge_id}`, data, undefined, loading) +} + +/** + * 删除知识库 + * @param 参数 knowledge_id + */ +const delKnowledge: (knowledge_id: String, loading?: Ref) => Promise> = ( + knowledge_id, + loading, +) => { + return del(`${prefix}/${knowledge_id}`, undefined, {}, loading) +} + +/** + * 向量化知识库 + * @param 参数 knowledge_id + */ +const putReEmbeddingKnowledge: ( + knowledge_id: string, + loading?: Ref, +) => Promise> = (knowledge_id, loading) => { + return put(`${prefix}/${knowledge_id}/embedding`, undefined, undefined, loading) +} + +/** + * 导出知识库 + * @param knowledge_name 知识库名称 + * @param knowledge_id 知识库id + * @returns + */ +const exportKnowledge: ( + knowledge_name: string, + knowledge_id: string, + loading?: Ref, +) => Promise = (knowledge_name, knowledge_id, loading) => { + return exportExcel( + knowledge_name + '.xlsx', + `${prefix}/${knowledge_id}/export`, + undefined, + loading, + ) +} +/** + *导出Zip知识库 + * @param knowledge_name 知识库名称 + * @param knowledge_id 知识库id + * @param loading 加载器 + * @returns + */ +const exportZipKnowledge: ( + knowledge_name: string, + knowledge_id: string, + loading?: Ref, +) => Promise = (knowledge_name, knowledge_id, loading) => { + return exportFile( + knowledge_name + '.zip', + `${prefix}/${knowledge_id}/export_zip`, + undefined, + loading, + ) +} + +/** + * 生成关联问题 + * @param knowledge_id 知识库id + * @param data + * @param loading + * @returns + */ +const putGenerateRelated: ( + knowledge_id: string, + data: any, + loading?: Ref, +) => Promise>> = (knowledge_id, data, loading) => { + return put(`${prefix}/${knowledge_id}/generate_related`, data, null, loading) +} +/** + * 命中测试列表 + * @param knowledge_id + * @param loading + * @query { query_text: string, top_number: number, similarity: number } + * @returns + */ +const putKnowledgeHitTest: ( + knowledge_id: string, + data: any, + loading?: Ref, +) => Promise>> = (knowledge_id, data, loading) => { + return put(`${prefix}/${knowledge_id}/hit_test`, undefined, data, loading) +} + + +/** + * 同步知识库 + * @param 参数 knowledge_id + * @query 参数 sync_type // 同步类型->replace:替换同步,complete:完整同步 + */ +const putSyncWebKnowledge: ( + knowledge_id: string, + sync_type: string, + loading?: Ref, +) => Promise> = (knowledge_id, sync_type, loading) => { + return put(`${prefix}/${knowledge_id}/sync`, undefined, { sync_type }, loading) +} + +/** + * 创建知识库 + * @param 参数 + * { + "name": "string", + "folder_id": "string", + "desc": "string", + "embedding": "string" + } + */ +const postKnowledge: (data: knowledgeData, loading?: Ref) => Promise> = ( + data, + loading, +) => { + return post(`${prefix}/base`, data, undefined, loading, 1000 * 60 * 5) +} + +/** + * 获取当前用户可使用的向量化模型列表(没用到) + * @param application_id + * @param loading + * @query { query_text: string, top_number: number, similarity: number } + * @returns + */ +const getKnowledgeEmdeddingModel: ( + knowledge_id: string, + loading?: Ref, +) => Promise>> = (knowledge_id, loading) => { + return get(`${prefix}/${knowledge_id}/emdedding_model`, loading) +} + +/** + * 获取当前用户可使用的模型列表 + * @param application_id + * @param loading + * @query { query_text: string, top_number: number, similarity: number } + * @returns + */ +const getKnowledgeModel: (loading?: Ref) => Promise>> = (loading) => { + return get(`${prefix}/model`, loading) +} + +/** + * 创建Web知识库 + * @param 参数 + * { + "name": "string", + "folder_id": "string", + "desc": "string", + "embedding": "string", + "source_url": "string", + "selector": "string" + } + */ +const postWebKnowledge: (data: any, loading?: Ref) => Promise> = ( + data, + loading, +) => { + return post(`${prefix}/web`, data, undefined, loading) +} + +// 创建飞书知识库 +const postLarkKnowledge: (data: any, loading?: Ref) => Promise>> = ( + data, + loading, +) => { + return post(`${prefix}/lark/save`, data, null, loading) +} + +const putLarkKnowledge: ( + knowledge_id: string, + data: any, + loading?: Ref +) => Promise> = (knowledge_id, data, loading) => { + return put(`${prefix}/lark/${knowledge_id}`, data, undefined, loading) +} + + +export default { + getKnowledgeList, + getKnowledgeListPage, + getKnowledgeDetail, + putKnowledge, + delKnowledge, + putReEmbeddingKnowledge, + exportKnowledge, + exportZipKnowledge, + putGenerateRelated, + putKnowledgeHitTest, + putSyncWebKnowledge, + postKnowledge, + getKnowledgeModel, + postWebKnowledge, + postLarkKnowledge, + putLarkKnowledge +} as { + [key: string]: any +} diff --git a/ui/src/api/system-resource-management/model.ts b/ui/src/api/system-resource-management/model.ts new file mode 100644 index 000000000..3cd704be6 --- /dev/null +++ b/ui/src/api/system-resource-management/model.ts @@ -0,0 +1,155 @@ +import { Result } from '@/request/Result' +import { get, post, del, put } from '@/request/index' +import { type Ref } from 'vue' +import type { + ListModelRequest, + Model, + CreateModelRequest, + EditModelRequest, +} from '@/api/type/model' +import type { FormField } from '@/components/dynamics-form/type' + +const prefix = '/system/resource' + +/** + * 获得模型列表 + * @params 参数 name, model_type, model_name + */ +const getModelList: ( + data?: ListModelRequest, + loading?: Ref, +) => Promise>> = (data, loading) => { + return get(`${prefix}/model`, data, loading) +} + +/** + * 获得下拉选择框模型列表 + * @params 参数 name, model_type, model_name + */ +const getSelectModelList: ( + data?: ListModelRequest, + loading?: Ref, +) => Promise>> = (data, loading) => { + return get(`${prefix}/model_list`, data, loading).then((ok) => { + return { + ...ok, + data: [ + ...ok.data.shared_model.map((m: any) => { + return { ...m, type: 'share' } + }), + ...ok.data.model.map((m: any) => { + return { ...m, type: 'workspace' } + }), + ], + } + }) +} + +/** + * 获取模型参数表单 + * @param model_id 模型id + * @param loading + * @returns + */ +const getModelParamsForm: ( + model_id: string, + loading?: Ref, +) => Promise>> = (model_id, loading) => { + return get(`${prefix}/model/${model_id}/model_params_form`, {}, loading) +} + +/** + * 创建模型 + * @param request 请求对象 + * @param loading 加载器 + * @returns + */ +const createModel: ( + request: CreateModelRequest, + loading?: Ref, +) => Promise> = (request, loading) => { + return post(`${prefix}/model`, request, {}, loading) +} + +/** + * 修改模型 + * @param request 請求對象 + * @param loading 加載器 + * @returns + */ +const updateModel: ( + model_id: string, + request: EditModelRequest, + loading?: Ref, +) => Promise> = (model_id, request, loading) => { + return put(`${prefix}/model/${model_id}`, request, {}, loading) +} + +/** + * 修改模型参数配置 + * @param request 請求對象 + * @param loading 加載器 + * @returns + */ +const updateModelParamsForm: ( + model_id: string, + request: any[], + loading?: Ref, +) => Promise> = (model_id, request, loading) => { + return put(`${prefix}/model/${model_id}/model_params_form`, request, {}, loading) +} + +/** + * 获取模型详情根据模型id 包括认证信息 + * @param model_id 模型id + * @param loading 加载器 + * @returns + */ +const getModelById: (model_id: string, loading?: Ref) => Promise> = ( + model_id, + loading, +) => { + return get(`${prefix}/model/${model_id}`, {}, loading) +} +/** + * 获取模型信息不包括认证信息根据模型id + * @param model_id 模型id + * @param loading 加载器 + * @returns + */ +const getModelMetaById: (model_id: string, loading?: Ref) => Promise> = ( + model_id, + loading, +) => { + return get(`${prefix}/model/${model_id}/meta`, {}, loading) +} +/** + * 暂停下载 + * @param model_id 模型id + * @param loading 加载器 + * @returns + */ +const pauseDownload: (model_id: string, loading?: Ref) => Promise> = ( + model_id, + loading, +) => { + return put(`${prefix}/model/${model_id}/pause_download`, undefined, {}, loading) +} +const deleteModel: (model_id: string, loading?: Ref) => Promise> = ( + model_id, + loading, +) => { + return del(`${prefix}/model/${model_id}`, undefined, {}, loading) +} +export default { + getModelList, + createModel, + updateModel, + deleteModel, + getModelById, + getModelMetaById, + pauseDownload, + getModelParamsForm, + updateModelParamsForm, + getSelectModelList, +} diff --git a/ui/src/api/system-resource-management/paragraph.ts b/ui/src/api/system-resource-management/paragraph.ts new file mode 100644 index 000000000..9b26f1357 --- /dev/null +++ b/ui/src/api/system-resource-management/paragraph.ts @@ -0,0 +1,291 @@ +import { Result } from '@/request/Result' +import { get, post, del, put } from '@/request/index' +import type { pageRequest } from '@/api/type/common' +import type { Ref } from 'vue' +const prefix = '/system/resource/knowledge' + +/** + * 创建段落 + * @param 参数 + * knowledge_id, document_id + * { + "content": "string", + "title": "string", + "is_active": true, + "problem_list": [ + { + "content": "string" + } + ] + } + */ +const postParagraph: ( + knowledge_id: string, + document_id: string, + data: any, + loading?: Ref, +) => Promise> = (knowledge_id, document_id, data, loading) => { + return post( + `${prefix}/${knowledge_id}/document/${document_id}/paragraph`, + data, + undefined, + loading, + ) +} + +/** + * 段落列表 + * @param 参数 knowledge_id document_id + * param { + "title": "string", + "content": "string", + } + */ +const getParagraphPage: ( + knowledge_id: string, + document_id: string, + page: pageRequest, + param: any, + loading?: Ref, +) => Promise> = (knowledge_id, document_id, page, param, loading) => { + return get( + `${prefix}/${knowledge_id}/document/${document_id}/paragraph/${page.current_page}/${page.page_size}`, + param, + loading, + ) +} + +/** + * 修改段落 + * @param 参数 + * knowledge_id, document_id, paragraph_id + * { + "content": "string", + "title": "string", + "is_active": true, + "problem_list": [ + { + "content": "string" + } + ] + } + */ +const putParagraph: ( + knowledge_id: string, + document_id: string, + paragraph_id: string, + data: any, + loading?: Ref, +) => Promise> = (knowledge_id, document_id, paragraph_id, data, loading) => { + return put( + `${prefix}/${knowledge_id}/document/${document_id}/paragraph/${paragraph_id}`, + data, + undefined, + loading, + ) +} + +/** + * 删除段落 + * @param 参数 knowledge_id, document_id, paragraph_id + */ +const delParagraph: ( + knowledge_id: string, + document_id: string, + paragraph_id: string, + loading?: Ref, +) => Promise> = (knowledge_id, document_id, paragraph_id, loading) => { + return del( + `${prefix}/${knowledge_id}/document/${document_id}/paragraph/${paragraph_id}`, + undefined, + {}, + loading, + ) +} + +/** + * 某段落问题列表 + * @param 参数 knowledge_id,document_id,paragraph_id + */ +const getParagraphProblem: ( + knowledge_id: string, + document_id: string, + paragraph_id: string, +) => Promise> = (knowledge_id, document_id, paragraph_id: string) => { + return get(`${prefix}/${knowledge_id}/document/${document_id}/paragraph/${paragraph_id}/problem`) +} + +/** + * 给某段落创建问题 + * @param 参数 + * knowledge_id, document_id, paragraph_id + * { + content": "string" + } + */ +const postParagraphProblem: ( + knowledge_id: string, + document_id: string, + paragraph_id: string, + data: any, + loading?: Ref, +) => Promise> = (knowledge_id, document_id, paragraph_id, data: any, loading) => { + return post( + `${prefix}/${knowledge_id}/document/${document_id}/paragraph/${paragraph_id}/problem`, + data, + {}, + loading, + ) +} + +/** + * 段落调整顺序 + * @param knowledge_id 数据集id + * @param document_id 文档id + * @param loading 加载器 + * @query data { + * paragraph_id 段落id new_position 新顺序 + * } + */ +const putAdjustPosition: ( + knowledge_id: string, + document_id: string, + data: any, + loading?: Ref, +) => Promise> = (knowledge_id, document_id, data, loading) => { + return put( + `${prefix}/${knowledge_id}/document/${document_id}/paragraph/adjust_position`, + {}, + data, + loading, + ) +} + +/** + * 添加某段落关联问题 + * @param knowledge_id 数据集id + * @param document_id 文档id + * @param loading 加载器 + * @query data { + * paragraph_id 段落id problem_id 问题id + * } + */ +const putAssociationProblem: ( + knowledge_id: string, + document_id: string, + data: any, + loading?: Ref, +) => Promise> = (knowledge_id, document_id, data, loading) => { + return put( + `${prefix}/${knowledge_id}/document/${document_id}/paragraph/association`, + {}, + data, + loading, + ) +} + +/** + * 批量删除段落 + * @param 参数 knowledge_id, document_id + */ +const putMulParagraph: ( + knowledge_id: string, + document_id: string, + data: any, + loading?: Ref, +) => Promise> = (knowledge_id, document_id, data, loading) => { + return put( + `${prefix}/${knowledge_id}/document/${document_id}/paragraph/batch_delete`, + { id_list: data }, + undefined, + loading, + ) +} + +/** + * 批量关联问题 + * @param 参数 knowledge_id, document_id + * { + "paragraph_id_list": [ + "3fa85f64-5717-4562-b3fc-2c963f66afa6" + ], + "model_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "prompt": "string", + "document_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6" + } + */ +const putBatchGenerateRelated: ( + knowledge_id: string, + document_id: string, + data: any, + loading?: Ref, +) => Promise> = (knowledge_id, document_id, data, loading) => { + return put( + `${prefix}/${knowledge_id}/document/${document_id}/paragraph/batch_generate_related`, + data, + undefined, + loading, + ) +} + +/** + * 批量迁移段落 + * @param 参数 knowledge_id,target_knowledge_id, + */ +const putMigrateMulParagraph: ( + knowledge_id: string, + document_id: string, + target_knowledge_id: string, + target_document_id: string, + data: any, + loading?: Ref, +) => Promise> = ( + knowledge_id, + document_id, + target_knowledge_id, + target_document_id, + data, + loading, +) => { + return put( + `${prefix}/${knowledge_id}/document/${document_id}/paragraph/migrate/knowledge/${target_knowledge_id}/document/${target_document_id}`, + data, + undefined, + loading, + ) +} + +/** + * 解除某段落关联问题 + * @param 参数 knowledge_id, document_id, + * @query data { + * paragraph_id 段落id problem_id 问题id + * } + */ +const putDisassociationProblem: ( + knowledge_id: string, + document_id: string, + data: any, + loading?: Ref, +) => Promise> = (knowledge_id, document_id, data, loading) => { + return put( + `${prefix}/${knowledge_id}/document/${document_id}/paragraph/unassociation`, + {}, + data, + loading, + ) +} + +export default { + postParagraph, + getParagraphPage, + putParagraph, + delParagraph, + getParagraphProblem, + postParagraphProblem, + putAssociationProblem, + putMulParagraph, + putBatchGenerateRelated, + putMigrateMulParagraph, + putDisassociationProblem, +} diff --git a/ui/src/api/system-resource-management/problem.ts b/ui/src/api/system-resource-management/problem.ts new file mode 100644 index 000000000..79e9b2139 --- /dev/null +++ b/ui/src/api/system-resource-management/problem.ts @@ -0,0 +1,121 @@ +import { Result } from '@/request/Result' +import { get, post, del, put } from '@/request/index' +import type { Ref } from 'vue' +import type { pageRequest } from '@/api/type/common' + +const prefix = '/system/resource/knowledge' + +/** + * 创建问题 + * @param 参数 knowledge_id + * data: array[string] + */ +const postProblems: ( + knowledge_id: string, + data: any, + loading?: Ref, +) => Promise> = (knowledge_id, data, loading) => { + return post(`${prefix}/${knowledge_id}/problem`, data, undefined, loading) +} + +/** + * 问题分页列表 + * @param 参数 knowledge_id, + * query { + "content": "string", + } + */ + +const getProblemsPage: ( + knowledge_id: string, + page: pageRequest, + param: any, + loading?: Ref, +) => Promise> = (knowledge_id, page, param, loading) => { + return get( + `${prefix}/${knowledge_id}/problem/${page.current_page}/${page.page_size}`, + param, + loading, + ) +} + +/** + * 修改问题 + * @param 参数 + * knowledge_id, problem_id, + * { + "content": "string", + } + */ +const putProblems: ( + knowledge_id: string, + problem_id: string, + data: any, + loading?: Ref, +) => Promise> = (knowledge_id, problem_id, data: any, loading) => { + return put(`${prefix}/${knowledge_id}/problem/${problem_id}`, data, undefined, loading) +} + +/** + * 删除问题 + * @param 参数 knowledge_id, problem_id, + */ +const delProblems: ( + knowledge_id: string, + problem_id: string, + loading?: Ref, +) => Promise> = (knowledge_id, problem_id, loading) => { + return del(`${prefix}/${knowledge_id}/problem/${problem_id}`, loading) +} + +/** + * 问题详情 + * @param 参数 + * knowledge_id, problem_id, + */ +const getDetailProblems: ( + knowledge_id: string, + problem_id: string, + loading?: Ref, +) => Promise> = (knowledge_id, problem_id, loading) => { + return get(`${prefix}/${knowledge_id}/problem/${problem_id}/paragraph`, undefined, loading) +} + +/** + * 批量关联段落 + * @param 参数 knowledge_id, + * { + "problem_id_list": "Array", + "paragraph_list": "Array", + } + */ +const putMulAssociationProblem: ( + knowledge_id: string, + data: any, + loading?: Ref, +) => Promise> = (knowledge_id, data, loading) => { + return put(`${prefix}/${knowledge_id}/problem/batch_association`, data, undefined, loading) +} + +/** + * 批量删除问题 + * @param 参数 knowledge_id, + * data: array[string] + */ +const putMulProblem: ( + knowledge_id: string, + data: any, + loading?: Ref, +) => Promise> = (knowledge_id, data, loading) => { + return put(`${prefix}/${knowledge_id}/problem/batch_delete`, data, undefined, loading) +} + +export default { + postProblems, + getProblemsPage, + putProblems, + delProblems, + getDetailProblems, + putMulAssociationProblem, + putMulProblem, +} diff --git a/ui/src/enums/tool.ts b/ui/src/enums/tool.ts index 3c7c2ad2f..a1c6fbf76 100644 --- a/ui/src/enums/tool.ts +++ b/ui/src/enums/tool.ts @@ -1,3 +1,4 @@ export enum ToolType { CUSTOM = 'common.custom', + INTERNAL = 'views.tool.toolStore.internal', } diff --git a/ui/src/router/modules/system.ts b/ui/src/router/modules/system.ts index f6196a081..20929ec48 100644 --- a/ui/src/router/modules/system.ts +++ b/ui/src/router/modules/system.ts @@ -59,10 +59,7 @@ const systemRouter = { permission: [ new ComplexPermission( [RoleConst.WORKSPACE_MANAGE, RoleConst.ADMIN], - [ - PermissionConst.WORKSPACE_WORKSPACE_READ, - PermissionConst.WORKSPACE_READ, - ], + [PermissionConst.WORKSPACE_WORKSPACE_READ, PermissionConst.WORKSPACE_READ], [EditionConst.IS_EE], 'OR', ), @@ -82,6 +79,17 @@ const systemRouter = { parentName: 'system', }, children: [ + { + path: '/system/resource-management/knowledge', + name: 'KnowledgeResourceIndex', + meta: { + title: 'views.knowledge.title', + activeMenu: '/system', + parentPath: '/system', + parentName: 'system', + }, + component: () => import('@/views/system-resource-management/KnowledgeResourceIndex.vue'), + }, { path: '/system/resource-management/tool', name: 'ToolResourceIndex', @@ -93,6 +101,17 @@ const systemRouter = { }, component: () => import('@/views/system-resource-management/ToolResourceIndex.vue'), }, + { + path: '/system/resource-management/model', + name: 'ModelResourceIndex', + meta: { + title: 'views.model.title', + activeMenu: '/system', + parentPath: '/system', + parentName: 'system', + }, + component: () => import('@/views/system-resource-management/ModelResourceIndex.vue'), + }, ], }, { diff --git a/ui/src/views/application-overview/index.vue b/ui/src/views/application-overview/index.vue index 5d416372d..8515c0df4 100644 --- a/ui/src/views/application-overview/index.vue +++ b/ui/src/views/application-overview/index.vue @@ -288,7 +288,7 @@ const dayOptions = [ }, { value: 'other', - label: t('common.other'), + label: t('common.custom'), }, ] diff --git a/ui/src/views/chat-log/index.vue b/ui/src/views/chat-log/index.vue index f94793ef1..9644c22ba 100644 --- a/ui/src/views/chat-log/index.vue +++ b/ui/src/views/chat-log/index.vue @@ -332,7 +332,7 @@ const dayOptions = [ }, { value: 'other', - label: t('common.other'), + label: t('common.custom'), }, ] const daterangeValue = ref('') diff --git a/ui/src/views/knowledge/component/KnowledgeListContainer.vue b/ui/src/views/knowledge/component/KnowledgeListContainer.vue index a66a9537d..8dc440b56 100644 --- a/ui/src/views/knowledge/component/KnowledgeListContainer.vue +++ b/ui/src/views/knowledge/component/KnowledgeListContainer.vue @@ -5,7 +5,7 @@