diff --git a/ui/src/api/knowledge/knowledge.ts b/ui/src/api/knowledge/knowledge.ts index 138bd8434..13e892dee 100644 --- a/ui/src/api/knowledge/knowledge.ts +++ b/ui/src/api/knowledge/knowledge.ts @@ -160,7 +160,7 @@ const exportKnowledge: ( knowledge_id: string, loading?: Ref, ) => Promise = (knowledge_name, knowledge_id, loading) => { - return exportExcel(knowledge_name + '.xlsx', `dataset/${knowledge_id}/export`, undefined, loading) + return exportExcel(knowledge_name + '.xlsx', `${prefix}/${knowledge_id}/knowledge/${knowledge_id}/export`, undefined, loading) } /** *导出Zip知识库 @@ -176,7 +176,7 @@ const exportZipKnowledge: ( ) => Promise = (knowledge_name, knowledge_id, loading) => { return exportFile( knowledge_name + '.zip', - `dataset/${knowledge_id}/export_zip`, + `${prefix}/${knowledge_id}/knowledge/${knowledge_id}/export_zip`, undefined, loading, ) @@ -233,6 +233,17 @@ const generateRelated: ( return put(`${prefix}/${knowledge_id}/generate_related`, data, null, loading) } +/** + * 删除知识库 + * @param 参数 knowledge_id + */ +const delKnowledge: (knowledge_id: String, loading?: Ref) => Promise> = ( + knowledge_id, + loading +) => { + return del(`${prefix}/${knowledge_id}`, undefined, {}, loading) +} + export default { getKnowledgeByFolder, getKnowledgeList, @@ -249,4 +260,5 @@ export default { getLarkDocumentList, importLarkDocument, generateRelated, + delKnowledge } diff --git a/ui/src/api/knowledge/paragraph.ts b/ui/src/api/knowledge/paragraph.ts index c46c8a8f7..ba7ddec92 100644 --- a/ui/src/api/knowledge/paragraph.ts +++ b/ui/src/api/knowledge/paragraph.ts @@ -4,13 +4,37 @@ import type { pageRequest } from '@/api/type/common' import type { Ref } from 'vue' const prefix = '/workspace/' + localStorage.getItem('workspace_id') + '/knowledge' +/** + * 创建段落 + * @param 参数 + * dataset_id, document_id + * { + "content": "string", + "title": "string", + "is_active": true, + "problem_list": [ + { + "content": "string" + } + ] + } + */ +const postParagraph: ( + dataset_id: string, + document_id: string, + data: any, + loading?: Ref, +) => Promise> = (dataset_id, document_id, data, loading) => { + return post(`${prefix}/${dataset_id}/document/${document_id}/paragraph`, data, undefined, loading) +} + /** * 段落列表 * @param 参数 dataset_id document_id * page { - "current_page": "string", - "page_size": "string", - } + "current_page": "string", + "page_size": "string", + } * param { "title": "string", "content": "string", @@ -21,12 +45,12 @@ const getParagraph: ( document_id: string, page: pageRequest, param: any, - loading?: Ref + loading?: Ref, ) => Promise> = (dataset_id, document_id, page, param, loading) => { return get( `${prefix}/${dataset_id}/document/${document_id}/paragraph/${page.current_page}/${page.page_size}`, param, - loading + loading, ) } @@ -38,13 +62,13 @@ const delParagraph: ( dataset_id: string, document_id: string, paragraph_id: string, - loading?: Ref + loading?: Ref, ) => Promise> = (dataset_id, document_id, paragraph_id, loading) => { return del( `${prefix}/${dataset_id}/document/${document_id}/paragraph/${paragraph_id}`, undefined, {}, - loading + loading, ) } @@ -56,40 +80,17 @@ const delMulParagraph: ( dataset_id: string, document_id: string, data: any, - loading?: Ref + loading?: Ref, ) => Promise> = (dataset_id, document_id, data, loading) => { return del( `${prefix}/${dataset_id}/document/${document_id}/paragraph/_batch`, undefined, { id_list: data }, - loading + loading, ) } -/** - * 创建段落 - * @param 参数 - * dataset_id, document_id - * { - "content": "string", - "title": "string", - "is_active": true, - "problem_list": [ - { - "id": "string", - "content": "string" - } - ] - } - */ -const postParagraph: ( - dataset_id: string, - document_id: string, - data: any, - loading?: Ref -) => Promise> = (dataset_id, document_id, data, loading) => { - return post(`${prefix}/${dataset_id}/document/${document_id}/paragraph`, data, undefined, loading) -} + /** * 修改段落 @@ -112,13 +113,13 @@ const putParagraph: ( document_id: string, paragraph_id: string, data: any, - loading?: Ref + loading?: Ref, ) => Promise> = (dataset_id, document_id, paragraph_id, data, loading) => { return put( `${prefix}/${dataset_id}/document/${document_id}/paragraph/${paragraph_id}`, data, undefined, - loading + loading, ) } @@ -132,33 +133,35 @@ const putMigrateMulParagraph: ( target_dataset_id: string, target_document_id: string, data: any, - loading?: Ref + loading?: Ref, ) => Promise> = ( dataset_id, document_id, target_dataset_id, target_document_id, data, - loading + loading, ) => { return put( `${prefix}/${dataset_id}/document/${document_id}/paragraph/migrate/dataset/${target_dataset_id}/document/${target_document_id}`, data, undefined, - loading + loading, ) } -/** - * 问题列表 - * @param 参数 dataset_id,document_id,paragraph_id - */ -const getProblem: ( +const batchGenerateRelated: ( dataset_id: string, document_id: string, - paragraph_id: string -) => Promise> = (dataset_id, document_id, paragraph_id: string) => { - return get(`${prefix}/${dataset_id}/document/${document_id}/paragraph/${paragraph_id}/problem`) + data: any, + loading?: Ref, +) => Promise> = (dataset_id, document_id, data, loading) => { + return put( + `${prefix}/${dataset_id}/document/${document_id}/paragraph/batch_generate_related`, + data, + undefined, + loading, + ) } /** @@ -175,82 +178,23 @@ const postProblem: ( document_id: string, paragraph_id: string, data: any, - loading?: Ref + loading?: Ref, ) => Promise> = (dataset_id, document_id, paragraph_id, data: any, loading) => { return post( `${prefix}/${dataset_id}/document/${document_id}/paragraph/${paragraph_id}/problem`, data, {}, - loading + loading, ) } -/** - * - * @param dataset_id 数据集id - * @param document_id 文档id - * @param paragraph_id 段落id - * @param problem_id 问题id - * @param loading 加载器 - * @returns - */ -const associationProblem: ( - dataset_id: string, - document_id: string, - paragraph_id: string, - problem_id: string, - loading?: Ref -) => Promise> = (dataset_id, document_id, paragraph_id, problem_id, loading) => { - return put( - `${prefix}/${dataset_id}/document/${document_id}/paragraph/${paragraph_id}/problem/${problem_id}/association`, - {}, - {}, - loading - ) -} -/** - * 解除关联问题 - * @param 参数 dataset_id, document_id, paragraph_id,problem_id - */ -const disassociationProblem: ( - dataset_id: string, - document_id: string, - paragraph_id: string, - problem_id: string, - loading?: Ref -) => Promise> = (dataset_id, document_id, paragraph_id, problem_id, loading) => { - return put( - `${prefix}/${dataset_id}/document/${document_id}/paragraph/${paragraph_id}/problem/${problem_id}/un_association`, - {}, - {}, - loading - ) -} - -const batchGenerateRelated: ( - dataset_id: string, - document_id: string, - data: any, - loading?: Ref -) => Promise> = (dataset_id, document_id, data, loading) => { - return put( - `${prefix}/${dataset_id}/document/${document_id}/paragraph/batch_generate_related`, - data, - undefined, - loading - ) -} - export default { getParagraph, delParagraph, putParagraph, postParagraph, - getProblem, - postProblem, - disassociationProblem, - associationProblem, delMulParagraph, putMigrateMulParagraph, - batchGenerateRelated + batchGenerateRelated, + postProblem, } diff --git a/ui/src/api/knowledge/problem.ts b/ui/src/api/knowledge/problem.ts index dc1abdf5f..f66d790d0 100644 --- a/ui/src/api/knowledge/problem.ts +++ b/ui/src/api/knowledge/problem.ts @@ -1,14 +1,27 @@ -import {Result} from '@/request/Result' -import {get, post, del, put} from '@/request/index' -import type {Ref} from 'vue' -import type {KeyValue} from '@/api/type/common' -import type {pageRequest} from '@/api/type/common' +import { Result } from '@/request/Result' +import { get, post, del, put } from '@/request/index' +import type { Ref } from 'vue' +import type { KeyValue } from '@/api/type/common' +import type { pageRequest } from '@/api/type/common' const prefix = '/workspace/' + localStorage.getItem('workspace_id') + '/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 参数 dataset_id, + * @param 参数 knowledge_id, * page { "current_page": "string", "page_size": "string", @@ -19,99 +32,87 @@ const prefix = '/workspace/' + localStorage.getItem('workspace_id') + '/knowledg */ const getProblems: ( - dataset_id: string, + knowledge_id: string, page: pageRequest, param: any, loading?: Ref, -) => Promise> = (dataset_id, page, param, loading) => { +) => Promise> = (knowledge_id, page, param, loading) => { return get( - `${prefix}/${dataset_id}/problem/${page.current_page}/${page.page_size}`, + `${prefix}/${knowledge_id}/problem/${page.current_page}/${page.page_size}`, param, loading, ) } -/** - * 创建问题 - * @param 参数 dataset_id - * data: array[string] - */ -const postProblems: ( - dataset_id: string, - data: any, - loading?: Ref, -) => Promise> = (dataset_id, data, loading) => { - return post(`${prefix}/${dataset_id}/problem`, data, undefined, loading) -} - -/** - * 删除问题 - * @param 参数 dataset_id, problem_id, - */ -const delProblems: ( - dataset_id: string, - problem_id: string, - loading?: Ref, -) => Promise> = (dataset_id, problem_id, loading) => { - return del(`${prefix}/${dataset_id}/problem/${problem_id}`, loading) -} - -/** - * 批量删除问题 - * @param 参数 dataset_id, - */ -const delMulProblem: ( - dataset_id: string, - data: any, - loading?: Ref, -) => Promise> = (dataset_id, data, loading) => { - return del(`${prefix}/${dataset_id}/problem/_batch`, undefined, data, loading) -} - /** * 修改问题 * @param 参数 - * dataset_id, problem_id, + * knowledge_id, problem_id, * { "content": "string", } */ const putProblems: ( - dataset_id: string, + knowledge_id: string, problem_id: string, data: any, loading?: Ref, -) => Promise> = (dataset_id, problem_id, data: any, loading) => { - return put(`${prefix}/${dataset_id}/problem/${problem_id}`, data, undefined, loading) +) => 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 参数 - * dataset_id, problem_id, + * knowledge_id, problem_id, */ const getDetailProblems: ( - dataset_id: string, + knowledge_id: string, problem_id: string, loading?: Ref, -) => Promise> = (dataset_id, problem_id, loading) => { - return get(`${prefix}/${dataset_id}/problem/${problem_id}/paragraph`, undefined, loading) +) => Promise> = (knowledge_id, problem_id, loading) => { + return get(`${prefix}/${knowledge_id}/problem/${problem_id}/paragraph`, undefined, loading) } /** * 批量关联段落 - * @param 参数 dataset_id, + * @param 参数 knowledge_id, * { - "problem_id_list": "Array", - "paragraph_list": "Array", - } + "problem_id_list": "Array", + "paragraph_list": "Array", + } */ -const postMulAssociationProblem: ( - dataset_id: string, +const putMulAssociationProblem: ( + knowledge_id: string, data: any, loading?: Ref, -) => Promise> = (dataset_id, data, loading) => { - return post(`${prefix}/${dataset_id}/problem/_batch`, data, undefined, loading) +) => 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 { @@ -120,6 +121,6 @@ export default { delProblems, putProblems, getDetailProblems, - delMulProblem, - postMulAssociationProblem, + putMulProblem, + putMulAssociationProblem, } diff --git a/ui/src/enums/application.ts b/ui/src/enums/application.ts index 9d3b52e8b..7bc565fc9 100644 --- a/ui/src/enums/application.ts +++ b/ui/src/enums/application.ts @@ -1,7 +1,7 @@ export enum SearchMode { - embedding = 'views.application.applicationForm.dialog.vectorSearch', - keywords = 'views.application.applicationForm.dialog.fullTextSearch', - blend = 'views.application.applicationForm.dialog.hybridSearch' + embedding = 'views.application.form.dialog.vectorSearch', + keywords = 'views.application.form.dialog.fullTextSearch', + blend = 'views.application.form.dialog.hybridSearch' } export enum WorkflowType { diff --git a/ui/src/layout/components/sidebar/SidebarItem.vue b/ui/src/layout/components/sidebar/SidebarItem.vue index f47cf769c..7632de1b3 100644 --- a/ui/src/layout/components/sidebar/SidebarItem.vue +++ b/ui/src/layout/components/sidebar/SidebarItem.vue @@ -83,8 +83,8 @@ const menuIcon = computed(() => { font-weight: 500; border-radius: 4px; &:hover { - background: none; - color: var(--el-color-primary); + background: var(--app-text-color-light-1); + color: var(--el-menu-text-color); } } :deep(.el-sub-menu__title) { diff --git a/ui/src/layout/components/sidebar/index.vue b/ui/src/layout/components/sidebar/index.vue index 2c18607bd..0f9dafdd1 100644 --- a/ui/src/layout/components/sidebar/index.vue +++ b/ui/src/layout/components/sidebar/index.vue @@ -49,13 +49,6 @@ const activeMenu = computed(() => { height: 100%; border: none; background: none; - .el-menu-item { - &:hover { - background: var(--app-text-color-light-1); - color: var(--el-menu-text-color); - cursor: pointer; - } - } } } diff --git a/ui/src/stores/index.ts b/ui/src/stores/index.ts index 7ed8955c4..fd8909c76 100644 --- a/ui/src/stores/index.ts +++ b/ui/src/stores/index.ts @@ -8,6 +8,7 @@ import useModelStore from './modules/model' import usePromptStore from './modules/prompt' import useProblemStore from './modules/problem' import useParagraphStore from './modules/paragraph' +import useDocumentStore from './modules/document' const useStore = () => ({ common: useCommonStore(), @@ -20,6 +21,7 @@ const useStore = () => ({ prompt: usePromptStore(), problem: useProblemStore(), paragraph: useParagraphStore(), + document: useDocumentStore(), }) export default useStore diff --git a/ui/src/stores/modules/document.ts b/ui/src/stores/modules/document.ts new file mode 100644 index 000000000..6d029cd7c --- /dev/null +++ b/ui/src/stores/modules/document.ts @@ -0,0 +1,35 @@ +import { defineStore } from 'pinia' +import documentApi from '@/api/knowledge/document' +import { type Ref } from 'vue' + +const useDocumentStore = defineStore('document', { + state: () => ({}), + actions: { + async asyncGetAllDocument(id: string, loading?: Ref) { + return new Promise((resolve, reject) => { + documentApi + .getAllDocument(id, loading) + .then((res) => { + resolve(res) + }) + .catch((error) => { + reject(error) + }) + }) + }, + async asyncPostDocument(datasetId: string, data: any, loading?: Ref) { + return new Promise((resolve, reject) => { + documentApi + .postDocument(datasetId, data, loading) + .then((data) => { + resolve(data) + }) + .catch((error) => { + reject(error) + }) + }) + }, + }, +}) + +export default useDocumentStore diff --git a/ui/src/stores/modules/knowledge.ts b/ui/src/stores/modules/knowledge.ts index f3d945e21..0698d2c34 100644 --- a/ui/src/stores/modules/knowledge.ts +++ b/ui/src/stores/modules/knowledge.ts @@ -43,7 +43,7 @@ const useKnowledgeStore = defineStore('knowledge', { // }) // }) // }, - async asyncGetDatasetDetail( + async asyncGetKnowledgeDetail( knowledge_id: string, loading?: Ref, ) { diff --git a/ui/src/styles/app.scss b/ui/src/styles/app.scss index 38bf42e13..835bde91d 100644 --- a/ui/src/styles/app.scss +++ b/ui/src/styles/app.scss @@ -450,6 +450,12 @@ h5 { border-color: #d6e2ff; } +// 蓝色提示框 +.update-info { + background: #d6e2ff; + line-height: 25px; +} + /* 内容部分 自适应高度 */ diff --git a/ui/src/styles/component.scss b/ui/src/styles/component.scss index 60d169fba..03e0a0bbe 100644 --- a/ui/src/styles/component.scss +++ b/ui/src/styles/component.scss @@ -121,3 +121,32 @@ color: var(--app-text-color); } } + + +.card__radio { + width: 100%; + display: block; + line-height: 22px; + .el-radio { + white-space: break-spaces; + width: 100%; + height: 100%; + line-height: 22px; + color: var(--app-text-color); + } + + :deep(.el-radio__label) { + padding-left: 30px; + width: 100%; + } + :deep(.el-radio__input) { + position: absolute; + top: 16px; + } + .active { + border: 1px solid var(--el-color-primary); + } + .el-card__body { + padding: calc(var(--app-base-px) + 4px) calc(var(--app-base-px) * 2); + } +} diff --git a/ui/src/styles/element-plus.scss b/ui/src/styles/element-plus.scss index 4daca04d5..b683294a1 100644 --- a/ui/src/styles/element-plus.scss +++ b/ui/src/styles/element-plus.scss @@ -25,7 +25,6 @@ --el-card-padding: calc(var(--app-base-px) * 2); --el-card-border-radius: 6px; box-shadow: 0px 2px 4px 0px rgba(31, 35, 41, 0.12) !important; - border: none; &.is-never-shadow { border: 1px solid var(--el-card-border-color); box-shadow: none !important; diff --git a/ui/src/views/application/ApplicationSetting.vue b/ui/src/views/application/ApplicationSetting.vue index c09047f19..2e0254bde 100644 --- a/ui/src/views/application/ApplicationSetting.vue +++ b/ui/src/views/application/ApplicationSetting.vue @@ -6,7 +6,7 @@ {{ $t('common.setting') }} - {{ $t('views.application.applicationForm.buttons.publish') }} + {{ $t('views.application.form.buttons.publish') }} @@ -427,7 +427,7 @@

- {{ $t('views.application.applicationForm.title.appTest') }} + {{ $t('views.application.form.title.appTest') }}

@@ -524,11 +524,11 @@ const defaultPrompt = t('views.application.form.prompt.defaultPrompt', { }) const optimizationPrompt = - t('views.application.applicationForm.dialog.defaultPrompt1', { + t('views.application.form.dialog.defaultPrompt1', { question: '{question}' }) + '' + - t('views.application.applicationForm.dialog.defaultPrompt2') + t('views.application.form.dialog.defaultPrompt2') const AIModeParamSettingDialogRef = ref>() const ReasoningParamSettingDialogRef = ref>() diff --git a/ui/src/views/application/component/AddDatasetDialog.vue b/ui/src/views/application/component/AddDatasetDialog.vue index f3c93e0f3..fe3e74614 100644 --- a/ui/src/views/application/component/AddDatasetDialog.vue +++ b/ui/src/views/application/component/AddDatasetDialog.vue @@ -1,6 +1,6 @@