Skip to content

Commit 953fc5f

Browse files
committed
feat: Knowledge workflow save interface
1 parent 0a233ca commit 953fc5f

File tree

9 files changed

+70
-18
lines changed

9 files changed

+70
-18
lines changed

apps/knowledge/serializers/knowledge.py

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -416,18 +416,6 @@ def edit(self, instance: Dict, select_one=True):
416416
application_id=application_id, knowledge_id=self.data.get('knowledge_id')
417417
) for application_id in application_id_list
418418
]) if len(application_id_list) > 0 else None
419-
if instance.get("work_flow"):
420-
QuerySet(KnowledgeWorkflow).update_or_create(knowledge_id=self.data.get("knowledge_id"),
421-
create_defaults={'id': uuid.uuid7(),
422-
'knowledge_id': self.data.get(
423-
"knowledge_id"),
424-
"workspace_id": self.data.get(
425-
'workspace_id'),
426-
'work_flow': instance.get('work_flow',
427-
{}), },
428-
defaults={
429-
'work_flow': instance.get('work_flow')
430-
})
431419
knowledge.save()
432420
if select_one:
433421
return self.one()

apps/knowledge/serializers/knowledge_workflow.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,20 @@ def publish(self, with_valid=True):
191191
return True
192192

193193
def edit(self, instance: Dict):
194-
pass
194+
self.is_valid(raise_exception=True)
195+
if instance.get("work_flow"):
196+
QuerySet(KnowledgeWorkflow).update_or_create(knowledge_id=self.data.get("knowledge_id"),
197+
create_defaults={'id': uuid.uuid7(),
198+
'knowledge_id': self.data.get(
199+
"knowledge_id"),
200+
"workspace_id": self.data.get(
201+
'workspace_id'),
202+
'work_flow': instance.get('work_flow',
203+
{}), },
204+
defaults={
205+
'work_flow': instance.get('work_flow')
206+
})
207+
return self.one()
195208

196209
def one(self):
197210
self.is_valid(raise_exception=True)

apps/knowledge/urls.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
path('workspace/<str:workspace_id>/knowledge/tags', views.KnowledgeView.Tags.as_view()),
1717
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>', views.KnowledgeView.Operate.as_view()),
1818
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/sync', views.KnowledgeView.SyncWeb.as_view()),
19-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/workfolw', views.KnowledgeWorkflowView.Operate.as_view()),
19+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/workflow', views.KnowledgeWorkflowView.Operate.as_view()),
2020
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/generate_related', views.KnowledgeView.GenerateRelated.as_view()),
2121
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/embedding', views.KnowledgeView.Embedding.as_view()),
2222
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/hit_test', views.KnowledgeView.HitTest.as_view()),

