mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 01:33:05 +00:00
feat: Knowledge workflow save interface
This commit is contained in:
parent
0a233cae84
commit
ba0f5b5583
|
|
@ -416,18 +416,6 @@ class KnowledgeSerializer(serializers.Serializer):
|
|||
application_id=application_id, knowledge_id=self.data.get('knowledge_id')
|
||||
) for application_id in application_id_list
|
||||
]) if len(application_id_list) > 0 else None
|
||||
if instance.get("work_flow"):
|
||||
QuerySet(KnowledgeWorkflow).update_or_create(knowledge_id=self.data.get("knowledge_id"),
|
||||
create_defaults={'id': uuid.uuid7(),
|
||||
'knowledge_id': self.data.get(
|
||||
"knowledge_id"),
|
||||
"workspace_id": self.data.get(
|
||||
'workspace_id'),
|
||||
'work_flow': instance.get('work_flow',
|
||||
{}), },
|
||||
defaults={
|
||||
'work_flow': instance.get('work_flow')
|
||||
})
|
||||
knowledge.save()
|
||||
if select_one:
|
||||
return self.one()
|
||||
|
|
|
|||
|
|
@ -191,7 +191,20 @@ class KnowledgeWorkflowSerializer(serializers.Serializer):
|
|||
return True
|
||||
|
||||
def edit(self, instance: Dict):
|
||||
pass
|
||||
self.is_valid(raise_exception=True)
|
||||
if instance.get("work_flow"):
|
||||
QuerySet(KnowledgeWorkflow).update_or_create(knowledge_id=self.data.get("knowledge_id"),
|
||||
create_defaults={'id': uuid.uuid7(),
|
||||
'knowledge_id': self.data.get(
|
||||
"knowledge_id"),
|
||||
"workspace_id": self.data.get(
|
||||
'workspace_id'),
|
||||
'work_flow': instance.get('work_flow',
|
||||
{}), },
|
||||
defaults={
|
||||
'work_flow': instance.get('work_flow')
|
||||
})
|
||||
return self.one()
|
||||
|
||||
def one(self):
|
||||
self.is_valid(raise_exception=True)
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ urlpatterns = [
|
|||
path('workspace/<str:workspace_id>/knowledge/tags', views.KnowledgeView.Tags.as_view()),
|
||||
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>', views.KnowledgeView.Operate.as_view()),
|
||||
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/sync', views.KnowledgeView.SyncWeb.as_view()),
|
||||
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/workfolw', views.KnowledgeWorkflowView.Operate.as_view()),
|
||||
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/workflow', views.KnowledgeWorkflowView.Operate.as_view()),
|
||||
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/generate_related', views.KnowledgeView.GenerateRelated.as_view()),
|
||||
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/embedding', views.KnowledgeView.Embedding.as_view()),
|
||||
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/hit_test', views.KnowledgeView.HitTest.as_view()),
|
||||
|
|
|
|||
|
|
@ -176,8 +176,8 @@ class KnowledgeWorkflowView(APIView):
|
|||
tags=[_('Knowledge Base')] # type: ignore
|
||||
)
|
||||
@has_permissions(
|
||||
PermissionConstants.KNOWLEDGE_EDIT.get_workspace_knowledge_permission(),
|
||||
PermissionConstants.KNOWLEDGE_EDIT.get_workspace_permission_workspace_manage_role(),
|
||||
PermissionConstants.KNOWLEDGE_WORKFLOW_EDIT.get_workspace_knowledge_permission(),
|
||||
PermissionConstants.KNOWLEDGE_WORKFLOW_EDIT.get_workspace_permission_workspace_manage_role(),
|
||||
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
|
||||
ViewPermission(
|
||||
[RoleConstants.USER.get_workspace_role()],
|
||||
|
|
|
|||
|
|
@ -380,6 +380,21 @@ const publish: (knowledge_id: string, loading?: Ref<boolean>) => Promise<Result<
|
|||
return put(`${prefix.value}/${knowledge_id}/publish`, {}, {}, loading)
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存知识库工作流
|
||||
* @param knowledge_id
|
||||
* @param data
|
||||
* @param loading
|
||||
* @returns
|
||||
*/
|
||||
const putKnowledgeWorkflow: (
|
||||
knowledge_id: string,
|
||||
data: any,
|
||||
loading?: Ref<boolean>,
|
||||
) => Promise<Result<any>> = (knowledge_id, data, loading) => {
|
||||
return put(`${prefix.value}/${knowledge_id}/workflow`, data, undefined, loading)
|
||||
}
|
||||
|
||||
const listKnowledgeVersion: (
|
||||
knowledge_id: string,
|
||||
loading?: Ref<boolean>,
|
||||
|
|
@ -451,5 +466,6 @@ export default {
|
|||
listKnowledgeVersion,
|
||||
updateKnowledgeVersion,
|
||||
publish,
|
||||
putKnowledgeWorkflow,
|
||||
workflowUpload,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -303,6 +303,21 @@ const getWorkflowAction: (
|
|||
return get(`${prefix}/${knowledge_id}/action/${knowledge_action_id}`, {}, loading)
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存知识库工作流
|
||||
* @param knowledge_id
|
||||
* @param data
|
||||
* @param loading
|
||||
* @returns
|
||||
*/
|
||||
const putKnowledgeWorkflow: (
|
||||
knowledge_id: string,
|
||||
data: any,
|
||||
loading?: Ref<boolean>,
|
||||
) => Promise<Result<any>> = (knowledge_id, data, loading) => {
|
||||
return put(`${prefix}/${knowledge_id}/workflow`, data, undefined, loading)
|
||||
}
|
||||
|
||||
const publish: (knowledge_id: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
|
||||
knowledge_id: string,
|
||||
loading,
|
||||
|
|
@ -342,6 +357,7 @@ export default {
|
|||
workflowAction,
|
||||
getWorkflowAction,
|
||||
publish,
|
||||
putKnowledgeWorkflow,
|
||||
listKnowledgeVersion
|
||||
} as {
|
||||
[key: string]: any
|
||||
|
|
|
|||
|
|
@ -361,6 +361,21 @@ const getWorkflowAction: (
|
|||
return get(`${prefix}/${knowledge_id}/action/${knowledge_action_id}`, {}, loading)
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存知识库工作流
|
||||
* @param knowledge_id
|
||||
* @param data
|
||||
* @param loading
|
||||
* @returns
|
||||
*/
|
||||
const putKnowledgeWorkflow: (
|
||||
knowledge_id: string,
|
||||
data: any,
|
||||
loading?: Ref<boolean>,
|
||||
) => Promise<Result<any>> = (knowledge_id, data, loading) => {
|
||||
return put(`${prefix}/${knowledge_id}/workflow`, data, undefined, loading)
|
||||
}
|
||||
|
||||
const publish: (knowledge_id: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
|
||||
knowledge_id: string,
|
||||
loading,
|
||||
|
|
@ -404,6 +419,7 @@ export default {
|
|||
getKnowledgeWorkflowDatasourceDetails,
|
||||
workflowAction,
|
||||
publish,
|
||||
putKnowledgeWorkflow,
|
||||
listKnowledgeVersion,
|
||||
} as {
|
||||
[key: string]: any
|
||||
|
|
|
|||
|
|
@ -448,7 +448,7 @@ function saveknowledge(bool?: boolean, back?: boolean) {
|
|||
}
|
||||
loading.value = back || false
|
||||
loadSharedApi({ type: 'knowledge', systemType: apiType.value })
|
||||
.putKnowledge(id, obj)
|
||||
.putKnowledgeWorkflow(id, obj)
|
||||
.then(() => {
|
||||
saveTime.value = new Date()
|
||||
if (bool) {
|
||||
|
|
|
|||
|
|
@ -293,6 +293,8 @@ import { MsgSuccess, MsgConfirm } from '@/utils/message'
|
|||
import { SourceTypeEnum } from '@/enums/common'
|
||||
import { t } from '@/locales'
|
||||
import useStore from '@/stores'
|
||||
import { hasPermission } from '@/utils/permission'
|
||||
import { PermissionConst, RoleConst } from '@/utils/permission/data'
|
||||
const router = useRouter()
|
||||
const { user } = useStore()
|
||||
|
||||
|
|
@ -306,7 +308,8 @@ const ManagePermission = () => {
|
|||
permissionPrecise.value.problem_read() ||
|
||||
permissionPrecise.value.edit() ||
|
||||
permissionPrecise.value.knowledge_chat_user_read() ||
|
||||
permissionPrecise.value.hit_test()
|
||||
permissionPrecise.value.hit_test() ||
|
||||
hasPermission([RoleConst.ADMIN, PermissionConst.RESOURCE_KNOWLEDGE_WORKFLOW_READ],'OR')
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue