From c77394fb8f3bc391ed80d04a76a98091c0e565d7 Mon Sep 17 00:00:00 2001 From: ire <931903008@qq.com> Date: Sun, 29 Dec 2024 15:34:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=A1=A8=E7=BB=93=E6=9E=84?= =?UTF-8?q?=EF=BC=8C=E5=AE=9E=E4=BD=93=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/llm/enums/ErrorCodeConstants.java | 27 ++++++ .../application/vo/ApplicationRespVO.java | 29 +++--- .../application/vo/ApplicationSaveReqVO.java | 32 ++++--- .../admin/basemodel/BaseModelController.java | 95 +++++++++++++++++++ .../basemodel/vo/BaseModelPageReqVO.java | 43 +++++++++ .../admin/basemodel/vo/BaseModelRespVO.java | 51 ++++++++++ .../basemodel/vo/BaseModelSaveReqVO.java | 42 ++++++++ .../conversation/ConversationController.java | 95 +++++++++++++++++++ .../vo/ConversationPageReqVO.java | 43 +++++++++ .../conversation/vo/ConversationRespVO.java | 51 ++++++++++ .../vo/ConversationSaveReqVO.java | 38 ++++++++ .../DataProcessTaskController.java | 95 +++++++++++++++++++ .../vo/DataProcessTaskPageReqVO.java | 37 ++++++++ .../vo/DataProcessTaskRespVO.java | 43 +++++++++ .../vo/DataProcessTaskSaveReqVO.java | 32 +++++++ .../DatasetAnswerController.java | 95 +++++++++++++++++++ .../vo/DatasetAnswerPageReqVO.java | 34 +++++++ .../datasetanswer/vo/DatasetAnswerRespVO.java | 39 ++++++++ .../vo/DatasetAnswerSaveReqVO.java | 28 ++++++ .../datasetfiles/DatasetFilesController.java | 95 +++++++++++++++++++ .../vo/DatasetFilesPageReqVO.java | 34 +++++++ .../datasetfiles/vo/DatasetFilesRespVO.java | 39 ++++++++ .../vo/DatasetFilesSaveReqVO.java | 28 ++++++ .../DatasetQuestionController.java | 95 +++++++++++++++++++ .../vo/DatasetQuestionPageReqVO.java | 34 +++++++ .../vo/DatasetQuestionRespVO.java | 39 ++++++++ .../vo/DatasetQuestionSaveReqVO.java | 28 ++++++ .../finetuning/FineTuningController.java | 95 +++++++++++++++++++ .../finetuning/vo/FineTuningPageReqVO.java | 41 ++++++++ .../admin/finetuning/vo/FineTuningRespVO.java | 48 ++++++++++ .../finetuning/vo/FineTuningSaveReqVO.java | 38 ++++++++ .../FineTuningLossController.java | 95 +++++++++++++++++++ .../vo/FineTuningLossPageReqVO.java | 31 ++++++ .../vo/FineTuningLossRespVO.java | 35 +++++++ .../vo/FineTuningLossSaveReqVO.java | 25 +++++ .../PromptTemplatesController.java | 95 +++++++++++++++++++ .../vo/PromptTemplatesPageReqVO.java | 40 ++++++++ .../vo/PromptTemplatesRespVO.java | 47 +++++++++ .../vo/PromptTemplatesSaveReqVO.java | 33 +++++++ ...PromptTemplatesApplicationsController.java | 95 +++++++++++++++++++ .../PromptTemplatesApplicationsPageReqVO.java | 28 ++++++ .../vo/PromptTemplatesApplicationsRespVO.java | 31 ++++++ .../PromptTemplatesApplicationsSaveReqVO.java | 21 ++++ .../PromptTemplatesTagsController.java | 95 +++++++++++++++++++ .../vo/PromptTemplatesTagsPageReqVO.java | 28 ++++++ .../vo/PromptTemplatesTagsRespVO.java | 31 ++++++ .../vo/PromptTemplatesTagsSaveReqVO.java | 21 ++++ .../dataobject/application/ApplicationDO.java | 16 ++-- .../dal/dataobject/basemodel/BaseModelDO.java | 59 ++++++++++++ .../conversation/ConversationDO.java | 59 ++++++++++++ .../dataprocesstask/DataProcessTaskDO.java | 51 ++++++++++ .../datasetanswer/DatasetAnswerDO.java | 47 +++++++++ .../datasetfiles/DatasetFilesDO.java | 47 +++++++++ .../datasetquestion/DatasetQuestionDO.java | 47 +++++++++ .../dataobject/finetuning/FineTuningDO.java | 56 +++++++++++ .../finetuningloss/FineTuningLossDO.java | 43 +++++++++ .../prompttemplates/PromptTemplatesDO.java | 55 +++++++++++ .../PromptTemplatesApplicationsDO.java | 39 ++++++++ .../PromptTemplatesTagsDO.java | 39 ++++++++ .../dal/mysql/basemodel/BaseModelMapper.java | 33 +++++++ .../conversation/ConversationMapper.java | 33 +++++++ .../DataProcessTaskMapper.java | 31 ++++++ .../datasetanswer/DatasetAnswerMapper.java | 30 ++++++ .../datasetfiles/DatasetFilesMapper.java | 30 ++++++ .../DatasetQuestionMapper.java | 30 ++++++ .../mysql/finetuning/FineTuningMapper.java | 32 +++++++ .../finetuningloss/FineTuningLossMapper.java | 29 ++++++ .../PromptTemplatesMapper.java | 32 +++++++ .../PromptTemplatesApplicationsMapper.java | 28 ++++++ .../PromptTemplatesTagsMapper.java | 28 ++++++ .../service/basemodel/BaseModelService.java | 55 +++++++++++ .../basemodel/BaseModelServiceImpl.java | 74 +++++++++++++++ .../conversation/ConversationService.java | 55 +++++++++++ .../conversation/ConversationServiceImpl.java | 74 +++++++++++++++ .../DataProcessTaskService.java | 55 +++++++++++ .../DataProcessTaskServiceImpl.java | 74 +++++++++++++++ .../datasetanswer/DatasetAnswerService.java | 55 +++++++++++ .../DatasetAnswerServiceImpl.java | 74 +++++++++++++++ .../datasetfiles/DatasetFilesService.java | 55 +++++++++++ .../datasetfiles/DatasetFilesServiceImpl.java | 74 +++++++++++++++ .../DatasetQuestionService.java | 55 +++++++++++ .../DatasetQuestionServiceImpl.java | 74 +++++++++++++++ .../service/finetuning/FineTuningService.java | 55 +++++++++++ .../finetuning/FineTuningServiceImpl.java | 74 +++++++++++++++ .../finetuningloss/FineTuningLossService.java | 55 +++++++++++ .../FineTuningLossServiceImpl.java | 74 +++++++++++++++ .../PromptTemplatesService.java | 55 +++++++++++ .../PromptTemplatesServiceImpl.java | 74 +++++++++++++++ .../PromptTemplatesApplicationsService.java | 55 +++++++++++ ...romptTemplatesApplicationsServiceImpl.java | 74 +++++++++++++++ .../PromptTemplatesTagsService.java | 55 +++++++++++ .../PromptTemplatesTagsServiceImpl.java | 74 +++++++++++++++ .../mapper/basemodel/BaseModelMapper.xml | 12 +++ .../conversation/ConversationMapper.xml | 12 +++ .../dataprocesstask/DataProcessTaskMapper.xml | 12 +++ .../datasetanswer/DatasetAnswerMapper.xml | 12 +++ .../datasetfiles/DatasetFilesMapper.xml | 12 +++ .../datasetquestion/DatasetQuestionMapper.xml | 12 +++ .../mapper/finetuning/FineTuningMapper.xml | 12 +++ .../finetuningloss/FineTuningLossMapper.xml | 12 +++ .../prompttemplates/PromptTemplatesMapper.xml | 12 +++ .../PromptTemplatesApplicationsMapper.xml | 12 +++ .../PromptTemplatesTagsMapper.xml | 12 +++ 103 files changed, 4728 insertions(+), 31 deletions(-) create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/basemodel/BaseModelController.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/basemodel/vo/BaseModelPageReqVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/basemodel/vo/BaseModelRespVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/basemodel/vo/BaseModelSaveReqVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/conversation/ConversationController.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/conversation/vo/ConversationPageReqVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/conversation/vo/ConversationRespVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/conversation/vo/ConversationSaveReqVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/DataProcessTaskController.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/vo/DataProcessTaskPageReqVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/vo/DataProcessTaskRespVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/vo/DataProcessTaskSaveReqVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetanswer/DatasetAnswerController.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetanswer/vo/DatasetAnswerPageReqVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetanswer/vo/DatasetAnswerRespVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetanswer/vo/DatasetAnswerSaveReqVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetfiles/DatasetFilesController.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetfiles/vo/DatasetFilesPageReqVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetfiles/vo/DatasetFilesRespVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetfiles/vo/DatasetFilesSaveReqVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetquestion/DatasetQuestionController.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetquestion/vo/DatasetQuestionPageReqVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetquestion/vo/DatasetQuestionRespVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetquestion/vo/DatasetQuestionSaveReqVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuning/FineTuningController.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuning/vo/FineTuningPageReqVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuning/vo/FineTuningRespVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuning/vo/FineTuningSaveReqVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuningloss/FineTuningLossController.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuningloss/vo/FineTuningLossPageReqVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuningloss/vo/FineTuningLossRespVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuningloss/vo/FineTuningLossSaveReqVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplates/PromptTemplatesController.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplates/vo/PromptTemplatesPageReqVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplates/vo/PromptTemplatesRespVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplates/vo/PromptTemplatesSaveReqVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplications/PromptTemplatesApplicationsController.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplications/vo/PromptTemplatesApplicationsPageReqVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplications/vo/PromptTemplatesApplicationsRespVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplications/vo/PromptTemplatesApplicationsSaveReqVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestags/PromptTemplatesTagsController.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestags/vo/PromptTemplatesTagsPageReqVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestags/vo/PromptTemplatesTagsRespVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestags/vo/PromptTemplatesTagsSaveReqVO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/basemodel/BaseModelDO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/conversation/ConversationDO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/dataprocesstask/DataProcessTaskDO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/datasetanswer/DatasetAnswerDO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/datasetfiles/DatasetFilesDO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/datasetquestion/DatasetQuestionDO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/finetuning/FineTuningDO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/finetuningloss/FineTuningLossDO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/prompttemplates/PromptTemplatesDO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/prompttemplatesapplications/PromptTemplatesApplicationsDO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/prompttemplatestags/PromptTemplatesTagsDO.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/basemodel/BaseModelMapper.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/conversation/ConversationMapper.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/dataprocesstask/DataProcessTaskMapper.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/datasetanswer/DatasetAnswerMapper.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/datasetfiles/DatasetFilesMapper.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/datasetquestion/DatasetQuestionMapper.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/finetuning/FineTuningMapper.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/finetuningloss/FineTuningLossMapper.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/prompttemplates/PromptTemplatesMapper.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/prompttemplatesapplications/PromptTemplatesApplicationsMapper.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/prompttemplatestags/PromptTemplatesTagsMapper.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/basemodel/BaseModelService.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/basemodel/BaseModelServiceImpl.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationService.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationServiceImpl.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataprocesstask/DataProcessTaskService.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataprocesstask/DataProcessTaskServiceImpl.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datasetanswer/DatasetAnswerService.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datasetanswer/DatasetAnswerServiceImpl.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datasetfiles/DatasetFilesService.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datasetfiles/DatasetFilesServiceImpl.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datasetquestion/DatasetQuestionService.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datasetquestion/DatasetQuestionServiceImpl.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuning/FineTuningService.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuning/FineTuningServiceImpl.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningloss/FineTuningLossService.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningloss/FineTuningLossServiceImpl.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplates/PromptTemplatesService.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplates/PromptTemplatesServiceImpl.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatesapplications/PromptTemplatesApplicationsService.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatesapplications/PromptTemplatesApplicationsServiceImpl.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatestags/PromptTemplatesTagsService.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatestags/PromptTemplatesTagsServiceImpl.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/basemodel/BaseModelMapper.xml create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/conversation/ConversationMapper.xml create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/dataprocesstask/DataProcessTaskMapper.xml create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/datasetanswer/DatasetAnswerMapper.xml create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/datasetfiles/DatasetFilesMapper.xml create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/datasetquestion/DatasetQuestionMapper.xml create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/finetuning/FineTuningMapper.xml create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/finetuningloss/FineTuningLossMapper.xml create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/prompttemplates/PromptTemplatesMapper.xml create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/prompttemplatesapplications/PromptTemplatesApplicationsMapper.xml create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/prompttemplatestags/PromptTemplatesTagsMapper.xml diff --git a/yudao-module-llm/yudao-module-llm-api/src/main/java/cn/iocoder/yudao/module/llm/enums/ErrorCodeConstants.java b/yudao-module-llm/yudao-module-llm-api/src/main/java/cn/iocoder/yudao/module/llm/enums/ErrorCodeConstants.java index 7b69052ca..7372a8be8 100644 --- a/yudao-module-llm/yudao-module-llm-api/src/main/java/cn/iocoder/yudao/module/llm/enums/ErrorCodeConstants.java +++ b/yudao-module-llm/yudao-module-llm-api/src/main/java/cn/iocoder/yudao/module/llm/enums/ErrorCodeConstants.java @@ -22,10 +22,37 @@ public interface ErrorCodeConstants { ErrorCode MODEL_ASSESS_TASK_MANUAL_NOT_EXISTS = new ErrorCode(10009, "人工评估不存在"); ErrorCode MODEL_ASSESS_DIMENSION_NOT_EXISTS = new ErrorCode(10010, "评估维度不存在"); + ErrorCode MODEL_ASSESS_TASK_DIMENSION_NOT_EXISTS = new ErrorCode(10011, "人工评估维度不存在"); + ErrorCode MODEL_ASSESS_TASK_AUTO_NOT_EXISTS = new ErrorCode(10012, "自动评估维度不存在"); + ErrorCode MODEL_ASSESS_TASK_STOPLIST_NOT_EXISTS = new ErrorCode(10013, "自动评估维度不存在"); + ErrorCode MODEL_ASSESS_STOPLIST_NOT_EXISTS = new ErrorCode(10014, "自动评估维度不存在"); + ErrorCode LEARNING_RESOURCES_NOT_EXISTS = new ErrorCode(10015, "学习资源不存在"); + ErrorCode PROMPT_TEMPLATES_NOT_EXISTS = new ErrorCode(10016, "模板信息不存在"); + + ErrorCode PROMPT_TEMPLATES_APPLICATIONS_NOT_EXISTS = new ErrorCode(10017, "模板信息不存在"); + + ErrorCode PROMPT_TEMPLATES_TAGS_NOT_EXISTS = new ErrorCode(10017, "模板信息不存在"); + + ErrorCode FINE_TUNING_LOSS_NOT_EXISTS = new ErrorCode(10018, "损失记录不存在"); + + ErrorCode FINE_TUNING_NOT_EXISTS = new ErrorCode(10019, "模型微调不存在"); + + ErrorCode DATA_PROCESS_TASK_NOT_EXISTS = new ErrorCode(10020, "数据处理任务不存在"); + + ErrorCode CONVERSATION_NOT_EXISTS = new ErrorCode(10021, "大模型对话记录不存在"); + + ErrorCode BASE_MODEL_NOT_EXISTS = new ErrorCode(10022, "基座模型不存在"); + + ErrorCode DATASET_ANSWER_NOT_EXISTS = new ErrorCode(10023, "数据集数据问题标注内容不存在"); + + ErrorCode DATASET_FILES_NOT_EXISTS = new ErrorCode(10024, "数据集数据文件不存在"); + + ErrorCode DATASET_QUESTION_NOT_EXISTS = new ErrorCode(10025, "数据集数据问题不存在"); + } diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/application/vo/ApplicationRespVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/application/vo/ApplicationRespVO.java index a6ff77551..7dbdb787a 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/application/vo/ApplicationRespVO.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/application/vo/ApplicationRespVO.java @@ -39,25 +39,21 @@ public class ApplicationRespVO { @ExcelProperty("模型服务,模型服务ID") private Long appModel; - @Schema(description = "随机性") - @ExcelProperty("随机性") + @Schema(description = "废弃, 随机性") + @ExcelProperty("废弃, 随机性") private Integer temperature; - @Schema(description = "采样性") - @ExcelProperty("采样性") + @Schema(description = "废弃, 采样性") + @ExcelProperty("废弃, 采样性") private Integer topP; - @Schema(description = "单次回复限制") - @ExcelProperty("单次回复限制") + @Schema(description = "废弃, 单次回复限制") + @ExcelProperty("废弃, 单次回复限制") private Integer maxTokens; - @Schema(description = "系统Prompt") - @ExcelProperty("系统Prompt") - private String prompt; - - @Schema(description = "向量知识库,知识库ID") + @Schema(description = "向量知识库,知识库ID", example = "15511") @ExcelProperty("向量知识库,知识库ID") - private Long retrievalAugmentedGeneration; + private Long modelServiceId; @Schema(description = "应用API地址", example = "https://www.iocoder.cn") @ExcelProperty("应用API地址") @@ -75,10 +71,17 @@ public class ApplicationRespVO { @ExcelProperty("创建时间") private LocalDateTime createTime; + @Schema(description = "大模型服务的推理参数,以JSON格式存储") + @ExcelProperty("大模型服务的推理参数,以JSON格式存储") + private String modelParams; + + @Schema(description = "系统Prompt") + @ExcelProperty("系统Prompt") + private String prompt; + @Schema(description = "创建人id") private String creator; @Schema(description = "创建人") private String creatorName; - } diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/application/vo/ApplicationSaveReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/application/vo/ApplicationSaveReqVO.java index 6048f0706..855abd429 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/application/vo/ApplicationSaveReqVO.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/application/vo/ApplicationSaveReqVO.java @@ -9,10 +9,10 @@ import javax.validation.constraints.*; @Data public class ApplicationSaveReqVO { - @Schema(description = "应用ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "31452") + @Schema(description = "应用ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "25658") private Long id; - @Schema(description = "应用名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") + @Schema(description = "应用名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") @NotEmpty(message = "应用名称不能为空") private String appName; @@ -30,20 +30,17 @@ public class ApplicationSaveReqVO { @Schema(description = "模型服务,模型服务ID") private Long appModel; - @Schema(description = "随机性") + @Schema(description = "废弃, 随机性") private Integer temperature; - @Schema(description = "采样性") + @Schema(description = "废弃, 采样性") private Integer topP; - @Schema(description = "单次回复限制") + @Schema(description = "废弃, 单次回复限制") private Integer maxTokens; - @Schema(description = "系统Prompt") - private String prompt; - - @Schema(description = "向量知识库,知识库ID") - private Long retrievalAugmentedGeneration; + @Schema(description = "向量知识库,知识库ID", example = "15511") + private Long modelServiceId; @Schema(description = "应用API地址", example = "https://www.iocoder.cn") private String appUrl; @@ -51,7 +48,18 @@ public class ApplicationSaveReqVO { @Schema(description = "应用图标") private String appLogo; - @Schema(description = "聊天人次", example = "8556") + @Schema(description = "聊天人次", example = "20515") private Long chatCount; -} \ No newline at end of file + @Schema(description = "大模型服务的推理参数,以JSON格式存储") + private String modelParams; + + @Schema(description = "系统Prompt") + private String prompt; + + @Schema(description = "创建人id") + private String creator; + + @Schema(description = "创建人") + private String creatorName; +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/basemodel/BaseModelController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/basemodel/BaseModelController.java new file mode 100644 index 000000000..4498b60e9 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/basemodel/BaseModelController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.llm.controller.admin.basemodel; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.llm.controller.admin.basemodel.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.basemodel.BaseModelDO; +import cn.iocoder.yudao.module.llm.service.basemodel.BaseModelService; + +@Tag(name = "管理后台 - 基座模型") +@RestController +@RequestMapping("/llm/base-model") +@Validated +public class BaseModelController { + + @Resource + private BaseModelService baseModelService; + + @PostMapping("/create") + @Operation(summary = "创建基座模型") + @PreAuthorize("@ss.hasPermission('llm:base-model:create')") + public CommonResult createBaseModel(@Valid @RequestBody BaseModelSaveReqVO createReqVO) { + return success(baseModelService.createBaseModel(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新基座模型") + @PreAuthorize("@ss.hasPermission('llm:base-model:update')") + public CommonResult updateBaseModel(@Valid @RequestBody BaseModelSaveReqVO updateReqVO) { + baseModelService.updateBaseModel(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除基座模型") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('llm:base-model:delete')") + public CommonResult deleteBaseModel(@RequestParam("id") Integer id) { + baseModelService.deleteBaseModel(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得基座模型") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('llm:base-model:query')") + public CommonResult getBaseModel(@RequestParam("id") Integer id) { + BaseModelDO baseModel = baseModelService.getBaseModel(id); + return success(BeanUtils.toBean(baseModel, BaseModelRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得基座模型分页") + @PreAuthorize("@ss.hasPermission('llm:base-model:query')") + public CommonResult> getBaseModelPage(@Valid BaseModelPageReqVO pageReqVO) { + PageResult pageResult = baseModelService.getBaseModelPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, BaseModelRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出基座模型 Excel") + @PreAuthorize("@ss.hasPermission('llm:base-model:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportBaseModelExcel(@Valid BaseModelPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = baseModelService.getBaseModelPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "基座模型.xls", "数据", BaseModelRespVO.class, + BeanUtils.toBean(list, BaseModelRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/basemodel/vo/BaseModelPageReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/basemodel/vo/BaseModelPageReqVO.java new file mode 100644 index 000000000..1060568c4 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/basemodel/vo/BaseModelPageReqVO.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.module.llm.controller.admin.basemodel.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 基座模型分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BaseModelPageReqVO extends PageParam { + + @Schema(description = "基座模型名称", example = "张三") + private String modelName; + + @Schema(description = "参数量", example = "12388") + private Integer parameterCount; + + @Schema(description = "最大上下文长度") + private Integer maxContextLength; + + @Schema(description = "模型类型", example = "1") + private String modelType; + + @Schema(description = "是否启动") + private Boolean isActive; + + @Schema(description = "是否微调") + private Boolean isFinetuned; + + @Schema(description = "备注") + private String notes; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/basemodel/vo/BaseModelRespVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/basemodel/vo/BaseModelRespVO.java new file mode 100644 index 000000000..37188156c --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/basemodel/vo/BaseModelRespVO.java @@ -0,0 +1,51 @@ +package cn.iocoder.yudao.module.llm.controller.admin.basemodel.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 基座模型 Response VO") +@Data +@ExcelIgnoreUnannotated +public class BaseModelRespVO { + + @Schema(description = "基座模型唯一标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "2828") + @ExcelProperty("基座模型唯一标识") + private Integer id; + + @Schema(description = "基座模型名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @ExcelProperty("基座模型名称") + private String modelName; + + @Schema(description = "参数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "12388") + @ExcelProperty("参数量") + private Integer parameterCount; + + @Schema(description = "最大上下文长度", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("最大上下文长度") + private Integer maxContextLength; + + @Schema(description = "模型类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty("模型类型") + private String modelType; + + @Schema(description = "是否启动", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("是否启动") + private Boolean isActive; + + @Schema(description = "是否微调", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("是否微调") + private Boolean isFinetuned; + + @Schema(description = "备注") + @ExcelProperty("备注") + private String notes; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/basemodel/vo/BaseModelSaveReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/basemodel/vo/BaseModelSaveReqVO.java new file mode 100644 index 000000000..934004ad9 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/basemodel/vo/BaseModelSaveReqVO.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.llm.controller.admin.basemodel.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 基座模型新增/修改 Request VO") +@Data +public class BaseModelSaveReqVO { + + @Schema(description = "基座模型唯一标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "2828") + private Integer id; + + @Schema(description = "基座模型名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @NotEmpty(message = "基座模型名称不能为空") + private String modelName; + + @Schema(description = "参数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "12388") + @NotNull(message = "参数量不能为空") + private Integer parameterCount; + + @Schema(description = "最大上下文长度", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "最大上下文长度不能为空") + private Integer maxContextLength; + + @Schema(description = "模型类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotEmpty(message = "模型类型不能为空") + private String modelType; + + @Schema(description = "是否启动", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "是否启动不能为空") + private Boolean isActive; + + @Schema(description = "是否微调", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "是否微调不能为空") + private Boolean isFinetuned; + + @Schema(description = "备注") + private String notes; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/conversation/ConversationController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/conversation/ConversationController.java new file mode 100644 index 000000000..2096f9a2e --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/conversation/ConversationController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.llm.controller.admin.conversation; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.llm.controller.admin.conversation.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.conversation.ConversationDO; +import cn.iocoder.yudao.module.llm.service.conversation.ConversationService; + +@Tag(name = "管理后台 - 大模型对话记录") +@RestController +@RequestMapping("/llm/conversation") +@Validated +public class ConversationController { + + @Resource + private ConversationService conversationService; + + @PostMapping("/create") + @Operation(summary = "创建大模型对话记录") + @PreAuthorize("@ss.hasPermission('llm:conversation:create')") + public CommonResult createConversation(@Valid @RequestBody ConversationSaveReqVO createReqVO) { + return success(conversationService.createConversation(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新大模型对话记录") + @PreAuthorize("@ss.hasPermission('llm:conversation:update')") + public CommonResult updateConversation(@Valid @RequestBody ConversationSaveReqVO updateReqVO) { + conversationService.updateConversation(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除大模型对话记录") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('llm:conversation:delete')") + public CommonResult deleteConversation(@RequestParam("id") Integer id) { + conversationService.deleteConversation(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得大模型对话记录") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('llm:conversation:query')") + public CommonResult getConversation(@RequestParam("id") Integer id) { + ConversationDO conversation = conversationService.getConversation(id); + return success(BeanUtils.toBean(conversation, ConversationRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得大模型对话记录分页") + @PreAuthorize("@ss.hasPermission('llm:conversation:query')") + public CommonResult> getConversationPage(@Valid ConversationPageReqVO pageReqVO) { + PageResult pageResult = conversationService.getConversationPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, ConversationRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出大模型对话记录 Excel") + @PreAuthorize("@ss.hasPermission('llm:conversation:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportConversationExcel(@Valid ConversationPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = conversationService.getConversationPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "大模型对话记录.xls", "数据", ConversationRespVO.class, + BeanUtils.toBean(list, ConversationRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/conversation/vo/ConversationPageReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/conversation/vo/ConversationPageReqVO.java new file mode 100644 index 000000000..0c961aaf3 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/conversation/vo/ConversationPageReqVO.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.module.llm.controller.admin.conversation.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 大模型对话记录分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ConversationPageReqVO extends PageParam { + + @Schema(description = "对话中的角色: user, assistant, system") + private String role; + + @Schema(description = "对话的内容") + private String content; + + @Schema(description = "推理参数,采用 JSON 格式") + private String modelParams; + + @Schema(description = "提示词") + private String prompt; + + @Schema(description = "知识库相关信息", example = "15002") + private String knowledgeBaseId; + + @Schema(description = "应用ID", example = "31046") + private Long applicationId; + + @Schema(description = "模型服务ID", example = "2904") + private Long modelServiceId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/conversation/vo/ConversationRespVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/conversation/vo/ConversationRespVO.java new file mode 100644 index 000000000..4e173350a --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/conversation/vo/ConversationRespVO.java @@ -0,0 +1,51 @@ +package cn.iocoder.yudao.module.llm.controller.admin.conversation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 大模型对话记录 Response VO") +@Data +@ExcelIgnoreUnannotated +public class ConversationRespVO { + + @Schema(description = "对话记录的唯一标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "17037") + @ExcelProperty("对话记录的唯一标识") + private Integer id; + + @Schema(description = "对话中的角色: user, assistant, system", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("对话中的角色: user, assistant, system") + private String role; + + @Schema(description = "对话的内容", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("对话的内容") + private String content; + + @Schema(description = "推理参数,采用 JSON 格式") + @ExcelProperty("推理参数,采用 JSON 格式") + private String modelParams; + + @Schema(description = "提示词") + @ExcelProperty("提示词") + private String prompt; + + @Schema(description = "知识库相关信息", example = "15002") + @ExcelProperty("知识库相关信息") + private String knowledgeBaseId; + + @Schema(description = "应用ID", example = "31046") + @ExcelProperty("应用ID") + private Long applicationId; + + @Schema(description = "模型服务ID", example = "2904") + @ExcelProperty("模型服务ID") + private Long modelServiceId; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/conversation/vo/ConversationSaveReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/conversation/vo/ConversationSaveReqVO.java new file mode 100644 index 000000000..fff5822c5 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/conversation/vo/ConversationSaveReqVO.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.module.llm.controller.admin.conversation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 大模型对话记录新增/修改 Request VO") +@Data +public class ConversationSaveReqVO { + + @Schema(description = "对话记录的唯一标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "17037") + private Integer id; + + @Schema(description = "对话中的角色: user, assistant, system", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "对话中的角色: user, assistant, system不能为空") + private String role; + + @Schema(description = "对话的内容", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "对话的内容不能为空") + private String content; + + @Schema(description = "推理参数,采用 JSON 格式") + private String modelParams; + + @Schema(description = "提示词") + private String prompt; + + @Schema(description = "知识库相关信息", example = "15002") + private String knowledgeBaseId; + + @Schema(description = "应用ID", example = "31046") + private Long applicationId; + + @Schema(description = "模型服务ID", example = "2904") + private Long modelServiceId; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/DataProcessTaskController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/DataProcessTaskController.java new file mode 100644 index 000000000..4de0c9594 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/DataProcessTaskController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.llm.controller.admin.dataprocesstask; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.llm.controller.admin.dataprocesstask.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.dataprocesstask.DataProcessTaskDO; +import cn.iocoder.yudao.module.llm.service.dataprocesstask.DataProcessTaskService; + +@Tag(name = "管理后台 - 数据处理任务") +@RestController +@RequestMapping("/llm/data-process-task") +@Validated +public class DataProcessTaskController { + + @Resource + private DataProcessTaskService dataProcessTaskService; + + @PostMapping("/create") + @Operation(summary = "创建数据处理任务") + @PreAuthorize("@ss.hasPermission('llm:data-process-task:create')") + public CommonResult createDataProcessTask(@Valid @RequestBody DataProcessTaskSaveReqVO createReqVO) { + return success(dataProcessTaskService.createDataProcessTask(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新数据处理任务") + @PreAuthorize("@ss.hasPermission('llm:data-process-task:update')") + public CommonResult updateDataProcessTask(@Valid @RequestBody DataProcessTaskSaveReqVO updateReqVO) { + dataProcessTaskService.updateDataProcessTask(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除数据处理任务") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('llm:data-process-task:delete')") + public CommonResult deleteDataProcessTask(@RequestParam("id") Long id) { + dataProcessTaskService.deleteDataProcessTask(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得数据处理任务") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('llm:data-process-task:query')") + public CommonResult getDataProcessTask(@RequestParam("id") Long id) { + DataProcessTaskDO dataProcessTask = dataProcessTaskService.getDataProcessTask(id); + return success(BeanUtils.toBean(dataProcessTask, DataProcessTaskRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得数据处理任务分页") + @PreAuthorize("@ss.hasPermission('llm:data-process-task:query')") + public CommonResult> getDataProcessTaskPage(@Valid DataProcessTaskPageReqVO pageReqVO) { + PageResult pageResult = dataProcessTaskService.getDataProcessTaskPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, DataProcessTaskRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出数据处理任务 Excel") + @PreAuthorize("@ss.hasPermission('llm:data-process-task:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportDataProcessTaskExcel(@Valid DataProcessTaskPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = dataProcessTaskService.getDataProcessTaskPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "数据处理任务.xls", "数据", DataProcessTaskRespVO.class, + BeanUtils.toBean(list, DataProcessTaskRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/vo/DataProcessTaskPageReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/vo/DataProcessTaskPageReqVO.java new file mode 100644 index 000000000..9305c496d --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/vo/DataProcessTaskPageReqVO.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.llm.controller.admin.dataprocesstask.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 数据处理任务分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class DataProcessTaskPageReqVO extends PageParam { + + @Schema(description = "任务名称", example = "王五") + private String taskName; + + @Schema(description = "处理前数据集ID", example = "21087") + private Long datasetId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "状态,使用字典(llm_data_process_status)", example = "2") + private Integer status; + + @Schema(description = "处理后的数据集ID", example = "27877") + private Long datasetPostId; + + @Schema(description = "配置信息") + private String options; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/vo/DataProcessTaskRespVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/vo/DataProcessTaskRespVO.java new file mode 100644 index 000000000..c4ae4f7a4 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/vo/DataProcessTaskRespVO.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.module.llm.controller.admin.dataprocesstask.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 数据处理任务 Response VO") +@Data +@ExcelIgnoreUnannotated +public class DataProcessTaskRespVO { + + @Schema(description = "数据处理任务ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "24850") + @ExcelProperty("数据处理任务ID") + private Long id; + + @Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @ExcelProperty("任务名称") + private String taskName; + + @Schema(description = "处理前数据集ID", example = "21087") + @ExcelProperty("处理前数据集ID") + private Long datasetId; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "状态,使用字典(llm_data_process_status)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @ExcelProperty("状态,使用字典(llm_data_process_status)") + private Integer status; + + @Schema(description = "处理后的数据集ID", example = "27877") + @ExcelProperty("处理后的数据集ID") + private Long datasetPostId; + + @Schema(description = "配置信息") + @ExcelProperty("配置信息") + private String options; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/vo/DataProcessTaskSaveReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/vo/DataProcessTaskSaveReqVO.java new file mode 100644 index 000000000..826bbb050 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataprocesstask/vo/DataProcessTaskSaveReqVO.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.llm.controller.admin.dataprocesstask.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 数据处理任务新增/修改 Request VO") +@Data +public class DataProcessTaskSaveReqVO { + + @Schema(description = "数据处理任务ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "24850") + private Long id; + + @Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @NotEmpty(message = "任务名称不能为空") + private String taskName; + + @Schema(description = "处理前数据集ID", example = "21087") + private Long datasetId; + + @Schema(description = "状态,使用字典(llm_data_process_status)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @NotNull(message = "状态,使用字典(llm_data_process_status)不能为空") + private Integer status; + + @Schema(description = "处理后的数据集ID", example = "27877") + private Long datasetPostId; + + @Schema(description = "配置信息") + private String options; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetanswer/DatasetAnswerController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetanswer/DatasetAnswerController.java new file mode 100644 index 000000000..59bf0fe18 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetanswer/DatasetAnswerController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.llm.controller.admin.datasetanswer; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.llm.controller.admin.datasetanswer.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.datasetanswer.DatasetAnswerDO; +import cn.iocoder.yudao.module.llm.service.datasetanswer.DatasetAnswerService; + +@Tag(name = "管理后台 - 数据集数据问题标注内容") +@RestController +@RequestMapping("/llm/dataset-answer") +@Validated +public class DatasetAnswerController { + + @Resource + private DatasetAnswerService datasetAnswerService; + + @PostMapping("/create") + @Operation(summary = "创建数据集数据问题标注内容") + @PreAuthorize("@ss.hasPermission('llm:dataset-answer:create')") + public CommonResult createDatasetAnswer(@Valid @RequestBody DatasetAnswerSaveReqVO createReqVO) { + return success(datasetAnswerService.createDatasetAnswer(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新数据集数据问题标注内容") + @PreAuthorize("@ss.hasPermission('llm:dataset-answer:update')") + public CommonResult updateDatasetAnswer(@Valid @RequestBody DatasetAnswerSaveReqVO updateReqVO) { + datasetAnswerService.updateDatasetAnswer(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除数据集数据问题标注内容") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('llm:dataset-answer:delete')") + public CommonResult deleteDatasetAnswer(@RequestParam("id") Long id) { + datasetAnswerService.deleteDatasetAnswer(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得数据集数据问题标注内容") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('llm:dataset-answer:query')") + public CommonResult getDatasetAnswer(@RequestParam("id") Long id) { + DatasetAnswerDO datasetAnswer = datasetAnswerService.getDatasetAnswer(id); + return success(BeanUtils.toBean(datasetAnswer, DatasetAnswerRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得数据集数据问题标注内容分页") + @PreAuthorize("@ss.hasPermission('llm:dataset-answer:query')") + public CommonResult> getDatasetAnswerPage(@Valid DatasetAnswerPageReqVO pageReqVO) { + PageResult pageResult = datasetAnswerService.getDatasetAnswerPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, DatasetAnswerRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出数据集数据问题标注内容 Excel") + @PreAuthorize("@ss.hasPermission('llm:dataset-answer:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportDatasetAnswerExcel(@Valid DatasetAnswerPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = datasetAnswerService.getDatasetAnswerPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "数据集数据问题标注内容.xls", "数据", DatasetAnswerRespVO.class, + BeanUtils.toBean(list, DatasetAnswerRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetanswer/vo/DatasetAnswerPageReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetanswer/vo/DatasetAnswerPageReqVO.java new file mode 100644 index 000000000..f7ff77913 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetanswer/vo/DatasetAnswerPageReqVO.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.llm.controller.admin.datasetanswer.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 数据集数据问题标注内容分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class DatasetAnswerPageReqVO extends PageParam { + + @Schema(description = "数据集ID", example = "23968") + private Long datasetId; + + @Schema(description = "数据文件ID", example = "502") + private Long datasetFilesId; + + @Schema(description = "问题ID", example = "8932") + private Long questionId; + + @Schema(description = "标注内容") + private String answer; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetanswer/vo/DatasetAnswerRespVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetanswer/vo/DatasetAnswerRespVO.java new file mode 100644 index 000000000..2ae47ce45 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetanswer/vo/DatasetAnswerRespVO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.llm.controller.admin.datasetanswer.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 数据集数据问题标注内容 Response VO") +@Data +@ExcelIgnoreUnannotated +public class DatasetAnswerRespVO { + + @Schema(description = "数据集问题ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4634") + @ExcelProperty("数据集问题ID") + private Long id; + + @Schema(description = "数据集ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23968") + @ExcelProperty("数据集ID") + private Long datasetId; + + @Schema(description = "数据文件ID", example = "502") + @ExcelProperty("数据文件ID") + private Long datasetFilesId; + + @Schema(description = "问题ID", example = "8932") + @ExcelProperty("问题ID") + private Long questionId; + + @Schema(description = "标注内容") + @ExcelProperty("标注内容") + private String answer; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetanswer/vo/DatasetAnswerSaveReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetanswer/vo/DatasetAnswerSaveReqVO.java new file mode 100644 index 000000000..30e8253fb --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetanswer/vo/DatasetAnswerSaveReqVO.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.llm.controller.admin.datasetanswer.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 数据集数据问题标注内容新增/修改 Request VO") +@Data +public class DatasetAnswerSaveReqVO { + + @Schema(description = "数据集问题ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4634") + private Long id; + + @Schema(description = "数据集ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23968") + @NotNull(message = "数据集ID不能为空") + private Long datasetId; + + @Schema(description = "数据文件ID", example = "502") + private Long datasetFilesId; + + @Schema(description = "问题ID", example = "8932") + private Long questionId; + + @Schema(description = "标注内容") + private String answer; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetfiles/DatasetFilesController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetfiles/DatasetFilesController.java new file mode 100644 index 000000000..4c2bcd7ed --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetfiles/DatasetFilesController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.llm.controller.admin.datasetfiles; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.llm.controller.admin.datasetfiles.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.datasetfiles.DatasetFilesDO; +import cn.iocoder.yudao.module.llm.service.datasetfiles.DatasetFilesService; + +@Tag(name = "管理后台 - 数据集数据文件") +@RestController +@RequestMapping("/llm/dataset-files") +@Validated +public class DatasetFilesController { + + @Resource + private DatasetFilesService datasetFilesService; + + @PostMapping("/create") + @Operation(summary = "创建数据集数据文件") + @PreAuthorize("@ss.hasPermission('llm:dataset-files:create')") + public CommonResult createDatasetFiles(@Valid @RequestBody DatasetFilesSaveReqVO createReqVO) { + return success(datasetFilesService.createDatasetFiles(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新数据集数据文件") + @PreAuthorize("@ss.hasPermission('llm:dataset-files:update')") + public CommonResult updateDatasetFiles(@Valid @RequestBody DatasetFilesSaveReqVO updateReqVO) { + datasetFilesService.updateDatasetFiles(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除数据集数据文件") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('llm:dataset-files:delete')") + public CommonResult deleteDatasetFiles(@RequestParam("id") Long id) { + datasetFilesService.deleteDatasetFiles(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得数据集数据文件") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('llm:dataset-files:query')") + public CommonResult getDatasetFiles(@RequestParam("id") Long id) { + DatasetFilesDO datasetFiles = datasetFilesService.getDatasetFiles(id); + return success(BeanUtils.toBean(datasetFiles, DatasetFilesRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得数据集数据文件分页") + @PreAuthorize("@ss.hasPermission('llm:dataset-files:query')") + public CommonResult> getDatasetFilesPage(@Valid DatasetFilesPageReqVO pageReqVO) { + PageResult pageResult = datasetFilesService.getDatasetFilesPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, DatasetFilesRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出数据集数据文件 Excel") + @PreAuthorize("@ss.hasPermission('llm:dataset-files:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportDatasetFilesExcel(@Valid DatasetFilesPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = datasetFilesService.getDatasetFilesPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "数据集数据文件.xls", "数据", DatasetFilesRespVO.class, + BeanUtils.toBean(list, DatasetFilesRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetfiles/vo/DatasetFilesPageReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetfiles/vo/DatasetFilesPageReqVO.java new file mode 100644 index 000000000..f13c6478a --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetfiles/vo/DatasetFilesPageReqVO.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.llm.controller.admin.datasetfiles.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 数据集数据文件分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class DatasetFilesPageReqVO extends PageParam { + + @Schema(description = "数据集ID", example = "23558") + private Long datasetId; + + @Schema(description = "数据长度") + private Long dataLength; + + @Schema(description = "数据文件(文件表的ID)") + private Long datasetFile; + + @Schema(description = "文件URL地址", example = "https://www.iocoder.cn") + private String datasetFileUrl; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetfiles/vo/DatasetFilesRespVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetfiles/vo/DatasetFilesRespVO.java new file mode 100644 index 000000000..01105ed16 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetfiles/vo/DatasetFilesRespVO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.llm.controller.admin.datasetfiles.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 数据集数据文件 Response VO") +@Data +@ExcelIgnoreUnannotated +public class DatasetFilesRespVO { + + @Schema(description = "数据集ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "32334") + @ExcelProperty("数据集ID") + private Long id; + + @Schema(description = "数据集ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23558") + @ExcelProperty("数据集ID") + private Long datasetId; + + @Schema(description = "数据长度") + @ExcelProperty("数据长度") + private Long dataLength; + + @Schema(description = "数据文件(文件表的ID)") + @ExcelProperty("数据文件(文件表的ID)") + private Long datasetFile; + + @Schema(description = "文件URL地址", example = "https://www.iocoder.cn") + @ExcelProperty("文件URL地址") + private String datasetFileUrl; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetfiles/vo/DatasetFilesSaveReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetfiles/vo/DatasetFilesSaveReqVO.java new file mode 100644 index 000000000..768460d52 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetfiles/vo/DatasetFilesSaveReqVO.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.llm.controller.admin.datasetfiles.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 数据集数据文件新增/修改 Request VO") +@Data +public class DatasetFilesSaveReqVO { + + @Schema(description = "数据集ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "32334") + private Long id; + + @Schema(description = "数据集ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23558") + @NotNull(message = "数据集ID不能为空") + private Long datasetId; + + @Schema(description = "数据长度") + private Long dataLength; + + @Schema(description = "数据文件(文件表的ID)") + private Long datasetFile; + + @Schema(description = "文件URL地址", example = "https://www.iocoder.cn") + private String datasetFileUrl; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetquestion/DatasetQuestionController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetquestion/DatasetQuestionController.java new file mode 100644 index 000000000..4396f1417 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetquestion/DatasetQuestionController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.llm.controller.admin.datasetquestion; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.llm.controller.admin.datasetquestion.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.datasetquestion.DatasetQuestionDO; +import cn.iocoder.yudao.module.llm.service.datasetquestion.DatasetQuestionService; + +@Tag(name = "管理后台 - 数据集数据问题") +@RestController +@RequestMapping("/llm/dataset-question") +@Validated +public class DatasetQuestionController { + + @Resource + private DatasetQuestionService datasetQuestionService; + + @PostMapping("/create") + @Operation(summary = "创建数据集数据问题") + @PreAuthorize("@ss.hasPermission('llm:dataset-question:create')") + public CommonResult createDatasetQuestion(@Valid @RequestBody DatasetQuestionSaveReqVO createReqVO) { + return success(datasetQuestionService.createDatasetQuestion(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新数据集数据问题") + @PreAuthorize("@ss.hasPermission('llm:dataset-question:update')") + public CommonResult updateDatasetQuestion(@Valid @RequestBody DatasetQuestionSaveReqVO updateReqVO) { + datasetQuestionService.updateDatasetQuestion(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除数据集数据问题") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('llm:dataset-question:delete')") + public CommonResult deleteDatasetQuestion(@RequestParam("id") Long id) { + datasetQuestionService.deleteDatasetQuestion(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得数据集数据问题") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('llm:dataset-question:query')") + public CommonResult getDatasetQuestion(@RequestParam("id") Long id) { + DatasetQuestionDO datasetQuestion = datasetQuestionService.getDatasetQuestion(id); + return success(BeanUtils.toBean(datasetQuestion, DatasetQuestionRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得数据集数据问题分页") + @PreAuthorize("@ss.hasPermission('llm:dataset-question:query')") + public CommonResult> getDatasetQuestionPage(@Valid DatasetQuestionPageReqVO pageReqVO) { + PageResult pageResult = datasetQuestionService.getDatasetQuestionPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, DatasetQuestionRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出数据集数据问题 Excel") + @PreAuthorize("@ss.hasPermission('llm:dataset-question:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportDatasetQuestionExcel(@Valid DatasetQuestionPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = datasetQuestionService.getDatasetQuestionPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "数据集数据问题.xls", "数据", DatasetQuestionRespVO.class, + BeanUtils.toBean(list, DatasetQuestionRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetquestion/vo/DatasetQuestionPageReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetquestion/vo/DatasetQuestionPageReqVO.java new file mode 100644 index 000000000..932b260f6 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetquestion/vo/DatasetQuestionPageReqVO.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.llm.controller.admin.datasetquestion.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 数据集数据问题分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class DatasetQuestionPageReqVO extends PageParam { + + @Schema(description = "数据集ID", example = "21903") + private Long datasetId; + + @Schema(description = "数据文件ID", example = "13049") + private Long datasetFilesId; + + @Schema(description = "问题内容") + private String question; + + @Schema(description = "标注状态,使用字典(llm_dataset_mark_status)", example = "1") + private Integer status; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetquestion/vo/DatasetQuestionRespVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetquestion/vo/DatasetQuestionRespVO.java new file mode 100644 index 000000000..92c19e3f8 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetquestion/vo/DatasetQuestionRespVO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.llm.controller.admin.datasetquestion.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 数据集数据问题 Response VO") +@Data +@ExcelIgnoreUnannotated +public class DatasetQuestionRespVO { + + @Schema(description = "数据集问题ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14464") + @ExcelProperty("数据集问题ID") + private Long id; + + @Schema(description = "数据集ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21903") + @ExcelProperty("数据集ID") + private Long datasetId; + + @Schema(description = "数据文件ID", example = "13049") + @ExcelProperty("数据文件ID") + private Long datasetFilesId; + + @Schema(description = "问题内容") + @ExcelProperty("问题内容") + private String question; + + @Schema(description = "标注状态,使用字典(llm_dataset_mark_status)", example = "1") + @ExcelProperty("标注状态,使用字典(llm_dataset_mark_status)") + private Integer status; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetquestion/vo/DatasetQuestionSaveReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetquestion/vo/DatasetQuestionSaveReqVO.java new file mode 100644 index 000000000..cde5711f8 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datasetquestion/vo/DatasetQuestionSaveReqVO.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.llm.controller.admin.datasetquestion.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 数据集数据问题新增/修改 Request VO") +@Data +public class DatasetQuestionSaveReqVO { + + @Schema(description = "数据集问题ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14464") + private Long id; + + @Schema(description = "数据集ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21903") + @NotNull(message = "数据集ID不能为空") + private Long datasetId; + + @Schema(description = "数据文件ID", example = "13049") + private Long datasetFilesId; + + @Schema(description = "问题内容") + private String question; + + @Schema(description = "标注状态,使用字典(llm_dataset_mark_status)", example = "1") + private Integer status; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuning/FineTuningController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuning/FineTuningController.java new file mode 100644 index 000000000..5423dbf42 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuning/FineTuningController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.llm.controller.admin.finetuning; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.llm.controller.admin.finetuning.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.finetuning.FineTuningDO; +import cn.iocoder.yudao.module.llm.service.finetuning.FineTuningService; + +@Tag(name = "管理后台 - 模型微调") +@RestController +@RequestMapping("/llm/fine-tuning") +@Validated +public class FineTuningController { + + @Resource + private FineTuningService fineTuningService; + + @PostMapping("/create") + @Operation(summary = "创建模型微调") + @PreAuthorize("@ss.hasPermission('llm:fine-tuning:create')") + public CommonResult createFineTuning(@Valid @RequestBody FineTuningSaveReqVO createReqVO) { + return success(fineTuningService.createFineTuning(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新模型微调") + @PreAuthorize("@ss.hasPermission('llm:fine-tuning:update')") + public CommonResult updateFineTuning(@Valid @RequestBody FineTuningSaveReqVO updateReqVO) { + fineTuningService.updateFineTuning(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除模型微调") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('llm:fine-tuning:delete')") + public CommonResult deleteFineTuning(@RequestParam("id") Integer id) { + fineTuningService.deleteFineTuning(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得模型微调") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('llm:fine-tuning:query')") + public CommonResult getFineTuning(@RequestParam("id") Integer id) { + FineTuningDO fineTuning = fineTuningService.getFineTuning(id); + return success(BeanUtils.toBean(fineTuning, FineTuningRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得模型微调分页") + @PreAuthorize("@ss.hasPermission('llm:fine-tuning:query')") + public CommonResult> getFineTuningPage(@Valid FineTuningPageReqVO pageReqVO) { + PageResult pageResult = fineTuningService.getFineTuningPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, FineTuningRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出模型微调 Excel") + @PreAuthorize("@ss.hasPermission('llm:fine-tuning:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportFineTuningExcel(@Valid FineTuningPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = fineTuningService.getFineTuningPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "模型微调.xls", "数据", FineTuningRespVO.class, + BeanUtils.toBean(list, FineTuningRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuning/vo/FineTuningPageReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuning/vo/FineTuningPageReqVO.java new file mode 100644 index 000000000..6714e6775 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuning/vo/FineTuningPageReqVO.java @@ -0,0 +1,41 @@ +package cn.iocoder.yudao.module.llm.controller.admin.finetuning.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 模型微调分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class FineTuningPageReqVO extends PageParam { + + @Schema(description = "关联的基座模型ID", example = "8253") + private Integer baseModelId; + + @Schema(description = "训练数据量") + private Integer trainingDataSize; + + @Schema(description = "评估数据集") + private String evaluationDataset; + + @Schema(description = "平均分") + private BigDecimal averageScore; + + @Schema(description = "评估状态", example = "1") + private String evaluationStatus; + + @Schema(description = "lora路径") + private String loraPath; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuning/vo/FineTuningRespVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuning/vo/FineTuningRespVO.java new file mode 100644 index 000000000..3d1215655 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuning/vo/FineTuningRespVO.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.module.llm.controller.admin.finetuning.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 模型微调 Response VO") +@Data +@ExcelIgnoreUnannotated +public class FineTuningRespVO { + + @Schema(description = "微调记录唯一标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "12275") + @ExcelProperty("微调记录唯一标识") + private Integer id; + + @Schema(description = "关联的基座模型ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8253") + @ExcelProperty("关联的基座模型ID") + private Integer baseModelId; + + @Schema(description = "训练数据量", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("训练数据量") + private Integer trainingDataSize; + + @Schema(description = "评估数据集", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("评估数据集") + private String evaluationDataset; + + @Schema(description = "平均分") + @ExcelProperty("平均分") + private BigDecimal averageScore; + + @Schema(description = "评估状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty("评估状态") + private String evaluationStatus; + + @Schema(description = "lora路径") + @ExcelProperty("lora路径") + private String loraPath; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuning/vo/FineTuningSaveReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuning/vo/FineTuningSaveReqVO.java new file mode 100644 index 000000000..10b809327 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuning/vo/FineTuningSaveReqVO.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.module.llm.controller.admin.finetuning.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; +import java.math.BigDecimal; + +@Schema(description = "管理后台 - 模型微调新增/修改 Request VO") +@Data +public class FineTuningSaveReqVO { + + @Schema(description = "微调记录唯一标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "12275") + private Integer id; + + @Schema(description = "关联的基座模型ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8253") + @NotNull(message = "关联的基座模型ID不能为空") + private Integer baseModelId; + + @Schema(description = "训练数据量", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "训练数据量不能为空") + private Integer trainingDataSize; + + @Schema(description = "评估数据集", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "评估数据集不能为空") + private String evaluationDataset; + + @Schema(description = "平均分") + private BigDecimal averageScore; + + @Schema(description = "评估状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotEmpty(message = "评估状态不能为空") + private String evaluationStatus; + + @Schema(description = "lora路径") + private String loraPath; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuningloss/FineTuningLossController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuningloss/FineTuningLossController.java new file mode 100644 index 000000000..30948816d --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuningloss/FineTuningLossController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.llm.controller.admin.finetuningloss; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.llm.controller.admin.finetuningloss.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.finetuningloss.FineTuningLossDO; +import cn.iocoder.yudao.module.llm.service.finetuningloss.FineTuningLossService; + +@Tag(name = "管理后台 - 损失记录表,用于记录每次训练的损失值") +@RestController +@RequestMapping("/llm/fine-tuning-loss") +@Validated +public class FineTuningLossController { + + @Resource + private FineTuningLossService fineTuningLossService; + + @PostMapping("/create") + @Operation(summary = "创建损失记录表,用于记录每次训练的损失值") + @PreAuthorize("@ss.hasPermission('llm:fine-tuning-loss:create')") + public CommonResult createFineTuningLoss(@Valid @RequestBody FineTuningLossSaveReqVO createReqVO) { + return success(fineTuningLossService.createFineTuningLoss(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新损失记录表,用于记录每次训练的损失值") + @PreAuthorize("@ss.hasPermission('llm:fine-tuning-loss:update')") + public CommonResult updateFineTuningLoss(@Valid @RequestBody FineTuningLossSaveReqVO updateReqVO) { + fineTuningLossService.updateFineTuningLoss(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除损失记录表,用于记录每次训练的损失值") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('llm:fine-tuning-loss:delete')") + public CommonResult deleteFineTuningLoss(@RequestParam("id") Long id) { + fineTuningLossService.deleteFineTuningLoss(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得损失记录表,用于记录每次训练的损失值") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('llm:fine-tuning-loss:query')") + public CommonResult getFineTuningLoss(@RequestParam("id") Long id) { + FineTuningLossDO fineTuningLoss = fineTuningLossService.getFineTuningLoss(id); + return success(BeanUtils.toBean(fineTuningLoss, FineTuningLossRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得损失记录表,用于记录每次训练的损失值分页") + @PreAuthorize("@ss.hasPermission('llm:fine-tuning-loss:query')") + public CommonResult> getFineTuningLossPage(@Valid FineTuningLossPageReqVO pageReqVO) { + PageResult pageResult = fineTuningLossService.getFineTuningLossPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, FineTuningLossRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出损失记录表,用于记录每次训练的损失值 Excel") + @PreAuthorize("@ss.hasPermission('llm:fine-tuning-loss:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportFineTuningLossExcel(@Valid FineTuningLossPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = fineTuningLossService.getFineTuningLossPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "损失记录表,用于记录每次训练的损失值.xls", "数据", FineTuningLossRespVO.class, + BeanUtils.toBean(list, FineTuningLossRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuningloss/vo/FineTuningLossPageReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuningloss/vo/FineTuningLossPageReqVO.java new file mode 100644 index 000000000..aaa3646af --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuningloss/vo/FineTuningLossPageReqVO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.llm.controller.admin.finetuningloss.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 损失记录表,用于记录每次训练的损失值分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class FineTuningLossPageReqVO extends PageParam { + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "微调任务ID", example = "16806") + private Long taskId; + + @Schema(description = "训练轮数") + private Integer epoch; + + @Schema(description = "损失值") + private Double lossValue; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuningloss/vo/FineTuningLossRespVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuningloss/vo/FineTuningLossRespVO.java new file mode 100644 index 000000000..249383703 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuningloss/vo/FineTuningLossRespVO.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.llm.controller.admin.finetuningloss.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 损失记录表,用于记录每次训练的损失值 Response VO") +@Data +@ExcelIgnoreUnannotated +public class FineTuningLossRespVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29379") + @ExcelProperty("ID") + private Long id; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "微调任务ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16806") + @ExcelProperty("微调任务ID") + private Long taskId; + + @Schema(description = "训练轮数") + @ExcelProperty("训练轮数") + private Integer epoch; + + @Schema(description = "损失值") + @ExcelProperty("损失值") + private Double lossValue; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuningloss/vo/FineTuningLossSaveReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuningloss/vo/FineTuningLossSaveReqVO.java new file mode 100644 index 000000000..fd60c963a --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/finetuningloss/vo/FineTuningLossSaveReqVO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.llm.controller.admin.finetuningloss.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 损失记录表,用于记录每次训练的损失值新增/修改 Request VO") +@Data +public class FineTuningLossSaveReqVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29379") + private Long id; + + @Schema(description = "微调任务ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16806") + @NotNull(message = "微调任务ID不能为空") + private Long taskId; + + @Schema(description = "训练轮数") + private Integer epoch; + + @Schema(description = "损失值") + private Double lossValue; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplates/PromptTemplatesController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplates/PromptTemplatesController.java new file mode 100644 index 000000000..ed28006fe --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplates/PromptTemplatesController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.llm.controller.admin.prompttemplates; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.llm.controller.admin.prompttemplates.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplates.PromptTemplatesDO; +import cn.iocoder.yudao.module.llm.service.prompttemplates.PromptTemplatesService; + +@Tag(name = "管理后台 - Prompt 模板表,用于记录每个模板的信息") +@RestController +@RequestMapping("/llm/prompt-templates") +@Validated +public class PromptTemplatesController { + + @Resource + private PromptTemplatesService promptTemplatesService; + + @PostMapping("/create") + @Operation(summary = "创建Prompt 模板表,用于记录每个模板的信息") + @PreAuthorize("@ss.hasPermission('llm:prompt-templates:create')") + public CommonResult createPromptTemplates(@Valid @RequestBody PromptTemplatesSaveReqVO createReqVO) { + return success(promptTemplatesService.createPromptTemplates(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新Prompt 模板表,用于记录每个模板的信息") + @PreAuthorize("@ss.hasPermission('llm:prompt-templates:update')") + public CommonResult updatePromptTemplates(@Valid @RequestBody PromptTemplatesSaveReqVO updateReqVO) { + promptTemplatesService.updatePromptTemplates(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除Prompt 模板表,用于记录每个模板的信息") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('llm:prompt-templates:delete')") + public CommonResult deletePromptTemplates(@RequestParam("id") Long id) { + promptTemplatesService.deletePromptTemplates(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得Prompt 模板表,用于记录每个模板的信息") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('llm:prompt-templates:query')") + public CommonResult getPromptTemplates(@RequestParam("id") Long id) { + PromptTemplatesDO promptTemplates = promptTemplatesService.getPromptTemplates(id); + return success(BeanUtils.toBean(promptTemplates, PromptTemplatesRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得Prompt 模板表,用于记录每个模板的信息分页") + @PreAuthorize("@ss.hasPermission('llm:prompt-templates:query')") + public CommonResult> getPromptTemplatesPage(@Valid PromptTemplatesPageReqVO pageReqVO) { + PageResult pageResult = promptTemplatesService.getPromptTemplatesPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, PromptTemplatesRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出Prompt 模板表,用于记录每个模板的信息 Excel") + @PreAuthorize("@ss.hasPermission('llm:prompt-templates:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportPromptTemplatesExcel(@Valid PromptTemplatesPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = promptTemplatesService.getPromptTemplatesPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "Prompt 模板表,用于记录每个模板的信息.xls", "数据", PromptTemplatesRespVO.class, + BeanUtils.toBean(list, PromptTemplatesRespVO.class)); + } + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplates/vo/PromptTemplatesPageReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplates/vo/PromptTemplatesPageReqVO.java new file mode 100644 index 000000000..2b1455f93 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplates/vo/PromptTemplatesPageReqVO.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.llm.controller.admin.prompttemplates.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - Prompt 模板表,用于记录每个模板的信息分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class PromptTemplatesPageReqVO extends PageParam { + + @Schema(description = "Prompt 模板名称", example = "王五") + private String name; + + @Schema(description = "模板分类,使用字典(llm_prompt_template_category)") + private Integer templateCategory; + + @Schema(description = "模板框架,使用字典(llm_prompt_template_framework)") + private Integer templateFramework; + + @Schema(description = "模板内容") + private String templateText; + + @Schema(description = "变量标识符,使用字典(llm_variable_identifier)") + private Integer variableIdentifier; + + @Schema(description = "模板类型(1 - 预制模板、2 - 自定义模板)", example = "1") + private Integer templateType; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplates/vo/PromptTemplatesRespVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplates/vo/PromptTemplatesRespVO.java new file mode 100644 index 000000000..2a740b280 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplates/vo/PromptTemplatesRespVO.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.llm.controller.admin.prompttemplates.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - Prompt 模板表,用于记录每个模板的信息 Response VO") +@Data +@ExcelIgnoreUnannotated +public class PromptTemplatesRespVO { + + @Schema(description = "Prompt 模板ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "20922") + @ExcelProperty("Prompt 模板ID") + private Long id; + + @Schema(description = "Prompt 模板名称", example = "王五") + @ExcelProperty("Prompt 模板名称") + private String name; + + @Schema(description = "模板分类,使用字典(llm_prompt_template_category)") + @ExcelProperty("模板分类,使用字典(llm_prompt_template_category)") + private Integer templateCategory; + + @Schema(description = "模板框架,使用字典(llm_prompt_template_framework)") + @ExcelProperty("模板框架,使用字典(llm_prompt_template_framework)") + private Integer templateFramework; + + @Schema(description = "模板内容") + @ExcelProperty("模板内容") + private String templateText; + + @Schema(description = "变量标识符,使用字典(llm_variable_identifier)") + @ExcelProperty("变量标识符,使用字典(llm_variable_identifier)") + private Integer variableIdentifier; + + @Schema(description = "模板类型(1 - 预制模板、2 - 自定义模板)", example = "1") + @ExcelProperty("模板类型(1 - 预制模板、2 - 自定义模板)") + private Integer templateType; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplates/vo/PromptTemplatesSaveReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplates/vo/PromptTemplatesSaveReqVO.java new file mode 100644 index 000000000..3ce00a852 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplates/vo/PromptTemplatesSaveReqVO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.llm.controller.admin.prompttemplates.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - Prompt 模板表,用于记录每个模板的信息新增/修改 Request VO") +@Data +public class PromptTemplatesSaveReqVO { + + @Schema(description = "Prompt 模板ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "20922") + private Long id; + + @Schema(description = "Prompt 模板名称", example = "王五") + private String name; + + @Schema(description = "模板分类,使用字典(llm_prompt_template_category)") + private Integer templateCategory; + + @Schema(description = "模板框架,使用字典(llm_prompt_template_framework)") + private Integer templateFramework; + + @Schema(description = "模板内容") + private String templateText; + + @Schema(description = "变量标识符,使用字典(llm_variable_identifier)") + private Integer variableIdentifier; + + @Schema(description = "模板类型(1 - 预制模板、2 - 自定义模板)", example = "1") + private Integer templateType; + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplications/PromptTemplatesApplicationsController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplications/PromptTemplatesApplicationsController.java new file mode 100644 index 000000000..66c68985e --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplications/PromptTemplatesApplicationsController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.llm.controller.admin.prompttemplatesapplications; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.llm.controller.admin.prompttemplatesapplications.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatesapplications.PromptTemplatesApplicationsDO; +import cn.iocoder.yudao.module.llm.service.prompttemplatesapplications.PromptTemplatesApplicationsService; + +@Tag(name = "管理后台 - Prompt 模板 应用关系表,记录模板和应用之间的多对多关系") +@RestController +@RequestMapping("/llm/prompt-templates-applications") +@Validated +public class PromptTemplatesApplicationsController { + + @Resource + private PromptTemplatesApplicationsService promptTemplatesApplicationsService; + + @PostMapping("/create") + @Operation(summary = "创建Prompt 模板 应用关系表,记录模板和应用之间的多对多关系") + @PreAuthorize("@ss.hasPermission('llm:prompt-templates-applications:create')") + public CommonResult createPromptTemplatesApplications(@Valid @RequestBody PromptTemplatesApplicationsSaveReqVO createReqVO) { + return success(promptTemplatesApplicationsService.createPromptTemplatesApplications(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新Prompt 模板 应用关系表,记录模板和应用之间的多对多关系") + @PreAuthorize("@ss.hasPermission('llm:prompt-templates-applications:update')") + public CommonResult updatePromptTemplatesApplications(@Valid @RequestBody PromptTemplatesApplicationsSaveReqVO updateReqVO) { + promptTemplatesApplicationsService.updatePromptTemplatesApplications(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除Prompt 模板 应用关系表,记录模板和应用之间的多对多关系") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('llm:prompt-templates-applications:delete')") + public CommonResult deletePromptTemplatesApplications(@RequestParam("id") Long id) { + promptTemplatesApplicationsService.deletePromptTemplatesApplications(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得Prompt 模板 应用关系表,记录模板和应用之间的多对多关系") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('llm:prompt-templates-applications:query')") + public CommonResult getPromptTemplatesApplications(@RequestParam("id") Long id) { + PromptTemplatesApplicationsDO promptTemplatesApplications = promptTemplatesApplicationsService.getPromptTemplatesApplications(id); + return success(BeanUtils.toBean(promptTemplatesApplications, PromptTemplatesApplicationsRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得Prompt 模板 应用关系表,记录模板和应用之间的多对多关系分页") + @PreAuthorize("@ss.hasPermission('llm:prompt-templates-applications:query')") + public CommonResult> getPromptTemplatesApplicationsPage(@Valid PromptTemplatesApplicationsPageReqVO pageReqVO) { + PageResult pageResult = promptTemplatesApplicationsService.getPromptTemplatesApplicationsPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, PromptTemplatesApplicationsRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出Prompt 模板 应用关系表,记录模板和应用之间的多对多关系 Excel") + @PreAuthorize("@ss.hasPermission('llm:prompt-templates-applications:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportPromptTemplatesApplicationsExcel(@Valid PromptTemplatesApplicationsPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = promptTemplatesApplicationsService.getPromptTemplatesApplicationsPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "Prompt 模板 应用关系表,记录模板和应用之间的多对多关系.xls", "数据", PromptTemplatesApplicationsRespVO.class, + BeanUtils.toBean(list, PromptTemplatesApplicationsRespVO.class)); + } + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplications/vo/PromptTemplatesApplicationsPageReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplications/vo/PromptTemplatesApplicationsPageReqVO.java new file mode 100644 index 000000000..3518c3a73 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplications/vo/PromptTemplatesApplicationsPageReqVO.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.llm.controller.admin.prompttemplatesapplications.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - Prompt 模板 应用关系表,记录模板和应用之间的多对多关系分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class PromptTemplatesApplicationsPageReqVO extends PageParam { + + @Schema(description = "Prompt 模板ID", example = "5359") + private Long promptTemplateId; + + @Schema(description = "应用ID", example = "32098") + private Long applicationId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplications/vo/PromptTemplatesApplicationsRespVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplications/vo/PromptTemplatesApplicationsRespVO.java new file mode 100644 index 000000000..265c4d525 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplications/vo/PromptTemplatesApplicationsRespVO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.llm.controller.admin.prompttemplatesapplications.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - Prompt 模板 应用关系表,记录模板和应用之间的多对多关系 Response VO") +@Data +@ExcelIgnoreUnannotated +public class PromptTemplatesApplicationsRespVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16475") + @ExcelProperty("ID") + private Long id; + + @Schema(description = "Prompt 模板ID", example = "5359") + @ExcelProperty("Prompt 模板ID") + private Long promptTemplateId; + + @Schema(description = "应用ID", example = "32098") + @ExcelProperty("应用ID") + private Long applicationId; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplications/vo/PromptTemplatesApplicationsSaveReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplications/vo/PromptTemplatesApplicationsSaveReqVO.java new file mode 100644 index 000000000..88357a05a --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplications/vo/PromptTemplatesApplicationsSaveReqVO.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.llm.controller.admin.prompttemplatesapplications.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - Prompt 模板 应用关系表,记录模板和应用之间的多对多关系新增/修改 Request VO") +@Data +public class PromptTemplatesApplicationsSaveReqVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16475") + private Long id; + + @Schema(description = "Prompt 模板ID", example = "5359") + private Long promptTemplateId; + + @Schema(description = "应用ID", example = "32098") + private Long applicationId; + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestags/PromptTemplatesTagsController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestags/PromptTemplatesTagsController.java new file mode 100644 index 000000000..3c9faf695 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestags/PromptTemplatesTagsController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.llm.controller.admin.prompttemplatestags; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.llm.controller.admin.prompttemplatestags.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatestags.PromptTemplatesTagsDO; +import cn.iocoder.yudao.module.llm.service.prompttemplatestags.PromptTemplatesTagsService; + +@Tag(name = "管理后台 - Prompt 模板标签关系表,记录模板和标签之间的多对多关系") +@RestController +@RequestMapping("/llm/prompt-templates-tags") +@Validated +public class PromptTemplatesTagsController { + + @Resource + private PromptTemplatesTagsService promptTemplatesTagsService; + + @PostMapping("/create") + @Operation(summary = "创建Prompt 模板标签关系表,记录模板和标签之间的多对多关系") + @PreAuthorize("@ss.hasPermission('llm:prompt-templates-tags:create')") + public CommonResult createPromptTemplatesTags(@Valid @RequestBody PromptTemplatesTagsSaveReqVO createReqVO) { + return success(promptTemplatesTagsService.createPromptTemplatesTags(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新Prompt 模板标签关系表,记录模板和标签之间的多对多关系") + @PreAuthorize("@ss.hasPermission('llm:prompt-templates-tags:update')") + public CommonResult updatePromptTemplatesTags(@Valid @RequestBody PromptTemplatesTagsSaveReqVO updateReqVO) { + promptTemplatesTagsService.updatePromptTemplatesTags(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除Prompt 模板标签关系表,记录模板和标签之间的多对多关系") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('llm:prompt-templates-tags:delete')") + public CommonResult deletePromptTemplatesTags(@RequestParam("id") Long id) { + promptTemplatesTagsService.deletePromptTemplatesTags(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得Prompt 模板标签关系表,记录模板和标签之间的多对多关系") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('llm:prompt-templates-tags:query')") + public CommonResult getPromptTemplatesTags(@RequestParam("id") Long id) { + PromptTemplatesTagsDO promptTemplatesTags = promptTemplatesTagsService.getPromptTemplatesTags(id); + return success(BeanUtils.toBean(promptTemplatesTags, PromptTemplatesTagsRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得Prompt 模板标签关系表,记录模板和标签之间的多对多关系分页") + @PreAuthorize("@ss.hasPermission('llm:prompt-templates-tags:query')") + public CommonResult> getPromptTemplatesTagsPage(@Valid PromptTemplatesTagsPageReqVO pageReqVO) { + PageResult pageResult = promptTemplatesTagsService.getPromptTemplatesTagsPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, PromptTemplatesTagsRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出Prompt 模板标签关系表,记录模板和标签之间的多对多关系 Excel") + @PreAuthorize("@ss.hasPermission('llm:prompt-templates-tags:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportPromptTemplatesTagsExcel(@Valid PromptTemplatesTagsPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = promptTemplatesTagsService.getPromptTemplatesTagsPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "Prompt 模板标签关系表,记录模板和标签之间的多对多关系.xls", "数据", PromptTemplatesTagsRespVO.class, + BeanUtils.toBean(list, PromptTemplatesTagsRespVO.class)); + } + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestags/vo/PromptTemplatesTagsPageReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestags/vo/PromptTemplatesTagsPageReqVO.java new file mode 100644 index 000000000..6dded3f2a --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestags/vo/PromptTemplatesTagsPageReqVO.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.llm.controller.admin.prompttemplatestags.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - Prompt 模板标签关系表,记录模板和标签之间的多对多关系分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class PromptTemplatesTagsPageReqVO extends PageParam { + + @Schema(description = "Prompt 模板ID", example = "25001") + private Long promptTemplateId; + + @Schema(description = "标签ID", example = "23560") + private Long tagId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestags/vo/PromptTemplatesTagsRespVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestags/vo/PromptTemplatesTagsRespVO.java new file mode 100644 index 000000000..be2ad8e92 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestags/vo/PromptTemplatesTagsRespVO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.llm.controller.admin.prompttemplatestags.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - Prompt 模板标签关系表,记录模板和标签之间的多对多关系 Response VO") +@Data +@ExcelIgnoreUnannotated +public class PromptTemplatesTagsRespVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2237") + @ExcelProperty("ID") + private Long id; + + @Schema(description = "Prompt 模板ID", example = "25001") + @ExcelProperty("Prompt 模板ID") + private Long promptTemplateId; + + @Schema(description = "标签ID", example = "23560") + @ExcelProperty("标签ID") + private Long tagId; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestags/vo/PromptTemplatesTagsSaveReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestags/vo/PromptTemplatesTagsSaveReqVO.java new file mode 100644 index 000000000..fa6293dfc --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestags/vo/PromptTemplatesTagsSaveReqVO.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.llm.controller.admin.prompttemplatestags.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - Prompt 模板标签关系表,记录模板和标签之间的多对多关系新增/修改 Request VO") +@Data +public class PromptTemplatesTagsSaveReqVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2237") + private Long id; + + @Schema(description = "Prompt 模板ID", example = "25001") + private Long promptTemplateId; + + @Schema(description = "标签ID", example = "23560") + private Long tagId; + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/application/ApplicationDO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/application/ApplicationDO.java index 389f57262..eed306fb3 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/application/ApplicationDO.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/application/ApplicationDO.java @@ -61,14 +61,10 @@ public class ApplicationDO extends BaseDO { * 单次回复限制 */ private Integer maxTokens; - /** - * 系统Prompt - */ - private String prompt; /** * 向量知识库,知识库ID */ - private Long retrievalAugmentedGeneration; + private Long modelServiceId; /** * 应用API地址 */ @@ -81,5 +77,13 @@ public class ApplicationDO extends BaseDO { * 聊天人次 */ private Long chatCount; + /** + * 大模型服务的推理参数,以JSON格式存储 + */ + private String modelParams; + /** + * 系统Prompt + */ + private String prompt; -} \ No newline at end of file +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/basemodel/BaseModelDO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/basemodel/BaseModelDO.java new file mode 100644 index 000000000..12ac24434 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/basemodel/BaseModelDO.java @@ -0,0 +1,59 @@ +package cn.iocoder.yudao.module.llm.dal.dataobject.basemodel; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 基座模型 DO + * + * @author 华大大模型 + */ +@TableName("llm_base_model") +@KeySequence("llm_base_model_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class BaseModelDO extends BaseDO { + + /** + * 基座模型唯一标识 + */ + @TableId + private Integer id; + /** + * 基座模型名称 + */ + private String modelName; + /** + * 参数量 + */ + private Integer parameterCount; + /** + * 最大上下文长度 + */ + private Integer maxContextLength; + /** + * 模型类型 + */ + private String modelType; + /** + * 是否启动 + */ + private Boolean isActive; + /** + * 是否微调 + */ + private Boolean isFinetuned; + /** + * 备注 + */ + private String notes; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/conversation/ConversationDO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/conversation/ConversationDO.java new file mode 100644 index 000000000..de8075a1c --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/conversation/ConversationDO.java @@ -0,0 +1,59 @@ +package cn.iocoder.yudao.module.llm.dal.dataobject.conversation; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 大模型对话记录 DO + * + * @author 华大大模型 + */ +@TableName("llm_conversation") +@KeySequence("llm_conversation_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ConversationDO extends BaseDO { + + /** + * 对话记录的唯一标识 + */ + @TableId + private Integer id; + /** + * 对话中的角色: user, assistant, system + */ + private String role; + /** + * 对话的内容 + */ + private String content; + /** + * 推理参数,采用 JSON 格式 + */ + private String modelParams; + /** + * 提示词 + */ + private String prompt; + /** + * 知识库相关信息 + */ + private String knowledgeBaseId; + /** + * 应用ID + */ + private Long applicationId; + /** + * 模型服务ID + */ + private Long modelServiceId; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/dataprocesstask/DataProcessTaskDO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/dataprocesstask/DataProcessTaskDO.java new file mode 100644 index 000000000..85a93938a --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/dataprocesstask/DataProcessTaskDO.java @@ -0,0 +1,51 @@ +package cn.iocoder.yudao.module.llm.dal.dataobject.dataprocesstask; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 数据处理任务 DO + * + * @author 华大大模型 + */ +@TableName("llm_data_process_task") +@KeySequence("llm_data_process_task_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DataProcessTaskDO extends BaseDO { + + /** + * 数据处理任务ID + */ + @TableId + private Long id; + /** + * 任务名称 + */ + private String taskName; + /** + * 处理前数据集ID + */ + private Long datasetId; + /** + * 状态,使用字典(llm_data_process_status) + */ + private Integer status; + /** + * 处理后的数据集ID + */ + private Long datasetPostId; + /** + * 配置信息 + */ + private String options; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/datasetanswer/DatasetAnswerDO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/datasetanswer/DatasetAnswerDO.java new file mode 100644 index 000000000..72390d604 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/datasetanswer/DatasetAnswerDO.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.llm.dal.dataobject.datasetanswer; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 数据集数据问题标注内容 DO + * + * @author 华大大模型 + */ +@TableName("llm_dataset_answer") +@KeySequence("llm_dataset_answer_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DatasetAnswerDO extends BaseDO { + + /** + * 数据集问题ID + */ + @TableId + private Long id; + /** + * 数据集ID + */ + private Long datasetId; + /** + * 数据文件ID + */ + private Long datasetFilesId; + /** + * 问题ID + */ + private Long questionId; + /** + * 标注内容 + */ + private String answer; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/datasetfiles/DatasetFilesDO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/datasetfiles/DatasetFilesDO.java new file mode 100644 index 000000000..b1227fa48 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/datasetfiles/DatasetFilesDO.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.llm.dal.dataobject.datasetfiles; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 数据集数据文件 DO + * + * @author 华大大模型 + */ +@TableName("llm_dataset_files") +@KeySequence("llm_dataset_files_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DatasetFilesDO extends BaseDO { + + /** + * 数据集ID + */ + @TableId + private Long id; + /** + * 数据集ID + */ + private Long datasetId; + /** + * 数据长度 + */ + private Long dataLength; + /** + * 数据文件(文件表的ID) + */ + private Long datasetFile; + /** + * 文件URL地址 + */ + private String datasetFileUrl; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/datasetquestion/DatasetQuestionDO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/datasetquestion/DatasetQuestionDO.java new file mode 100644 index 000000000..b8a3ecd20 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/datasetquestion/DatasetQuestionDO.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.llm.dal.dataobject.datasetquestion; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 数据集数据问题 DO + * + * @author 华大大模型 + */ +@TableName("llm_dataset_question") +@KeySequence("llm_dataset_question_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DatasetQuestionDO extends BaseDO { + + /** + * 数据集问题ID + */ + @TableId + private Long id; + /** + * 数据集ID + */ + private Long datasetId; + /** + * 数据文件ID + */ + private Long datasetFilesId; + /** + * 问题内容 + */ + private String question; + /** + * 标注状态,使用字典(llm_dataset_mark_status) + */ + private Integer status; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/finetuning/FineTuningDO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/finetuning/FineTuningDO.java new file mode 100644 index 000000000..c617ae4fe --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/finetuning/FineTuningDO.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.module.llm.dal.dataobject.finetuning; + +import lombok.*; +import java.util.*; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 模型微调 DO + * + * @author 华大大模型 + */ +@TableName("llm_fine_tuning") +@KeySequence("llm_fine_tuning_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class FineTuningDO extends BaseDO { + + /** + * 微调记录唯一标识 + */ + @TableId + private Integer id; + /** + * 关联的基座模型ID + */ + private Integer baseModelId; + /** + * 训练数据量 + */ + private Integer trainingDataSize; + /** + * 评估数据集 + */ + private String evaluationDataset; + /** + * 平均分 + */ + private BigDecimal averageScore; + /** + * 评估状态 + */ + private String evaluationStatus; + /** + * lora路径 + */ + private String loraPath; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/finetuningloss/FineTuningLossDO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/finetuningloss/FineTuningLossDO.java new file mode 100644 index 000000000..f29131a2f --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/finetuningloss/FineTuningLossDO.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.module.llm.dal.dataobject.finetuningloss; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 损失记录表,用于记录每次训练的损失值 DO + * + * @author 华大大模型 + */ +@TableName("llm_fine_tuning_loss") +@KeySequence("llm_fine_tuning_loss_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class FineTuningLossDO extends BaseDO { + + /** + * ID + */ + @TableId + private Long id; + /** + * 微调任务ID + */ + private Long taskId; + /** + * 训练轮数 + */ + private Integer epoch; + /** + * 损失值 + */ + private Double lossValue; + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/prompttemplates/PromptTemplatesDO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/prompttemplates/PromptTemplatesDO.java new file mode 100644 index 000000000..1cdb62613 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/prompttemplates/PromptTemplatesDO.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplates; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * Prompt 模板表,用于记录每个模板的信息 DO + * + * @author 华大大模型 + */ +@TableName("llm_prompt_templates") +@KeySequence("llm_prompt_templates_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PromptTemplatesDO extends BaseDO { + + /** + * Prompt 模板ID + */ + @TableId + private Long id; + /** + * Prompt 模板名称 + */ + private String name; + /** + * 模板分类,使用字典(llm_prompt_template_category) + */ + private Integer templateCategory; + /** + * 模板框架,使用字典(llm_prompt_template_framework) + */ + private Integer templateFramework; + /** + * 模板内容 + */ + private String templateText; + /** + * 变量标识符,使用字典(llm_variable_identifier) + */ + private Integer variableIdentifier; + /** + * 模板类型(1 - 预制模板、2 - 自定义模板) + */ + private Integer templateType; + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/prompttemplatesapplications/PromptTemplatesApplicationsDO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/prompttemplatesapplications/PromptTemplatesApplicationsDO.java new file mode 100644 index 000000000..ff26fedf3 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/prompttemplatesapplications/PromptTemplatesApplicationsDO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatesapplications; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * Prompt 模板 应用关系表,记录模板和应用之间的多对多关系 DO + * + * @author 华大大模型 + */ +@TableName("llm_prompt_templates_applications") +@KeySequence("llm_prompt_templates_applications_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PromptTemplatesApplicationsDO extends BaseDO { + + /** + * ID + */ + @TableId + private Long id; + /** + * Prompt 模板ID + */ + private Long promptTemplateId; + /** + * 应用ID + */ + private Long applicationId; + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/prompttemplatestags/PromptTemplatesTagsDO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/prompttemplatestags/PromptTemplatesTagsDO.java new file mode 100644 index 000000000..684b9637f --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/prompttemplatestags/PromptTemplatesTagsDO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatestags; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * Prompt 模板标签关系表,记录模板和标签之间的多对多关系 DO + * + * @author 华大大模型 + */ +@TableName("llm_prompt_templates_tags") +@KeySequence("llm_prompt_templates_tags_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PromptTemplatesTagsDO extends BaseDO { + + /** + * ID + */ + @TableId + private Long id; + /** + * Prompt 模板ID + */ + private Long promptTemplateId; + /** + * 标签ID + */ + private Long tagId; + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/basemodel/BaseModelMapper.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/basemodel/BaseModelMapper.java new file mode 100644 index 000000000..d37fb0f14 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/basemodel/BaseModelMapper.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.llm.dal.mysql.basemodel; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.llm.dal.dataobject.basemodel.BaseModelDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.llm.controller.admin.basemodel.vo.*; + +/** + * 基座模型 Mapper + * + * @author 华大大模型 + */ +@Mapper +public interface BaseModelMapper extends BaseMapperX { + + default PageResult selectPage(BaseModelPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(BaseModelDO::getModelName, reqVO.getModelName()) + .eqIfPresent(BaseModelDO::getParameterCount, reqVO.getParameterCount()) + .eqIfPresent(BaseModelDO::getMaxContextLength, reqVO.getMaxContextLength()) + .eqIfPresent(BaseModelDO::getModelType, reqVO.getModelType()) + .eqIfPresent(BaseModelDO::getIsActive, reqVO.getIsActive()) + .eqIfPresent(BaseModelDO::getIsFinetuned, reqVO.getIsFinetuned()) + .eqIfPresent(BaseModelDO::getNotes, reqVO.getNotes()) + .betweenIfPresent(BaseModelDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(BaseModelDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/conversation/ConversationMapper.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/conversation/ConversationMapper.java new file mode 100644 index 000000000..5abe520f2 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/conversation/ConversationMapper.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.llm.dal.mysql.conversation; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.llm.dal.dataobject.conversation.ConversationDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.llm.controller.admin.conversation.vo.*; + +/** + * 大模型对话记录 Mapper + * + * @author 华大大模型 + */ +@Mapper +public interface ConversationMapper extends BaseMapperX { + + default PageResult selectPage(ConversationPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ConversationDO::getRole, reqVO.getRole()) + .eqIfPresent(ConversationDO::getContent, reqVO.getContent()) + .eqIfPresent(ConversationDO::getModelParams, reqVO.getModelParams()) + .eqIfPresent(ConversationDO::getPrompt, reqVO.getPrompt()) + .eqIfPresent(ConversationDO::getKnowledgeBaseId, reqVO.getKnowledgeBaseId()) + .eqIfPresent(ConversationDO::getApplicationId, reqVO.getApplicationId()) + .eqIfPresent(ConversationDO::getModelServiceId, reqVO.getModelServiceId()) + .betweenIfPresent(ConversationDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(ConversationDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/dataprocesstask/DataProcessTaskMapper.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/dataprocesstask/DataProcessTaskMapper.java new file mode 100644 index 000000000..ec0b6afb3 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/dataprocesstask/DataProcessTaskMapper.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.llm.dal.mysql.dataprocesstask; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.llm.dal.dataobject.dataprocesstask.DataProcessTaskDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.llm.controller.admin.dataprocesstask.vo.*; + +/** + * 数据处理任务 Mapper + * + * @author 华大大模型 + */ +@Mapper +public interface DataProcessTaskMapper extends BaseMapperX { + + default PageResult selectPage(DataProcessTaskPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(DataProcessTaskDO::getTaskName, reqVO.getTaskName()) + .eqIfPresent(DataProcessTaskDO::getDatasetId, reqVO.getDatasetId()) + .betweenIfPresent(DataProcessTaskDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(DataProcessTaskDO::getStatus, reqVO.getStatus()) + .eqIfPresent(DataProcessTaskDO::getDatasetPostId, reqVO.getDatasetPostId()) + .eqIfPresent(DataProcessTaskDO::getOptions, reqVO.getOptions()) + .orderByDesc(DataProcessTaskDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/datasetanswer/DatasetAnswerMapper.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/datasetanswer/DatasetAnswerMapper.java new file mode 100644 index 000000000..102b6d292 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/datasetanswer/DatasetAnswerMapper.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.llm.dal.mysql.datasetanswer; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.llm.dal.dataobject.datasetanswer.DatasetAnswerDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.llm.controller.admin.datasetanswer.vo.*; + +/** + * 数据集数据问题标注内容 Mapper + * + * @author 华大大模型 + */ +@Mapper +public interface DatasetAnswerMapper extends BaseMapperX { + + default PageResult selectPage(DatasetAnswerPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(DatasetAnswerDO::getDatasetId, reqVO.getDatasetId()) + .eqIfPresent(DatasetAnswerDO::getDatasetFilesId, reqVO.getDatasetFilesId()) + .eqIfPresent(DatasetAnswerDO::getQuestionId, reqVO.getQuestionId()) + .eqIfPresent(DatasetAnswerDO::getAnswer, reqVO.getAnswer()) + .betweenIfPresent(DatasetAnswerDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(DatasetAnswerDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/datasetfiles/DatasetFilesMapper.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/datasetfiles/DatasetFilesMapper.java new file mode 100644 index 000000000..481afe45c --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/datasetfiles/DatasetFilesMapper.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.llm.dal.mysql.datasetfiles; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.llm.dal.dataobject.datasetfiles.DatasetFilesDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.llm.controller.admin.datasetfiles.vo.*; + +/** + * 数据集数据文件 Mapper + * + * @author 华大大模型 + */ +@Mapper +public interface DatasetFilesMapper extends BaseMapperX { + + default PageResult selectPage(DatasetFilesPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(DatasetFilesDO::getDatasetId, reqVO.getDatasetId()) + .eqIfPresent(DatasetFilesDO::getDataLength, reqVO.getDataLength()) + .eqIfPresent(DatasetFilesDO::getDatasetFile, reqVO.getDatasetFile()) + .eqIfPresent(DatasetFilesDO::getDatasetFileUrl, reqVO.getDatasetFileUrl()) + .betweenIfPresent(DatasetFilesDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(DatasetFilesDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/datasetquestion/DatasetQuestionMapper.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/datasetquestion/DatasetQuestionMapper.java new file mode 100644 index 000000000..28e4758b7 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/datasetquestion/DatasetQuestionMapper.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.llm.dal.mysql.datasetquestion; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.llm.dal.dataobject.datasetquestion.DatasetQuestionDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.llm.controller.admin.datasetquestion.vo.*; + +/** + * 数据集数据问题 Mapper + * + * @author 华大大模型 + */ +@Mapper +public interface DatasetQuestionMapper extends BaseMapperX { + + default PageResult selectPage(DatasetQuestionPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(DatasetQuestionDO::getDatasetId, reqVO.getDatasetId()) + .eqIfPresent(DatasetQuestionDO::getDatasetFilesId, reqVO.getDatasetFilesId()) + .eqIfPresent(DatasetQuestionDO::getQuestion, reqVO.getQuestion()) + .eqIfPresent(DatasetQuestionDO::getStatus, reqVO.getStatus()) + .betweenIfPresent(DatasetQuestionDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(DatasetQuestionDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/finetuning/FineTuningMapper.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/finetuning/FineTuningMapper.java new file mode 100644 index 000000000..6f9403c84 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/finetuning/FineTuningMapper.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.llm.dal.mysql.finetuning; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.llm.dal.dataobject.finetuning.FineTuningDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.llm.controller.admin.finetuning.vo.*; + +/** + * 模型微调 Mapper + * + * @author 华大大模型 + */ +@Mapper +public interface FineTuningMapper extends BaseMapperX { + + default PageResult selectPage(FineTuningPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(FineTuningDO::getBaseModelId, reqVO.getBaseModelId()) + .eqIfPresent(FineTuningDO::getTrainingDataSize, reqVO.getTrainingDataSize()) + .eqIfPresent(FineTuningDO::getEvaluationDataset, reqVO.getEvaluationDataset()) + .eqIfPresent(FineTuningDO::getAverageScore, reqVO.getAverageScore()) + .eqIfPresent(FineTuningDO::getEvaluationStatus, reqVO.getEvaluationStatus()) + .eqIfPresent(FineTuningDO::getLoraPath, reqVO.getLoraPath()) + .betweenIfPresent(FineTuningDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(FineTuningDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/finetuningloss/FineTuningLossMapper.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/finetuningloss/FineTuningLossMapper.java new file mode 100644 index 000000000..d8f1163d5 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/finetuningloss/FineTuningLossMapper.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.llm.dal.mysql.finetuningloss; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.llm.dal.dataobject.finetuningloss.FineTuningLossDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.llm.controller.admin.finetuningloss.vo.*; + +/** + * 损失记录表,用于记录每次训练的损失值 Mapper + * + * @author 华大大模型 + */ +@Mapper +public interface FineTuningLossMapper extends BaseMapperX { + + default PageResult selectPage(FineTuningLossPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .betweenIfPresent(FineTuningLossDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(FineTuningLossDO::getTaskId, reqVO.getTaskId()) + .eqIfPresent(FineTuningLossDO::getEpoch, reqVO.getEpoch()) + .eqIfPresent(FineTuningLossDO::getLossValue, reqVO.getLossValue()) + .orderByDesc(FineTuningLossDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/prompttemplates/PromptTemplatesMapper.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/prompttemplates/PromptTemplatesMapper.java new file mode 100644 index 000000000..6cb4f8104 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/prompttemplates/PromptTemplatesMapper.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.llm.dal.mysql.prompttemplates; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplates.PromptTemplatesDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.llm.controller.admin.prompttemplates.vo.*; + +/** + * Prompt 模板表,用于记录每个模板的信息 Mapper + * + * @author 华大大模型 + */ +@Mapper +public interface PromptTemplatesMapper extends BaseMapperX { + + default PageResult selectPage(PromptTemplatesPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(PromptTemplatesDO::getName, reqVO.getName()) + .eqIfPresent(PromptTemplatesDO::getTemplateCategory, reqVO.getTemplateCategory()) + .eqIfPresent(PromptTemplatesDO::getTemplateFramework, reqVO.getTemplateFramework()) + .eqIfPresent(PromptTemplatesDO::getTemplateText, reqVO.getTemplateText()) + .eqIfPresent(PromptTemplatesDO::getVariableIdentifier, reqVO.getVariableIdentifier()) + .eqIfPresent(PromptTemplatesDO::getTemplateType, reqVO.getTemplateType()) + .betweenIfPresent(PromptTemplatesDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(PromptTemplatesDO::getId)); + } + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/prompttemplatesapplications/PromptTemplatesApplicationsMapper.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/prompttemplatesapplications/PromptTemplatesApplicationsMapper.java new file mode 100644 index 000000000..ae6fbf319 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/prompttemplatesapplications/PromptTemplatesApplicationsMapper.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.llm.dal.mysql.prompttemplatesapplications; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatesapplications.PromptTemplatesApplicationsDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.llm.controller.admin.prompttemplatesapplications.vo.*; + +/** + * Prompt 模板 应用关系表,记录模板和应用之间的多对多关系 Mapper + * + * @author 华大大模型 + */ +@Mapper +public interface PromptTemplatesApplicationsMapper extends BaseMapperX { + + default PageResult selectPage(PromptTemplatesApplicationsPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(PromptTemplatesApplicationsDO::getPromptTemplateId, reqVO.getPromptTemplateId()) + .eqIfPresent(PromptTemplatesApplicationsDO::getApplicationId, reqVO.getApplicationId()) + .betweenIfPresent(PromptTemplatesApplicationsDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(PromptTemplatesApplicationsDO::getId)); + } + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/prompttemplatestags/PromptTemplatesTagsMapper.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/prompttemplatestags/PromptTemplatesTagsMapper.java new file mode 100644 index 000000000..77952c74a --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/prompttemplatestags/PromptTemplatesTagsMapper.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.llm.dal.mysql.prompttemplatestags; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatestags.PromptTemplatesTagsDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.llm.controller.admin.prompttemplatestags.vo.*; + +/** + * Prompt 模板标签关系表,记录模板和标签之间的多对多关系 Mapper + * + * @author 华大大模型 + */ +@Mapper +public interface PromptTemplatesTagsMapper extends BaseMapperX { + + default PageResult selectPage(PromptTemplatesTagsPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(PromptTemplatesTagsDO::getPromptTemplateId, reqVO.getPromptTemplateId()) + .eqIfPresent(PromptTemplatesTagsDO::getTagId, reqVO.getTagId()) + .betweenIfPresent(PromptTemplatesTagsDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(PromptTemplatesTagsDO::getId)); + } + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/basemodel/BaseModelService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/basemodel/BaseModelService.java new file mode 100644 index 000000000..004945000 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/basemodel/BaseModelService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.llm.service.basemodel; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.llm.controller.admin.basemodel.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.basemodel.BaseModelDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 基座模型 Service 接口 + * + * @author 华大大模型 + */ +public interface BaseModelService { + + /** + * 创建基座模型 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Integer createBaseModel(@Valid BaseModelSaveReqVO createReqVO); + + /** + * 更新基座模型 + * + * @param updateReqVO 更新信息 + */ + void updateBaseModel(@Valid BaseModelSaveReqVO updateReqVO); + + /** + * 删除基座模型 + * + * @param id 编号 + */ + void deleteBaseModel(Integer id); + + /** + * 获得基座模型 + * + * @param id 编号 + * @return 基座模型 + */ + BaseModelDO getBaseModel(Integer id); + + /** + * 获得基座模型分页 + * + * @param pageReqVO 分页查询 + * @return 基座模型分页 + */ + PageResult getBaseModelPage(BaseModelPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/basemodel/BaseModelServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/basemodel/BaseModelServiceImpl.java new file mode 100644 index 000000000..7aeb2e849 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/basemodel/BaseModelServiceImpl.java @@ -0,0 +1,74 @@ +package cn.iocoder.yudao.module.llm.service.basemodel; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.llm.controller.admin.basemodel.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.basemodel.BaseModelDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.llm.dal.mysql.basemodel.BaseModelMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.*; + +/** + * 基座模型 Service 实现类 + * + * @author 华大大模型 + */ +@Service +@Validated +public class BaseModelServiceImpl implements BaseModelService { + + @Resource + private BaseModelMapper baseModelMapper; + + @Override + public Integer createBaseModel(BaseModelSaveReqVO createReqVO) { + // 插入 + BaseModelDO baseModel = BeanUtils.toBean(createReqVO, BaseModelDO.class); + baseModelMapper.insert(baseModel); + // 返回 + return baseModel.getId(); + } + + @Override + public void updateBaseModel(BaseModelSaveReqVO updateReqVO) { + // 校验存在 + validateBaseModelExists(updateReqVO.getId()); + // 更新 + BaseModelDO updateObj = BeanUtils.toBean(updateReqVO, BaseModelDO.class); + baseModelMapper.updateById(updateObj); + } + + @Override + public void deleteBaseModel(Integer id) { + // 校验存在 + validateBaseModelExists(id); + // 删除 + baseModelMapper.deleteById(id); + } + + private void validateBaseModelExists(Integer id) { + if (baseModelMapper.selectById(id) == null) { + throw exception(BASE_MODEL_NOT_EXISTS); + } + } + + @Override + public BaseModelDO getBaseModel(Integer id) { + return baseModelMapper.selectById(id); + } + + @Override + public PageResult getBaseModelPage(BaseModelPageReqVO pageReqVO) { + return baseModelMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationService.java new file mode 100644 index 000000000..f1cdabc6b --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.llm.service.conversation; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.llm.controller.admin.conversation.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.conversation.ConversationDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 大模型对话记录 Service 接口 + * + * @author 华大大模型 + */ +public interface ConversationService { + + /** + * 创建大模型对话记录 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Integer createConversation(@Valid ConversationSaveReqVO createReqVO); + + /** + * 更新大模型对话记录 + * + * @param updateReqVO 更新信息 + */ + void updateConversation(@Valid ConversationSaveReqVO updateReqVO); + + /** + * 删除大模型对话记录 + * + * @param id 编号 + */ + void deleteConversation(Integer id); + + /** + * 获得大模型对话记录 + * + * @param id 编号 + * @return 大模型对话记录 + */ + ConversationDO getConversation(Integer id); + + /** + * 获得大模型对话记录分页 + * + * @param pageReqVO 分页查询 + * @return 大模型对话记录分页 + */ + PageResult getConversationPage(ConversationPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationServiceImpl.java new file mode 100644 index 000000000..294aa64f4 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationServiceImpl.java @@ -0,0 +1,74 @@ +package cn.iocoder.yudao.module.llm.service.conversation; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.llm.controller.admin.conversation.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.conversation.ConversationDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.llm.dal.mysql.conversation.ConversationMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.*; + +/** + * 大模型对话记录 Service 实现类 + * + * @author 华大大模型 + */ +@Service +@Validated +public class ConversationServiceImpl implements ConversationService { + + @Resource + private ConversationMapper conversationMapper; + + @Override + public Integer createConversation(ConversationSaveReqVO createReqVO) { + // 插入 + ConversationDO conversation = BeanUtils.toBean(createReqVO, ConversationDO.class); + conversationMapper.insert(conversation); + // 返回 + return conversation.getId(); + } + + @Override + public void updateConversation(ConversationSaveReqVO updateReqVO) { + // 校验存在 + validateConversationExists(updateReqVO.getId()); + // 更新 + ConversationDO updateObj = BeanUtils.toBean(updateReqVO, ConversationDO.class); + conversationMapper.updateById(updateObj); + } + + @Override + public void deleteConversation(Integer id) { + // 校验存在 + validateConversationExists(id); + // 删除 + conversationMapper.deleteById(id); + } + + private void validateConversationExists(Integer id) { + if (conversationMapper.selectById(id) == null) { + throw exception(CONVERSATION_NOT_EXISTS); + } + } + + @Override + public ConversationDO getConversation(Integer id) { + return conversationMapper.selectById(id); + } + + @Override + public PageResult getConversationPage(ConversationPageReqVO pageReqVO) { + return conversationMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataprocesstask/DataProcessTaskService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataprocesstask/DataProcessTaskService.java new file mode 100644 index 000000000..b501a3087 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataprocesstask/DataProcessTaskService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.llm.service.dataprocesstask; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.llm.controller.admin.dataprocesstask.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.dataprocesstask.DataProcessTaskDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 数据处理任务 Service 接口 + * + * @author 华大大模型 + */ +public interface DataProcessTaskService { + + /** + * 创建数据处理任务 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createDataProcessTask(@Valid DataProcessTaskSaveReqVO createReqVO); + + /** + * 更新数据处理任务 + * + * @param updateReqVO 更新信息 + */ + void updateDataProcessTask(@Valid DataProcessTaskSaveReqVO updateReqVO); + + /** + * 删除数据处理任务 + * + * @param id 编号 + */ + void deleteDataProcessTask(Long id); + + /** + * 获得数据处理任务 + * + * @param id 编号 + * @return 数据处理任务 + */ + DataProcessTaskDO getDataProcessTask(Long id); + + /** + * 获得数据处理任务分页 + * + * @param pageReqVO 分页查询 + * @return 数据处理任务分页 + */ + PageResult getDataProcessTaskPage(DataProcessTaskPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataprocesstask/DataProcessTaskServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataprocesstask/DataProcessTaskServiceImpl.java new file mode 100644 index 000000000..cf438a58e --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataprocesstask/DataProcessTaskServiceImpl.java @@ -0,0 +1,74 @@ +package cn.iocoder.yudao.module.llm.service.dataprocesstask; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.llm.controller.admin.dataprocesstask.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.dataprocesstask.DataProcessTaskDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.llm.dal.mysql.dataprocesstask.DataProcessTaskMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.*; + +/** + * 数据处理任务 Service 实现类 + * + * @author 华大大模型 + */ +@Service +@Validated +public class DataProcessTaskServiceImpl implements DataProcessTaskService { + + @Resource + private DataProcessTaskMapper dataProcessTaskMapper; + + @Override + public Long createDataProcessTask(DataProcessTaskSaveReqVO createReqVO) { + // 插入 + DataProcessTaskDO dataProcessTask = BeanUtils.toBean(createReqVO, DataProcessTaskDO.class); + dataProcessTaskMapper.insert(dataProcessTask); + // 返回 + return dataProcessTask.getId(); + } + + @Override + public void updateDataProcessTask(DataProcessTaskSaveReqVO updateReqVO) { + // 校验存在 + validateDataProcessTaskExists(updateReqVO.getId()); + // 更新 + DataProcessTaskDO updateObj = BeanUtils.toBean(updateReqVO, DataProcessTaskDO.class); + dataProcessTaskMapper.updateById(updateObj); + } + + @Override + public void deleteDataProcessTask(Long id) { + // 校验存在 + validateDataProcessTaskExists(id); + // 删除 + dataProcessTaskMapper.deleteById(id); + } + + private void validateDataProcessTaskExists(Long id) { + if (dataProcessTaskMapper.selectById(id) == null) { + throw exception(DATA_PROCESS_TASK_NOT_EXISTS); + } + } + + @Override + public DataProcessTaskDO getDataProcessTask(Long id) { + return dataProcessTaskMapper.selectById(id); + } + + @Override + public PageResult getDataProcessTaskPage(DataProcessTaskPageReqVO pageReqVO) { + return dataProcessTaskMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datasetanswer/DatasetAnswerService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datasetanswer/DatasetAnswerService.java new file mode 100644 index 000000000..fa2e2033a --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datasetanswer/DatasetAnswerService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.llm.service.datasetanswer; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.llm.controller.admin.datasetanswer.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.datasetanswer.DatasetAnswerDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 数据集数据问题标注内容 Service 接口 + * + * @author 华大大模型 + */ +public interface DatasetAnswerService { + + /** + * 创建数据集数据问题标注内容 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createDatasetAnswer(@Valid DatasetAnswerSaveReqVO createReqVO); + + /** + * 更新数据集数据问题标注内容 + * + * @param updateReqVO 更新信息 + */ + void updateDatasetAnswer(@Valid DatasetAnswerSaveReqVO updateReqVO); + + /** + * 删除数据集数据问题标注内容 + * + * @param id 编号 + */ + void deleteDatasetAnswer(Long id); + + /** + * 获得数据集数据问题标注内容 + * + * @param id 编号 + * @return 数据集数据问题标注内容 + */ + DatasetAnswerDO getDatasetAnswer(Long id); + + /** + * 获得数据集数据问题标注内容分页 + * + * @param pageReqVO 分页查询 + * @return 数据集数据问题标注内容分页 + */ + PageResult getDatasetAnswerPage(DatasetAnswerPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datasetanswer/DatasetAnswerServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datasetanswer/DatasetAnswerServiceImpl.java new file mode 100644 index 000000000..17624a3ef --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datasetanswer/DatasetAnswerServiceImpl.java @@ -0,0 +1,74 @@ +package cn.iocoder.yudao.module.llm.service.datasetanswer; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.llm.controller.admin.datasetanswer.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.datasetanswer.DatasetAnswerDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.llm.dal.mysql.datasetanswer.DatasetAnswerMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.*; + +/** + * 数据集数据问题标注内容 Service 实现类 + * + * @author 华大大模型 + */ +@Service +@Validated +public class DatasetAnswerServiceImpl implements DatasetAnswerService { + + @Resource + private DatasetAnswerMapper datasetAnswerMapper; + + @Override + public Long createDatasetAnswer(DatasetAnswerSaveReqVO createReqVO) { + // 插入 + DatasetAnswerDO datasetAnswer = BeanUtils.toBean(createReqVO, DatasetAnswerDO.class); + datasetAnswerMapper.insert(datasetAnswer); + // 返回 + return datasetAnswer.getId(); + } + + @Override + public void updateDatasetAnswer(DatasetAnswerSaveReqVO updateReqVO) { + // 校验存在 + validateDatasetAnswerExists(updateReqVO.getId()); + // 更新 + DatasetAnswerDO updateObj = BeanUtils.toBean(updateReqVO, DatasetAnswerDO.class); + datasetAnswerMapper.updateById(updateObj); + } + + @Override + public void deleteDatasetAnswer(Long id) { + // 校验存在 + validateDatasetAnswerExists(id); + // 删除 + datasetAnswerMapper.deleteById(id); + } + + private void validateDatasetAnswerExists(Long id) { + if (datasetAnswerMapper.selectById(id) == null) { + throw exception(DATASET_ANSWER_NOT_EXISTS); + } + } + + @Override + public DatasetAnswerDO getDatasetAnswer(Long id) { + return datasetAnswerMapper.selectById(id); + } + + @Override + public PageResult getDatasetAnswerPage(DatasetAnswerPageReqVO pageReqVO) { + return datasetAnswerMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datasetfiles/DatasetFilesService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datasetfiles/DatasetFilesService.java new file mode 100644 index 000000000..61a70e6b3 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datasetfiles/DatasetFilesService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.llm.service.datasetfiles; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.llm.controller.admin.datasetfiles.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.datasetfiles.DatasetFilesDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 数据集数据文件 Service 接口 + * + * @author 华大大模型 + */ +public interface DatasetFilesService { + + /** + * 创建数据集数据文件 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createDatasetFiles(@Valid DatasetFilesSaveReqVO createReqVO); + + /** + * 更新数据集数据文件 + * + * @param updateReqVO 更新信息 + */ + void updateDatasetFiles(@Valid DatasetFilesSaveReqVO updateReqVO); + + /** + * 删除数据集数据文件 + * + * @param id 编号 + */ + void deleteDatasetFiles(Long id); + + /** + * 获得数据集数据文件 + * + * @param id 编号 + * @return 数据集数据文件 + */ + DatasetFilesDO getDatasetFiles(Long id); + + /** + * 获得数据集数据文件分页 + * + * @param pageReqVO 分页查询 + * @return 数据集数据文件分页 + */ + PageResult getDatasetFilesPage(DatasetFilesPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datasetfiles/DatasetFilesServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datasetfiles/DatasetFilesServiceImpl.java new file mode 100644 index 000000000..e664e145a --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datasetfiles/DatasetFilesServiceImpl.java @@ -0,0 +1,74 @@ +package cn.iocoder.yudao.module.llm.service.datasetfiles; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.llm.controller.admin.datasetfiles.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.datasetfiles.DatasetFilesDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.llm.dal.mysql.datasetfiles.DatasetFilesMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.*; + +/** + * 数据集数据文件 Service 实现类 + * + * @author 华大大模型 + */ +@Service +@Validated +public class DatasetFilesServiceImpl implements DatasetFilesService { + + @Resource + private DatasetFilesMapper datasetFilesMapper; + + @Override + public Long createDatasetFiles(DatasetFilesSaveReqVO createReqVO) { + // 插入 + DatasetFilesDO datasetFiles = BeanUtils.toBean(createReqVO, DatasetFilesDO.class); + datasetFilesMapper.insert(datasetFiles); + // 返回 + return datasetFiles.getId(); + } + + @Override + public void updateDatasetFiles(DatasetFilesSaveReqVO updateReqVO) { + // 校验存在 + validateDatasetFilesExists(updateReqVO.getId()); + // 更新 + DatasetFilesDO updateObj = BeanUtils.toBean(updateReqVO, DatasetFilesDO.class); + datasetFilesMapper.updateById(updateObj); + } + + @Override + public void deleteDatasetFiles(Long id) { + // 校验存在 + validateDatasetFilesExists(id); + // 删除 + datasetFilesMapper.deleteById(id); + } + + private void validateDatasetFilesExists(Long id) { + if (datasetFilesMapper.selectById(id) == null) { + throw exception(DATASET_FILES_NOT_EXISTS); + } + } + + @Override + public DatasetFilesDO getDatasetFiles(Long id) { + return datasetFilesMapper.selectById(id); + } + + @Override + public PageResult getDatasetFilesPage(DatasetFilesPageReqVO pageReqVO) { + return datasetFilesMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datasetquestion/DatasetQuestionService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datasetquestion/DatasetQuestionService.java new file mode 100644 index 000000000..a96df0962 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datasetquestion/DatasetQuestionService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.llm.service.datasetquestion; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.llm.controller.admin.datasetquestion.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.datasetquestion.DatasetQuestionDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 数据集数据问题 Service 接口 + * + * @author 华大大模型 + */ +public interface DatasetQuestionService { + + /** + * 创建数据集数据问题 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createDatasetQuestion(@Valid DatasetQuestionSaveReqVO createReqVO); + + /** + * 更新数据集数据问题 + * + * @param updateReqVO 更新信息 + */ + void updateDatasetQuestion(@Valid DatasetQuestionSaveReqVO updateReqVO); + + /** + * 删除数据集数据问题 + * + * @param id 编号 + */ + void deleteDatasetQuestion(Long id); + + /** + * 获得数据集数据问题 + * + * @param id 编号 + * @return 数据集数据问题 + */ + DatasetQuestionDO getDatasetQuestion(Long id); + + /** + * 获得数据集数据问题分页 + * + * @param pageReqVO 分页查询 + * @return 数据集数据问题分页 + */ + PageResult getDatasetQuestionPage(DatasetQuestionPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datasetquestion/DatasetQuestionServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datasetquestion/DatasetQuestionServiceImpl.java new file mode 100644 index 000000000..e14024610 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datasetquestion/DatasetQuestionServiceImpl.java @@ -0,0 +1,74 @@ +package cn.iocoder.yudao.module.llm.service.datasetquestion; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.llm.controller.admin.datasetquestion.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.datasetquestion.DatasetQuestionDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.llm.dal.mysql.datasetquestion.DatasetQuestionMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.*; + +/** + * 数据集数据问题 Service 实现类 + * + * @author 华大大模型 + */ +@Service +@Validated +public class DatasetQuestionServiceImpl implements DatasetQuestionService { + + @Resource + private DatasetQuestionMapper datasetQuestionMapper; + + @Override + public Long createDatasetQuestion(DatasetQuestionSaveReqVO createReqVO) { + // 插入 + DatasetQuestionDO datasetQuestion = BeanUtils.toBean(createReqVO, DatasetQuestionDO.class); + datasetQuestionMapper.insert(datasetQuestion); + // 返回 + return datasetQuestion.getId(); + } + + @Override + public void updateDatasetQuestion(DatasetQuestionSaveReqVO updateReqVO) { + // 校验存在 + validateDatasetQuestionExists(updateReqVO.getId()); + // 更新 + DatasetQuestionDO updateObj = BeanUtils.toBean(updateReqVO, DatasetQuestionDO.class); + datasetQuestionMapper.updateById(updateObj); + } + + @Override + public void deleteDatasetQuestion(Long id) { + // 校验存在 + validateDatasetQuestionExists(id); + // 删除 + datasetQuestionMapper.deleteById(id); + } + + private void validateDatasetQuestionExists(Long id) { + if (datasetQuestionMapper.selectById(id) == null) { + throw exception(DATASET_QUESTION_NOT_EXISTS); + } + } + + @Override + public DatasetQuestionDO getDatasetQuestion(Long id) { + return datasetQuestionMapper.selectById(id); + } + + @Override + public PageResult getDatasetQuestionPage(DatasetQuestionPageReqVO pageReqVO) { + return datasetQuestionMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuning/FineTuningService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuning/FineTuningService.java new file mode 100644 index 000000000..b23779711 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuning/FineTuningService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.llm.service.finetuning; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.llm.controller.admin.finetuning.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.finetuning.FineTuningDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 模型微调 Service 接口 + * + * @author 华大大模型 + */ +public interface FineTuningService { + + /** + * 创建模型微调 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Integer createFineTuning(@Valid FineTuningSaveReqVO createReqVO); + + /** + * 更新模型微调 + * + * @param updateReqVO 更新信息 + */ + void updateFineTuning(@Valid FineTuningSaveReqVO updateReqVO); + + /** + * 删除模型微调 + * + * @param id 编号 + */ + void deleteFineTuning(Integer id); + + /** + * 获得模型微调 + * + * @param id 编号 + * @return 模型微调 + */ + FineTuningDO getFineTuning(Integer id); + + /** + * 获得模型微调分页 + * + * @param pageReqVO 分页查询 + * @return 模型微调分页 + */ + PageResult getFineTuningPage(FineTuningPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuning/FineTuningServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuning/FineTuningServiceImpl.java new file mode 100644 index 000000000..4e53e726d --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuning/FineTuningServiceImpl.java @@ -0,0 +1,74 @@ +package cn.iocoder.yudao.module.llm.service.finetuning; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.llm.controller.admin.finetuning.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.finetuning.FineTuningDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.llm.dal.mysql.finetuning.FineTuningMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.*; + +/** + * 模型微调 Service 实现类 + * + * @author 华大大模型 + */ +@Service +@Validated +public class FineTuningServiceImpl implements FineTuningService { + + @Resource + private FineTuningMapper fineTuningMapper; + + @Override + public Integer createFineTuning(FineTuningSaveReqVO createReqVO) { + // 插入 + FineTuningDO fineTuning = BeanUtils.toBean(createReqVO, FineTuningDO.class); + fineTuningMapper.insert(fineTuning); + // 返回 + return fineTuning.getId(); + } + + @Override + public void updateFineTuning(FineTuningSaveReqVO updateReqVO) { + // 校验存在 + validateFineTuningExists(updateReqVO.getId()); + // 更新 + FineTuningDO updateObj = BeanUtils.toBean(updateReqVO, FineTuningDO.class); + fineTuningMapper.updateById(updateObj); + } + + @Override + public void deleteFineTuning(Integer id) { + // 校验存在 + validateFineTuningExists(id); + // 删除 + fineTuningMapper.deleteById(id); + } + + private void validateFineTuningExists(Integer id) { + if (fineTuningMapper.selectById(id) == null) { + throw exception(FINE_TUNING_NOT_EXISTS); + } + } + + @Override + public FineTuningDO getFineTuning(Integer id) { + return fineTuningMapper.selectById(id); + } + + @Override + public PageResult getFineTuningPage(FineTuningPageReqVO pageReqVO) { + return fineTuningMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningloss/FineTuningLossService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningloss/FineTuningLossService.java new file mode 100644 index 000000000..98ef54d21 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningloss/FineTuningLossService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.llm.service.finetuningloss; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.llm.controller.admin.finetuningloss.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.finetuningloss.FineTuningLossDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 损失记录表,用于记录每次训练的损失值 Service 接口 + * + * @author 华大大模型 + */ +public interface FineTuningLossService { + + /** + * 创建损失记录表,用于记录每次训练的损失值 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createFineTuningLoss(@Valid FineTuningLossSaveReqVO createReqVO); + + /** + * 更新损失记录表,用于记录每次训练的损失值 + * + * @param updateReqVO 更新信息 + */ + void updateFineTuningLoss(@Valid FineTuningLossSaveReqVO updateReqVO); + + /** + * 删除损失记录表,用于记录每次训练的损失值 + * + * @param id 编号 + */ + void deleteFineTuningLoss(Long id); + + /** + * 获得损失记录表,用于记录每次训练的损失值 + * + * @param id 编号 + * @return 损失记录表,用于记录每次训练的损失值 + */ + FineTuningLossDO getFineTuningLoss(Long id); + + /** + * 获得损失记录表,用于记录每次训练的损失值分页 + * + * @param pageReqVO 分页查询 + * @return 损失记录表,用于记录每次训练的损失值分页 + */ + PageResult getFineTuningLossPage(FineTuningLossPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningloss/FineTuningLossServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningloss/FineTuningLossServiceImpl.java new file mode 100644 index 000000000..eb058f8fb --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningloss/FineTuningLossServiceImpl.java @@ -0,0 +1,74 @@ +package cn.iocoder.yudao.module.llm.service.finetuningloss; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.llm.controller.admin.finetuningloss.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.finetuningloss.FineTuningLossDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.llm.dal.mysql.finetuningloss.FineTuningLossMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.*; + +/** + * 损失记录表,用于记录每次训练的损失值 Service 实现类 + * + * @author 华大大模型 + */ +@Service +@Validated +public class FineTuningLossServiceImpl implements FineTuningLossService { + + @Resource + private FineTuningLossMapper fineTuningLossMapper; + + @Override + public Long createFineTuningLoss(FineTuningLossSaveReqVO createReqVO) { + // 插入 + FineTuningLossDO fineTuningLoss = BeanUtils.toBean(createReqVO, FineTuningLossDO.class); + fineTuningLossMapper.insert(fineTuningLoss); + // 返回 + return fineTuningLoss.getId(); + } + + @Override + public void updateFineTuningLoss(FineTuningLossSaveReqVO updateReqVO) { + // 校验存在 + validateFineTuningLossExists(updateReqVO.getId()); + // 更新 + FineTuningLossDO updateObj = BeanUtils.toBean(updateReqVO, FineTuningLossDO.class); + fineTuningLossMapper.updateById(updateObj); + } + + @Override + public void deleteFineTuningLoss(Long id) { + // 校验存在 + validateFineTuningLossExists(id); + // 删除 + fineTuningLossMapper.deleteById(id); + } + + private void validateFineTuningLossExists(Long id) { + if (fineTuningLossMapper.selectById(id) == null) { + throw exception(FINE_TUNING_LOSS_NOT_EXISTS); + } + } + + @Override + public FineTuningLossDO getFineTuningLoss(Long id) { + return fineTuningLossMapper.selectById(id); + } + + @Override + public PageResult getFineTuningLossPage(FineTuningLossPageReqVO pageReqVO) { + return fineTuningLossMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplates/PromptTemplatesService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplates/PromptTemplatesService.java new file mode 100644 index 000000000..913258977 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplates/PromptTemplatesService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.llm.service.prompttemplates; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.llm.controller.admin.prompttemplates.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplates.PromptTemplatesDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * Prompt 模板表,用于记录每个模板的信息 Service 接口 + * + * @author 华大大模型 + */ +public interface PromptTemplatesService { + + /** + * 创建Prompt 模板表,用于记录每个模板的信息 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createPromptTemplates(@Valid PromptTemplatesSaveReqVO createReqVO); + + /** + * 更新Prompt 模板表,用于记录每个模板的信息 + * + * @param updateReqVO 更新信息 + */ + void updatePromptTemplates(@Valid PromptTemplatesSaveReqVO updateReqVO); + + /** + * 删除Prompt 模板表,用于记录每个模板的信息 + * + * @param id 编号 + */ + void deletePromptTemplates(Long id); + + /** + * 获得Prompt 模板表,用于记录每个模板的信息 + * + * @param id 编号 + * @return Prompt 模板表,用于记录每个模板的信息 + */ + PromptTemplatesDO getPromptTemplates(Long id); + + /** + * 获得Prompt 模板表,用于记录每个模板的信息分页 + * + * @param pageReqVO 分页查询 + * @return Prompt 模板表,用于记录每个模板的信息分页 + */ + PageResult getPromptTemplatesPage(PromptTemplatesPageReqVO pageReqVO); + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplates/PromptTemplatesServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplates/PromptTemplatesServiceImpl.java new file mode 100644 index 000000000..85873f0aa --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplates/PromptTemplatesServiceImpl.java @@ -0,0 +1,74 @@ +package cn.iocoder.yudao.module.llm.service.prompttemplates; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.llm.controller.admin.prompttemplates.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplates.PromptTemplatesDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.llm.dal.mysql.prompttemplates.PromptTemplatesMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.*; + +/** + * Prompt 模板表,用于记录每个模板的信息 Service 实现类 + * + * @author 华大大模型 + */ +@Service +@Validated +public class PromptTemplatesServiceImpl implements PromptTemplatesService { + + @Resource + private PromptTemplatesMapper promptTemplatesMapper; + + @Override + public Long createPromptTemplates(PromptTemplatesSaveReqVO createReqVO) { + // 插入 + PromptTemplatesDO promptTemplates = BeanUtils.toBean(createReqVO, PromptTemplatesDO.class); + promptTemplatesMapper.insert(promptTemplates); + // 返回 + return promptTemplates.getId(); + } + + @Override + public void updatePromptTemplates(PromptTemplatesSaveReqVO updateReqVO) { + // 校验存在 + validatePromptTemplatesExists(updateReqVO.getId()); + // 更新 + PromptTemplatesDO updateObj = BeanUtils.toBean(updateReqVO, PromptTemplatesDO.class); + promptTemplatesMapper.updateById(updateObj); + } + + @Override + public void deletePromptTemplates(Long id) { + // 校验存在 + validatePromptTemplatesExists(id); + // 删除 + promptTemplatesMapper.deleteById(id); + } + + private void validatePromptTemplatesExists(Long id) { + if (promptTemplatesMapper.selectById(id) == null) { + throw exception(PROMPT_TEMPLATES_NOT_EXISTS); + } + } + + @Override + public PromptTemplatesDO getPromptTemplates(Long id) { + return promptTemplatesMapper.selectById(id); + } + + @Override + public PageResult getPromptTemplatesPage(PromptTemplatesPageReqVO pageReqVO) { + return promptTemplatesMapper.selectPage(pageReqVO); + } + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatesapplications/PromptTemplatesApplicationsService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatesapplications/PromptTemplatesApplicationsService.java new file mode 100644 index 000000000..446421239 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatesapplications/PromptTemplatesApplicationsService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.llm.service.prompttemplatesapplications; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.llm.controller.admin.prompttemplatesapplications.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatesapplications.PromptTemplatesApplicationsDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * Prompt 模板 应用关系表,记录模板和应用之间的多对多关系 Service 接口 + * + * @author 华大大模型 + */ +public interface PromptTemplatesApplicationsService { + + /** + * 创建Prompt 模板 应用关系表,记录模板和应用之间的多对多关系 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createPromptTemplatesApplications(@Valid PromptTemplatesApplicationsSaveReqVO createReqVO); + + /** + * 更新Prompt 模板 应用关系表,记录模板和应用之间的多对多关系 + * + * @param updateReqVO 更新信息 + */ + void updatePromptTemplatesApplications(@Valid PromptTemplatesApplicationsSaveReqVO updateReqVO); + + /** + * 删除Prompt 模板 应用关系表,记录模板和应用之间的多对多关系 + * + * @param id 编号 + */ + void deletePromptTemplatesApplications(Long id); + + /** + * 获得Prompt 模板 应用关系表,记录模板和应用之间的多对多关系 + * + * @param id 编号 + * @return Prompt 模板 应用关系表,记录模板和应用之间的多对多关系 + */ + PromptTemplatesApplicationsDO getPromptTemplatesApplications(Long id); + + /** + * 获得Prompt 模板 应用关系表,记录模板和应用之间的多对多关系分页 + * + * @param pageReqVO 分页查询 + * @return Prompt 模板 应用关系表,记录模板和应用之间的多对多关系分页 + */ + PageResult getPromptTemplatesApplicationsPage(PromptTemplatesApplicationsPageReqVO pageReqVO); + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatesapplications/PromptTemplatesApplicationsServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatesapplications/PromptTemplatesApplicationsServiceImpl.java new file mode 100644 index 000000000..eb31c47b6 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatesapplications/PromptTemplatesApplicationsServiceImpl.java @@ -0,0 +1,74 @@ +package cn.iocoder.yudao.module.llm.service.prompttemplatesapplications; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.llm.controller.admin.prompttemplatesapplications.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatesapplications.PromptTemplatesApplicationsDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.llm.dal.mysql.prompttemplatesapplications.PromptTemplatesApplicationsMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.*; + +/** + * Prompt 模板 应用关系表,记录模板和应用之间的多对多关系 Service 实现类 + * + * @author 华大大模型 + */ +@Service +@Validated +public class PromptTemplatesApplicationsServiceImpl implements PromptTemplatesApplicationsService { + + @Resource + private PromptTemplatesApplicationsMapper promptTemplatesApplicationsMapper; + + @Override + public Long createPromptTemplatesApplications(PromptTemplatesApplicationsSaveReqVO createReqVO) { + // 插入 + PromptTemplatesApplicationsDO promptTemplatesApplications = BeanUtils.toBean(createReqVO, PromptTemplatesApplicationsDO.class); + promptTemplatesApplicationsMapper.insert(promptTemplatesApplications); + // 返回 + return promptTemplatesApplications.getId(); + } + + @Override + public void updatePromptTemplatesApplications(PromptTemplatesApplicationsSaveReqVO updateReqVO) { + // 校验存在 + validatePromptTemplatesApplicationsExists(updateReqVO.getId()); + // 更新 + PromptTemplatesApplicationsDO updateObj = BeanUtils.toBean(updateReqVO, PromptTemplatesApplicationsDO.class); + promptTemplatesApplicationsMapper.updateById(updateObj); + } + + @Override + public void deletePromptTemplatesApplications(Long id) { + // 校验存在 + validatePromptTemplatesApplicationsExists(id); + // 删除 + promptTemplatesApplicationsMapper.deleteById(id); + } + + private void validatePromptTemplatesApplicationsExists(Long id) { + if (promptTemplatesApplicationsMapper.selectById(id) == null) { + throw exception(PROMPT_TEMPLATES_APPLICATIONS_NOT_EXISTS); + } + } + + @Override + public PromptTemplatesApplicationsDO getPromptTemplatesApplications(Long id) { + return promptTemplatesApplicationsMapper.selectById(id); + } + + @Override + public PageResult getPromptTemplatesApplicationsPage(PromptTemplatesApplicationsPageReqVO pageReqVO) { + return promptTemplatesApplicationsMapper.selectPage(pageReqVO); + } + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatestags/PromptTemplatesTagsService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatestags/PromptTemplatesTagsService.java new file mode 100644 index 000000000..c9b85627f --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatestags/PromptTemplatesTagsService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.llm.service.prompttemplatestags; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.llm.controller.admin.prompttemplatestags.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatestags.PromptTemplatesTagsDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * Prompt 模板标签关系表,记录模板和标签之间的多对多关系 Service 接口 + * + * @author 华大大模型 + */ +public interface PromptTemplatesTagsService { + + /** + * 创建Prompt 模板标签关系表,记录模板和标签之间的多对多关系 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createPromptTemplatesTags(@Valid PromptTemplatesTagsSaveReqVO createReqVO); + + /** + * 更新Prompt 模板标签关系表,记录模板和标签之间的多对多关系 + * + * @param updateReqVO 更新信息 + */ + void updatePromptTemplatesTags(@Valid PromptTemplatesTagsSaveReqVO updateReqVO); + + /** + * 删除Prompt 模板标签关系表,记录模板和标签之间的多对多关系 + * + * @param id 编号 + */ + void deletePromptTemplatesTags(Long id); + + /** + * 获得Prompt 模板标签关系表,记录模板和标签之间的多对多关系 + * + * @param id 编号 + * @return Prompt 模板标签关系表,记录模板和标签之间的多对多关系 + */ + PromptTemplatesTagsDO getPromptTemplatesTags(Long id); + + /** + * 获得Prompt 模板标签关系表,记录模板和标签之间的多对多关系分页 + * + * @param pageReqVO 分页查询 + * @return Prompt 模板标签关系表,记录模板和标签之间的多对多关系分页 + */ + PageResult getPromptTemplatesTagsPage(PromptTemplatesTagsPageReqVO pageReqVO); + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatestags/PromptTemplatesTagsServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatestags/PromptTemplatesTagsServiceImpl.java new file mode 100644 index 000000000..2db87aaf7 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatestags/PromptTemplatesTagsServiceImpl.java @@ -0,0 +1,74 @@ +package cn.iocoder.yudao.module.llm.service.prompttemplatestags; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.llm.controller.admin.prompttemplatestags.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatestags.PromptTemplatesTagsDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.llm.dal.mysql.prompttemplatestags.PromptTemplatesTagsMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.*; + +/** + * Prompt 模板标签关系表,记录模板和标签之间的多对多关系 Service 实现类 + * + * @author 华大大模型 + */ +@Service +@Validated +public class PromptTemplatesTagsServiceImpl implements PromptTemplatesTagsService { + + @Resource + private PromptTemplatesTagsMapper promptTemplatesTagsMapper; + + @Override + public Long createPromptTemplatesTags(PromptTemplatesTagsSaveReqVO createReqVO) { + // 插入 + PromptTemplatesTagsDO promptTemplatesTags = BeanUtils.toBean(createReqVO, PromptTemplatesTagsDO.class); + promptTemplatesTagsMapper.insert(promptTemplatesTags); + // 返回 + return promptTemplatesTags.getId(); + } + + @Override + public void updatePromptTemplatesTags(PromptTemplatesTagsSaveReqVO updateReqVO) { + // 校验存在 + validatePromptTemplatesTagsExists(updateReqVO.getId()); + // 更新 + PromptTemplatesTagsDO updateObj = BeanUtils.toBean(updateReqVO, PromptTemplatesTagsDO.class); + promptTemplatesTagsMapper.updateById(updateObj); + } + + @Override + public void deletePromptTemplatesTags(Long id) { + // 校验存在 + validatePromptTemplatesTagsExists(id); + // 删除 + promptTemplatesTagsMapper.deleteById(id); + } + + private void validatePromptTemplatesTagsExists(Long id) { + if (promptTemplatesTagsMapper.selectById(id) == null) { + throw exception(PROMPT_TEMPLATES_TAGS_NOT_EXISTS); + } + } + + @Override + public PromptTemplatesTagsDO getPromptTemplatesTags(Long id) { + return promptTemplatesTagsMapper.selectById(id); + } + + @Override + public PageResult getPromptTemplatesTagsPage(PromptTemplatesTagsPageReqVO pageReqVO) { + return promptTemplatesTagsMapper.selectPage(pageReqVO); + } + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/basemodel/BaseModelMapper.xml b/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/basemodel/BaseModelMapper.xml new file mode 100644 index 000000000..d95f0f921 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/basemodel/BaseModelMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/conversation/ConversationMapper.xml b/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/conversation/ConversationMapper.xml new file mode 100644 index 000000000..8947d5d94 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/conversation/ConversationMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/dataprocesstask/DataProcessTaskMapper.xml b/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/dataprocesstask/DataProcessTaskMapper.xml new file mode 100644 index 000000000..47ccdfc90 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/dataprocesstask/DataProcessTaskMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/datasetanswer/DatasetAnswerMapper.xml b/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/datasetanswer/DatasetAnswerMapper.xml new file mode 100644 index 000000000..6a967d001 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/datasetanswer/DatasetAnswerMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/datasetfiles/DatasetFilesMapper.xml b/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/datasetfiles/DatasetFilesMapper.xml new file mode 100644 index 000000000..d837e9ea7 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/datasetfiles/DatasetFilesMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/datasetquestion/DatasetQuestionMapper.xml b/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/datasetquestion/DatasetQuestionMapper.xml new file mode 100644 index 000000000..808c0797f --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/datasetquestion/DatasetQuestionMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/finetuning/FineTuningMapper.xml b/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/finetuning/FineTuningMapper.xml new file mode 100644 index 000000000..29a4c99b4 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/finetuning/FineTuningMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/finetuningloss/FineTuningLossMapper.xml b/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/finetuningloss/FineTuningLossMapper.xml new file mode 100644 index 000000000..0c22223fc --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/finetuningloss/FineTuningLossMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/prompttemplates/PromptTemplatesMapper.xml b/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/prompttemplates/PromptTemplatesMapper.xml new file mode 100644 index 000000000..bb4427bce --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/prompttemplates/PromptTemplatesMapper.xml @@ -0,0 +1,12 @@ + + + + + + + diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/prompttemplatesapplications/PromptTemplatesApplicationsMapper.xml b/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/prompttemplatesapplications/PromptTemplatesApplicationsMapper.xml new file mode 100644 index 000000000..36ad28841 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/prompttemplatesapplications/PromptTemplatesApplicationsMapper.xml @@ -0,0 +1,12 @@ + + + + + + + diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/prompttemplatestags/PromptTemplatesTagsMapper.xml b/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/prompttemplatestags/PromptTemplatesTagsMapper.xml new file mode 100644 index 000000000..93050f15f --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/resources/mapper/prompttemplatestags/PromptTemplatesTagsMapper.xml @@ -0,0 +1,12 @@ + + + + + + +