apps/knowledge/views/knowledge_workflow.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,8 +176,8 @@ class Operate(APIView):
176176
tags=[_('Knowledge Base')] # type: ignore
177177
)
178178
@has_permissions(
179-
PermissionConstants.KNOWLEDGE_EDIT.get_workspace_knowledge_permission(),
180-
PermissionConstants.KNOWLEDGE_EDIT.get_workspace_permission_workspace_manage_role(),
179+
PermissionConstants.KNOWLEDGE_WORKFLOW_EDIT.get_workspace_knowledge_permission(),
180+
PermissionConstants.KNOWLEDGE_WORKFLOW_EDIT.get_workspace_permission_workspace_manage_role(),
181181
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
182182
ViewPermission(
183183
[RoleConstants.USER.get_workspace_role()],

ui/src/api/knowledge/knowledge.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,6 +380,21 @@ const publish: (knowledge_id: string, loading?: Ref<boolean>) => Promise<Result<
380380
return put(`${prefix.value}/${knowledge_id}/publish`, {}, {}, loading)
381381
}
382382

383+
/**
384+
* 保存知识库工作流
385+
* @param knowledge_id
386+
* @param data
387+
* @param loading
388+
* @returns
389+
*/
390+
const putKnowledgeWorkflow: (
391+
knowledge_id: string,
392+
data: any,
393+
loading?: Ref<boolean>,
394+
) => Promise<Result<any>> = (knowledge_id, data, loading) => {
395+
return put(`${prefix.value}/${knowledge_id}/workflow`, data, undefined, loading)
396+
}
397+
383398
const listKnowledgeVersion: (
384399
knowledge_id: string,
385400
loading?: Ref<boolean>,
@@ -451,5 +466,6 @@ export default {
451466
listKnowledgeVersion,
452467
updateKnowledgeVersion,
453468
publish,
469+
putKnowledgeWorkflow,
454470
workflowUpload,
455471
}

ui/src/api/system-resource-management/knowledge.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,21 @@ const getWorkflowAction: (
303303
return get(`${prefix}/${knowledge_id}/action/${knowledge_action_id}`, {}, loading)
304304
}
305305

306+
/**
307+
* 保存知识库工作流
308+
* @param knowledge_id
309+
* @param data
310+
* @param loading
311+
* @returns
312+
*/
313+
const putKnowledgeWorkflow: (
314+
knowledge_id: string,
315+
data: any,
316+
loading?: Ref<boolean>,
317+
) => Promise<Result<any>> = (knowledge_id, data, loading) => {
318+
return put(`${prefix}/${knowledge_id}/workflow`, data, undefined, loading)
319+
}
320+
306321
const publish: (knowledge_id: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
307322
knowledge_id: string,
308323
loading,
@@ -342,6 +357,7 @@ export default {
342357
workflowAction,
343358
getWorkflowAction,
344359
publish,
360+
putKnowledgeWorkflow,
345361
listKnowledgeVersion
346362
} as {
347363
[key: string]: any

ui/src/api/system-shared/knowledge.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,21 @@ const getWorkflowAction: (
361361
return get(`${prefix}/${knowledge_id}/action/${knowledge_action_id}`, {}, loading)
362362
}
363363

364+
/**
365+
* 保存知识库工作流
366+
* @param knowledge_id
367+
* @param data
368+
* @param loading
369+
* @returns
370+
*/
371+
const putKnowledgeWorkflow: (
372+
knowledge_id: string,
373+
data: any,
374+
loading?: Ref<boolean>,
375+
) => Promise<Result<any>> = (knowledge_id, data, loading) => {
376+
return put(`${prefix}/${knowledge_id}/workflow`, data, undefined, loading)
377+
}
378+
364379
const publish: (knowledge_id: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
365380
knowledge_id: string,
366381
loading,
@@ -404,6 +419,7 @@ export default {
404419
getKnowledgeWorkflowDatasourceDetails,
405420
workflowAction,
406421
publish,
422+
putKnowledgeWorkflow,
407423
listKnowledgeVersion,
408424
} as {
409425
[key: string]: any

ui/src/views/knowledge-workflow/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -448,7 +448,7 @@ function saveknowledge(bool?: boolean, back?: boolean) {
448448
}
449449
loading.value = back || false
450450
loadSharedApi({ type: 'knowledge', systemType: apiType.value })
451-
.putKnowledge(id, obj)
451+
.putKnowledgeWorkflow(id, obj)
452452
.then(() => {
453453
saveTime.value = new Date()
454454
if (bool) {

ui/src/views/system-resource-management/KnowledgeResourceIndex.vue

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,8 @@ import { MsgSuccess, MsgConfirm } from '@/utils/message'
293293
import { SourceTypeEnum } from '@/enums/common'
294294
import { t } from '@/locales'
295295
import useStore from '@/stores'
296+
import { hasPermission } from '@/utils/permission'
297+
import { PermissionConst, RoleConst } from '@/utils/permission/data'
296298
const router = useRouter()
297299
const { user } = useStore()
298300
@@ -306,7 +308,8 @@ const ManagePermission = () => {
306308
permissionPrecise.value.problem_read() ||
307309
permissionPrecise.value.edit() ||
308310
permissionPrecise.value.knowledge_chat_user_read() ||
309-
permissionPrecise.value.hit_test()
311+
permissionPrecise.value.hit_test() ||
312+
hasPermission([RoleConst.ADMIN, PermissionConst.RESOURCE_KNOWLEDGE_WORKFLOW_READ],'OR')
310313
)
311314
}
312315

0 commit comments

Comments
 (0)