mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-01 02:38:43 +08:00 
			
		
		
		
	【新增】AI 知识库: 增加部分管理类接口
This commit is contained in:
		| @@ -4,7 +4,7 @@ import cn.iocoder.yudao.framework.common.exception.ErrorCode; | |||||||
|  |  | ||||||
| /** | /** | ||||||
|  * AI 错误码枚举类 |  * AI 错误码枚举类 | ||||||
|  * |  * <p> | ||||||
|  * ai 系统,使用 1-040-000-000 段 |  * ai 系统,使用 1-040-000-000 段 | ||||||
|  */ |  */ | ||||||
| public interface ErrorCodeConstants { | public interface ErrorCodeConstants { | ||||||
| @@ -55,5 +55,7 @@ public interface ErrorCodeConstants { | |||||||
|  |  | ||||||
|     // ========== API 知识库 1-022-008-000 ========== |     // ========== API 知识库 1-022-008-000 ========== | ||||||
|     ErrorCode KNOWLEDGE_NOT_EXISTS = new ErrorCode(1_022_008_000, "知识库不存在!"); |     ErrorCode KNOWLEDGE_NOT_EXISTS = new ErrorCode(1_022_008_000, "知识库不存在!"); | ||||||
|  |     ErrorCode KNOWLEDGE_DOCUMENT_NOT_EXISTS = new ErrorCode(1_022_008_001, "文档不存在!"); | ||||||
|  |     ErrorCode KNOWLEDGE_SEGMENT_NOT_EXISTS = new ErrorCode(1_022_008_002, "段落不存在!"); | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,13 +1,19 @@ | |||||||
| package cn.iocoder.yudao.module.ai.controller.admin.knowledge; | package cn.iocoder.yudao.module.ai.controller.admin.knowledge; | ||||||
|  |  | ||||||
| import cn.iocoder.yudao.framework.common.pojo.CommonResult; | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||||||
| import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.AiKnowledgeCreateMyReqVO; | import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||||||
| import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.AiKnowledgeUpdateMyReqVO; | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
|  | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.knowledge.AiKnowledgeCreateMyReqVO; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.knowledge.AiKnowledgeRespVO; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.knowledge.AiKnowledgeUpdateMyReqVO; | ||||||
|  | import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeDO; | ||||||
| import cn.iocoder.yudao.module.ai.service.knowledge.AiKnowledgeService; | import cn.iocoder.yudao.module.ai.service.knowledge.AiKnowledgeService; | ||||||
| import io.swagger.v3.oas.annotations.Operation; | import io.swagger.v3.oas.annotations.Operation; | ||||||
| import io.swagger.v3.oas.annotations.tags.Tag; | import io.swagger.v3.oas.annotations.tags.Tag; | ||||||
| import jakarta.annotation.Resource; | import jakarta.annotation.Resource; | ||||||
| import jakarta.validation.Valid; | import jakarta.validation.Valid; | ||||||
|  | import org.springframework.validation.annotation.Validated; | ||||||
| import org.springframework.web.bind.annotation.*; | import org.springframework.web.bind.annotation.*; | ||||||
|  |  | ||||||
| import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||||||
| @@ -19,19 +25,27 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti | |||||||
| public class AiKnowledgeController { | public class AiKnowledgeController { | ||||||
|  |  | ||||||
|     @Resource |     @Resource | ||||||
|     private AiKnowledgeService knowledgeBaseService; |     private AiKnowledgeService knowledgeService; | ||||||
|  |  | ||||||
|  |     @GetMapping("/my-page") | ||||||
|  |     @Operation(summary = "获取【我的】知识库分页") | ||||||
|  |     public CommonResult<PageResult<AiKnowledgeRespVO>> getKnowledgePageMy(@Validated PageParam pageReqVO) { | ||||||
|  |         PageResult<AiKnowledgeDO> pageResult = knowledgeService.getKnowledgePageMy(getLoginUserId(), pageReqVO); | ||||||
|  |         return success(BeanUtils.toBean(pageResult, AiKnowledgeRespVO.class)); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|     @PostMapping("/create-my") |     @PostMapping("/create-my") | ||||||
|     @Operation(summary = "创建【我的】知识库") |     @Operation(summary = "创建【我的】知识库") | ||||||
|     public CommonResult<Long> createKnowledgeMy(@RequestBody @Valid AiKnowledgeCreateMyReqVO createReqVO) { |     public CommonResult<Long> createKnowledgeMy(@RequestBody @Valid AiKnowledgeCreateMyReqVO createReqVO) { | ||||||
|         return success(knowledgeBaseService.createKnowledgeMy(createReqVO, getLoginUserId())); |         return success(knowledgeService.createKnowledgeMy(createReqVO, getLoginUserId())); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|     @PutMapping("/update-my") |     @PutMapping("/update-my") | ||||||
|     @Operation(summary = "更新【我的】知识库") |     @Operation(summary = "更新【我的】知识库") | ||||||
|     public CommonResult<Boolean> updateKnowledgeMy(@RequestBody @Valid AiKnowledgeUpdateMyReqVO updateReqVO) { |     public CommonResult<Boolean> updateKnowledgeMy(@RequestBody @Valid AiKnowledgeUpdateMyReqVO updateReqVO) { | ||||||
|         knowledgeBaseService.updateKnowledgeMy(updateReqVO, getLoginUserId()); |         knowledgeService.updateKnowledgeMy(updateReqVO, getLoginUserId()); | ||||||
|         return success(true); |         return success(true); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -0,0 +1,54 @@ | |||||||
|  | package cn.iocoder.yudao.module.ai.controller.admin.knowledge; | ||||||
|  |  | ||||||
|  | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||||||
|  | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
|  | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.document.AiKnowledgeDocumentPageReqVO; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.document.AiKnowledgeDocumentRespVO; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.document.AiKnowledgeDocumentUpdateReqVO; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.knowledge.AiKnowledgeDocumentCreateReqVO; | ||||||
|  | import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeDocumentDO; | ||||||
|  | import cn.iocoder.yudao.module.ai.service.knowledge.AiKnowledgeDocumentService; | ||||||
|  | import io.swagger.v3.oas.annotations.Operation; | ||||||
|  | import io.swagger.v3.oas.annotations.tags.Tag; | ||||||
|  | import jakarta.annotation.Resource; | ||||||
|  | import org.springframework.validation.annotation.Validated; | ||||||
|  | import org.springframework.web.bind.annotation.*; | ||||||
|  |  | ||||||
|  | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @Tag(name = "管理后台 - AI 知识库-文档") | ||||||
|  | @RestController | ||||||
|  | @RequestMapping("/ai/knowledge/document") | ||||||
|  | public class AiKnowledgeDocumentController { | ||||||
|  |  | ||||||
|  |     @Resource | ||||||
|  |     private AiKnowledgeDocumentService documentService; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     @PostMapping("/create") | ||||||
|  |     @Operation(summary = "新建文档") | ||||||
|  |     public CommonResult<Long> createKnowledgeDocument(@Validated AiKnowledgeDocumentCreateReqVO reqVO) { | ||||||
|  |         Long knowledgeDocumentId = documentService.createKnowledgeDocument(reqVO); | ||||||
|  |         return success(knowledgeDocumentId); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     @GetMapping("/page") | ||||||
|  |     @Operation(summary = "获取文档分页") | ||||||
|  |     public CommonResult<PageResult<AiKnowledgeDocumentRespVO>> getKnowledgeDocumentPageMy(@Validated AiKnowledgeDocumentPageReqVO pageReqVO) { | ||||||
|  |         PageResult<AiKnowledgeDocumentDO> pageResult = documentService.getKnowledgeDocumentPage(pageReqVO); | ||||||
|  |         return success(BeanUtils.toBean(pageResult, AiKnowledgeDocumentRespVO.class)); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     @PutMapping("/update") | ||||||
|  |     @Operation(summary = "更新文档") | ||||||
|  |     public CommonResult<Boolean> updateKnowledgeDocument(@Validated @RequestBody AiKnowledgeDocumentUpdateReqVO reqVO) { | ||||||
|  |         documentService.updateKnowledgeDocument(reqVO); | ||||||
|  |         return success(true); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -0,0 +1,51 @@ | |||||||
|  | package cn.iocoder.yudao.module.ai.controller.admin.knowledge; | ||||||
|  |  | ||||||
|  | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||||||
|  | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
|  | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.segment.AiKnowledgeSegmentPageReqVO; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.segment.AiKnowledgeSegmentRespVO; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.segment.AiKnowledgeSegmentUpdateReqVO; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.segment.AiKnowledgeSegmentUpdateStatusReqVO; | ||||||
|  | import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeSegmentDO; | ||||||
|  | import cn.iocoder.yudao.module.ai.service.knowledge.AiKnowledgeSegmentService; | ||||||
|  | import io.swagger.v3.oas.annotations.Operation; | ||||||
|  | import io.swagger.v3.oas.annotations.tags.Tag; | ||||||
|  | import jakarta.annotation.Resource; | ||||||
|  | import org.springframework.validation.annotation.Validated; | ||||||
|  | import org.springframework.web.bind.annotation.*; | ||||||
|  |  | ||||||
|  | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @Tag(name = "管理后台 - AI 知识库-段落") | ||||||
|  | @RestController | ||||||
|  | @RequestMapping("/ai/knowledge/segment") | ||||||
|  | public class AiKnowledgeSegmentController { | ||||||
|  |  | ||||||
|  |     @Resource | ||||||
|  |     private AiKnowledgeSegmentService segmentService; | ||||||
|  |  | ||||||
|  |     @GetMapping("/page") | ||||||
|  |     @Operation(summary = "获取段落分页") | ||||||
|  |     public CommonResult<PageResult<AiKnowledgeSegmentRespVO>> getKnowledgeSegmentPageMy(@Validated AiKnowledgeSegmentPageReqVO pageReqVO) { | ||||||
|  |         PageResult<AiKnowledgeSegmentDO> pageResult = segmentService.getKnowledgeSegmentPage(pageReqVO); | ||||||
|  |         return success(BeanUtils.toBean(pageResult, AiKnowledgeSegmentRespVO.class)); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     @PutMapping("/update") | ||||||
|  |     @Operation(summary = "更新段落内容") | ||||||
|  |     public CommonResult<Boolean> updateKnowledgeSegment(@Validated @RequestBody AiKnowledgeSegmentUpdateReqVO reqVO) { | ||||||
|  |         segmentService.updateKnowledgeSegment(reqVO); | ||||||
|  |         return success(true); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @PutMapping("/update-status") | ||||||
|  |     @Operation(summary = "启禁用段落内容") | ||||||
|  |     public CommonResult<Boolean> updateKnowledgeSegmentStatus(@Validated @RequestBody AiKnowledgeSegmentUpdateStatusReqVO reqVO) { | ||||||
|  |         segmentService.updateKnowledgeSegmentStatus(reqVO); | ||||||
|  |         return success(true); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -0,0 +1,13 @@ | |||||||
|  | package cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.document; | ||||||
|  |  | ||||||
|  | import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||||||
|  | import io.swagger.v3.oas.annotations.media.Schema; | ||||||
|  | import lombok.Data; | ||||||
|  |  | ||||||
|  | @Schema(description = "管理后台 - AI 知识库-文档 分页 Request VO") | ||||||
|  | @Data | ||||||
|  | public class AiKnowledgeDocumentPageReqVO extends PageParam { | ||||||
|  |  | ||||||
|  |     @Schema(description = "文档名称", example = "Java 开发手册") | ||||||
|  |     private String name; | ||||||
|  | } | ||||||
| @@ -0,0 +1,37 @@ | |||||||
|  | package cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.document; | ||||||
|  |  | ||||||
|  | import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||||||
|  | import io.swagger.v3.oas.annotations.media.Schema; | ||||||
|  | import lombok.Data; | ||||||
|  |  | ||||||
|  | @Schema(description = "管理后台 - AI 知识库-文档 Response VO") | ||||||
|  | @Data | ||||||
|  | public class AiKnowledgeDocumentRespVO extends PageParam { | ||||||
|  |  | ||||||
|  |     @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "24790") | ||||||
|  |     private Long id; | ||||||
|  |  | ||||||
|  |     @Schema(description = "知识库编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "24790") | ||||||
|  |     private Long knowledgeId; | ||||||
|  |  | ||||||
|  |     @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "Java 开发手册") | ||||||
|  |     private String name; | ||||||
|  |  | ||||||
|  |     @Schema(description = "内容", example = "Java 是一门面向对象的语言.....") | ||||||
|  |     private String content; | ||||||
|  |  | ||||||
|  |     @Schema(description = "文档 url", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://doc.iocoder.cn") | ||||||
|  |     private String url; | ||||||
|  |  | ||||||
|  |     @Schema(description = "token 数量", example = "1024") | ||||||
|  |     private Integer tokens; | ||||||
|  |  | ||||||
|  |     @Schema(description = "字符数", example = "1008") | ||||||
|  |     private Integer wordCount; | ||||||
|  |  | ||||||
|  |     @Schema(description = "切片状态", example = "1") | ||||||
|  |     private Integer sliceStatus; | ||||||
|  |  | ||||||
|  |     @Schema(description = "文档状态", example = "1") | ||||||
|  |     private Integer status; | ||||||
|  | } | ||||||
| @@ -0,0 +1,23 @@ | |||||||
|  | package cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.document; | ||||||
|  |  | ||||||
|  | import io.swagger.v3.oas.annotations.media.Schema; | ||||||
|  | import jakarta.validation.constraints.NotNull; | ||||||
|  | import lombok.Data; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @Schema(description = "管理后台 - AI 更新 知识库-文档 Request VO") | ||||||
|  | @Data | ||||||
|  | public class AiKnowledgeDocumentUpdateReqVO { | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15583") | ||||||
|  |     @NotNull(message = "编号不能为空") | ||||||
|  |     private Long id; | ||||||
|  |  | ||||||
|  |     @Schema(description = "是否启用", example = "1") | ||||||
|  |     private Integer status; | ||||||
|  |  | ||||||
|  |     @Schema(description = "名称", example = "Java 开发手册") | ||||||
|  |     private String name; | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| package cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo; | package cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.knowledge; | ||||||
| 
 | 
 | ||||||
| import io.swagger.v3.oas.annotations.media.Schema; | import io.swagger.v3.oas.annotations.media.Schema; | ||||||
| import jakarta.validation.constraints.NotBlank; | import jakarta.validation.constraints.NotBlank; | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| package cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo; | package cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.knowledge; | ||||||
| 
 | 
 | ||||||
| import io.swagger.v3.oas.annotations.media.Schema; | import io.swagger.v3.oas.annotations.media.Schema; | ||||||
| import jakarta.validation.constraints.NotBlank; | import jakarta.validation.constraints.NotBlank; | ||||||
| @@ -6,10 +6,8 @@ import jakarta.validation.constraints.NotNull; | |||||||
| import lombok.Data; | import lombok.Data; | ||||||
| import org.hibernate.validator.constraints.URL; | import org.hibernate.validator.constraints.URL; | ||||||
| 
 | 
 | ||||||
| /** | 
 | ||||||
|  * @author xiaoxin | @Schema(description = "管理后台 - AI 知识库创建【文档】 Request VO") | ||||||
|  */ |  | ||||||
| @Schema(description = "管理后台 - AI 知识库【创建文档】 Request VO") |  | ||||||
| @Data | @Data | ||||||
| public class AiKnowledgeDocumentCreateReqVO { | public class AiKnowledgeDocumentCreateReqVO { | ||||||
| 
 | 
 | ||||||
| @@ -0,0 +1,25 @@ | |||||||
|  | package cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.knowledge; | ||||||
|  |  | ||||||
|  | import io.swagger.v3.oas.annotations.media.Schema; | ||||||
|  | import lombok.Data; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @Schema(description = "管理后台 - AI 知识库 Response VO") | ||||||
|  | @Data | ||||||
|  | public class AiKnowledgeRespVO { | ||||||
|  |  | ||||||
|  |     @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "24790") | ||||||
|  |     private Long id; | ||||||
|  |  | ||||||
|  |     @Schema(description = "知识库名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "ruoyi-vue-pro 用户指南") | ||||||
|  |     private String name; | ||||||
|  |  | ||||||
|  |     @Schema(description = "知识库描述", example = "ruoyi-vue-pro 用户指南") | ||||||
|  |     private String description; | ||||||
|  |  | ||||||
|  |     @Schema(description = "模型编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "14") | ||||||
|  |     private Long modelId; | ||||||
|  |  | ||||||
|  |     @Schema(description = "模型标识", example = "qwen-72b-chat") | ||||||
|  |     private String model; | ||||||
|  | } | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| package cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo; | package cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.knowledge; | ||||||
| 
 | 
 | ||||||
| import io.swagger.v3.oas.annotations.media.Schema; | import io.swagger.v3.oas.annotations.media.Schema; | ||||||
| import jakarta.validation.constraints.NotBlank; | import jakarta.validation.constraints.NotBlank; | ||||||
| @@ -7,7 +7,7 @@ import lombok.Data; | |||||||
| 
 | 
 | ||||||
| import java.util.List; | import java.util.List; | ||||||
| 
 | 
 | ||||||
| @Schema(description = "管理后台 - AI 知识库创建【我的】 Request VO") | @Schema(description = "管理后台 - AI 知识库更新【我的】 Request VO") | ||||||
| @Data | @Data | ||||||
| public class AiKnowledgeUpdateMyReqVO { | public class AiKnowledgeUpdateMyReqVO { | ||||||
| 
 | 
 | ||||||
| @@ -0,0 +1,21 @@ | |||||||
|  | package cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.segment; | ||||||
|  |  | ||||||
|  | import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||||||
|  | import io.swagger.v3.oas.annotations.media.Schema; | ||||||
|  | import lombok.Data; | ||||||
|  |  | ||||||
|  | @Schema(description = "管理后台 - AI 知识库分页 Request VO") | ||||||
|  | @Data | ||||||
|  | public class AiKnowledgeSegmentPageReqVO extends PageParam { | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     @Schema(description = "分段状态", example = "1") | ||||||
|  |     private Integer status; | ||||||
|  |  | ||||||
|  |     @Schema(description = "文档编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||||||
|  |     private Integer documentId; | ||||||
|  |  | ||||||
|  |     @Schema(description = "分段内容关键字", example = "Java 开发") | ||||||
|  |     private String keyword; | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -0,0 +1,33 @@ | |||||||
|  | package cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.segment; | ||||||
|  |  | ||||||
|  | import io.swagger.v3.oas.annotations.media.Schema; | ||||||
|  | import lombok.Data; | ||||||
|  |  | ||||||
|  | @Schema(description = "管理后台 - AI 知识库-文档 Response VO") | ||||||
|  | @Data | ||||||
|  | public class AiKnowledgeSegmentRespVO { | ||||||
|  |  | ||||||
|  |     @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "24790") | ||||||
|  |     private Long id; | ||||||
|  |  | ||||||
|  |     @Schema(description = "文档编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "24790") | ||||||
|  |     private Long documentId; | ||||||
|  |  | ||||||
|  |     @Schema(description = "知识库编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "24790") | ||||||
|  |     private Long knowledgeId; | ||||||
|  |  | ||||||
|  |     @Schema(description = "向量库编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1858496a-1dde-4edf-a43e-0aed08f37f8c") | ||||||
|  |     private String vectorId; | ||||||
|  |  | ||||||
|  |     @Schema(description = "切片内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "Java 开发手册") | ||||||
|  |     private String content; | ||||||
|  |  | ||||||
|  |     @Schema(description = "token 数量", example = "1024") | ||||||
|  |     private Integer tokens; | ||||||
|  |  | ||||||
|  |     @Schema(description = "字符数", example = "1008") | ||||||
|  |     private Integer wordCount; | ||||||
|  |  | ||||||
|  |     @Schema(description = "文档状态", example = "1") | ||||||
|  |     private Integer status; | ||||||
|  | } | ||||||
| @@ -0,0 +1,17 @@ | |||||||
|  | package cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.segment; | ||||||
|  |  | ||||||
|  | import io.swagger.v3.oas.annotations.media.Schema; | ||||||
|  | import lombok.Data; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @Schema(description = "管理后台 - AI 更新 知识库-段落 request VO") | ||||||
|  | @Data | ||||||
|  | public class AiKnowledgeSegmentUpdateReqVO { | ||||||
|  |  | ||||||
|  |     @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "24790") | ||||||
|  |     private Long id; | ||||||
|  |  | ||||||
|  |     @Schema(description = "切片内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "Java 开发手册") | ||||||
|  |     private String content; | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -0,0 +1,17 @@ | |||||||
|  | package cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.segment; | ||||||
|  |  | ||||||
|  | import io.swagger.v3.oas.annotations.media.Schema; | ||||||
|  | import lombok.Data; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @Schema(description = "管理后台 - AI 更新 知识库-段落 request VO") | ||||||
|  | @Data | ||||||
|  | public class AiKnowledgeSegmentUpdateStatusReqVO { | ||||||
|  |  | ||||||
|  |     @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "24790") | ||||||
|  |     private Long id; | ||||||
|  |  | ||||||
|  |     @Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||||||
|  |     private Integer status; | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -1,6 +1,9 @@ | |||||||
| package cn.iocoder.yudao.module.ai.dal.mysql.knowledge; | package cn.iocoder.yudao.module.ai.dal.mysql.knowledge; | ||||||
|  |  | ||||||
|  | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
| import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | ||||||
|  | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.document.AiKnowledgeDocumentPageReqVO; | ||||||
| import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeDocumentDO; | import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeDocumentDO; | ||||||
| import org.apache.ibatis.annotations.Mapper; | import org.apache.ibatis.annotations.Mapper; | ||||||
|  |  | ||||||
| @@ -11,4 +14,11 @@ import org.apache.ibatis.annotations.Mapper; | |||||||
|  */ |  */ | ||||||
| @Mapper | @Mapper | ||||||
| public interface AiKnowledgeDocumentMapper extends BaseMapperX<AiKnowledgeDocumentDO> { | public interface AiKnowledgeDocumentMapper extends BaseMapperX<AiKnowledgeDocumentDO> { | ||||||
|  |  | ||||||
|  |     default PageResult<AiKnowledgeDocumentDO> selectPage(AiKnowledgeDocumentPageReqVO reqVO) { | ||||||
|  |         return selectPage(reqVO, new LambdaQueryWrapperX<AiKnowledgeDocumentDO>() | ||||||
|  |                 .likeIfPresent(AiKnowledgeDocumentDO::getName, reqVO.getName()) | ||||||
|  |                 .orderByDesc(AiKnowledgeDocumentDO::getId)); | ||||||
|  |     } | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,6 +1,10 @@ | |||||||
| package cn.iocoder.yudao.module.ai.dal.mysql.knowledge; | package cn.iocoder.yudao.module.ai.dal.mysql.knowledge; | ||||||
|  |  | ||||||
|  | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||||||
|  | import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||||||
|  | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
| import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | ||||||
|  | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | ||||||
| import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeDO; | import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeDO; | ||||||
| import org.apache.ibatis.annotations.Mapper; | import org.apache.ibatis.annotations.Mapper; | ||||||
|  |  | ||||||
| @@ -11,4 +15,11 @@ import org.apache.ibatis.annotations.Mapper; | |||||||
|  */ |  */ | ||||||
| @Mapper | @Mapper | ||||||
| public interface AiKnowledgeMapper extends BaseMapperX<AiKnowledgeDO> { | public interface AiKnowledgeMapper extends BaseMapperX<AiKnowledgeDO> { | ||||||
|  |  | ||||||
|  |     default PageResult<AiKnowledgeDO> selectPageByMy(Long userId, PageParam pageReqVO) { | ||||||
|  |         return selectPage(pageReqVO, new LambdaQueryWrapperX<AiKnowledgeDO>() | ||||||
|  |                 .eq(AiKnowledgeDO::getUserId, userId) | ||||||
|  |                 .eq(AiKnowledgeDO::getStatus, CommonStatusEnum.ENABLE.getStatus()) | ||||||
|  |                 .orderByDesc(AiKnowledgeDO::getId)); | ||||||
|  |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,6 +1,9 @@ | |||||||
| package cn.iocoder.yudao.module.ai.dal.mysql.knowledge; | package cn.iocoder.yudao.module.ai.dal.mysql.knowledge; | ||||||
|  |  | ||||||
|  | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
| import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | ||||||
|  | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.segment.AiKnowledgeSegmentPageReqVO; | ||||||
| import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeSegmentDO; | import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeSegmentDO; | ||||||
| import org.apache.ibatis.annotations.Mapper; | import org.apache.ibatis.annotations.Mapper; | ||||||
|  |  | ||||||
| @@ -11,4 +14,12 @@ import org.apache.ibatis.annotations.Mapper; | |||||||
|  */ |  */ | ||||||
| @Mapper | @Mapper | ||||||
| public interface AiKnowledgeSegmentMapper extends BaseMapperX<AiKnowledgeSegmentDO> { | public interface AiKnowledgeSegmentMapper extends BaseMapperX<AiKnowledgeSegmentDO> { | ||||||
|  |  | ||||||
|  |     default PageResult<AiKnowledgeSegmentDO> selectPage(AiKnowledgeSegmentPageReqVO reqVO) { | ||||||
|  |         return selectPage(reqVO, new LambdaQueryWrapperX<AiKnowledgeSegmentDO>() | ||||||
|  |                 .eq(AiKnowledgeSegmentDO::getDocumentId, reqVO.getDocumentId()) | ||||||
|  |                 .eqIfPresent(AiKnowledgeSegmentDO::getStatus, reqVO.getStatus()) | ||||||
|  |                 .likeIfPresent(AiKnowledgeSegmentDO::getContent, reqVO.getKeyword()) | ||||||
|  |                 .orderByDesc(AiKnowledgeSegmentDO::getId)); | ||||||
|  |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,6 +1,10 @@ | |||||||
| package cn.iocoder.yudao.module.ai.service.knowledge; | package cn.iocoder.yudao.module.ai.service.knowledge; | ||||||
|  |  | ||||||
| import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.AiKnowledgeDocumentCreateReqVO; | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.document.AiKnowledgeDocumentPageReqVO; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.document.AiKnowledgeDocumentUpdateReqVO; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.knowledge.AiKnowledgeDocumentCreateReqVO; | ||||||
|  | import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeDocumentDO; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * AI 知识库-文档 Service 接口 |  * AI 知识库-文档 Service 接口 | ||||||
| @@ -17,4 +21,19 @@ public interface AiKnowledgeDocumentService { | |||||||
|      */ |      */ | ||||||
|     Long createKnowledgeDocument(AiKnowledgeDocumentCreateReqVO createReqVO); |     Long createKnowledgeDocument(AiKnowledgeDocumentCreateReqVO createReqVO); | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 获取文档分页 | ||||||
|  |      * | ||||||
|  |      * @param pageReqVO 分页参数 | ||||||
|  |      * @return 文档分页 | ||||||
|  |      */ | ||||||
|  |     PageResult<AiKnowledgeDocumentDO> getKnowledgeDocumentPage(AiKnowledgeDocumentPageReqVO pageReqVO); | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 更新文档 | ||||||
|  |      * | ||||||
|  |      * @param reqVO 更新信息 | ||||||
|  |      */ | ||||||
|  |     void updateKnowledgeDocument(AiKnowledgeDocumentUpdateReqVO reqVO); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -3,9 +3,12 @@ package cn.iocoder.yudao.module.ai.service.knowledge; | |||||||
| import cn.hutool.core.collection.CollUtil; | import cn.hutool.core.collection.CollUtil; | ||||||
| import cn.hutool.http.HttpUtil; | import cn.hutool.http.HttpUtil; | ||||||
| import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||||||
|  | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
| import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; | import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; | ||||||
| import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||||||
| import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.AiKnowledgeDocumentCreateReqVO; | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.document.AiKnowledgeDocumentPageReqVO; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.document.AiKnowledgeDocumentUpdateReqVO; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.knowledge.AiKnowledgeDocumentCreateReqVO; | ||||||
| import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeDO; | import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeDO; | ||||||
| import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeDocumentDO; | import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeDocumentDO; | ||||||
| import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeSegmentDO; | import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeSegmentDO; | ||||||
| @@ -29,6 +32,9 @@ import org.springframework.transaction.annotation.Transactional; | |||||||
| import java.util.List; | import java.util.List; | ||||||
| import java.util.Map; | import java.util.Map; | ||||||
|  |  | ||||||
|  | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | ||||||
|  | import static cn.iocoder.yudao.module.ai.enums.ErrorCodeConstants.KNOWLEDGE_DOCUMENT_NOT_EXISTS; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * AI 知识库-文档 Service 实现类 |  * AI 知识库-文档 Service 实现类 | ||||||
|  * |  * | ||||||
| @@ -104,6 +110,32 @@ public class AiKnowledgeDocumentServiceImpl implements AiKnowledgeDocumentServic | |||||||
|         return documentId; |         return documentId; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public PageResult<AiKnowledgeDocumentDO> getKnowledgeDocumentPage(AiKnowledgeDocumentPageReqVO pageReqVO) { | ||||||
|  |         return documentMapper.selectPage(pageReqVO); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void updateKnowledgeDocument(AiKnowledgeDocumentUpdateReqVO reqVO) { | ||||||
|  |         validateKnowledgeDocumentExists(reqVO.getId()); | ||||||
|  |         AiKnowledgeDocumentDO document = BeanUtils.toBean(reqVO, AiKnowledgeDocumentDO.class); | ||||||
|  |         documentMapper.updateById(document); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 校验文档是否存在 | ||||||
|  |      * | ||||||
|  |      * @param id 文档编号 | ||||||
|  |      * @return 文档信息 | ||||||
|  |      */ | ||||||
|  |     private AiKnowledgeDocumentDO validateKnowledgeDocumentExists(Long id) { | ||||||
|  |         AiKnowledgeDocumentDO knowledgeDocument = documentMapper.selectById(id); | ||||||
|  |         if (knowledgeDocument == null) { | ||||||
|  |             throw exception(KNOWLEDGE_DOCUMENT_NOT_EXISTS); | ||||||
|  |         } | ||||||
|  |         return knowledgeDocument; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     private org.springframework.core.io.Resource downloadFile(String url) { |     private org.springframework.core.io.Resource downloadFile(String url) { | ||||||
|         try { |         try { | ||||||
|             byte[] bytes = HttpUtil.downloadBytes(url); |             byte[] bytes = HttpUtil.downloadBytes(url); | ||||||
|   | |||||||
| @@ -1,5 +1,11 @@ | |||||||
| package cn.iocoder.yudao.module.ai.service.knowledge; | package cn.iocoder.yudao.module.ai.service.knowledge; | ||||||
|  |  | ||||||
|  | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.segment.AiKnowledgeSegmentPageReqVO; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.segment.AiKnowledgeSegmentUpdateReqVO; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.segment.AiKnowledgeSegmentUpdateStatusReqVO; | ||||||
|  | import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeSegmentDO; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * AI 知识库分片 Service 接口 |  * AI 知识库分片 Service 接口 | ||||||
|  * |  * | ||||||
| @@ -7,4 +13,25 @@ package cn.iocoder.yudao.module.ai.service.knowledge; | |||||||
|  */ |  */ | ||||||
| public interface AiKnowledgeSegmentService { | public interface AiKnowledgeSegmentService { | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 获取段落分页 | ||||||
|  |      * | ||||||
|  |      * @param pageReqVO 分页查询 | ||||||
|  |      * @return 文档分页 | ||||||
|  |      */ | ||||||
|  |     PageResult<AiKnowledgeSegmentDO> getKnowledgeSegmentPage(AiKnowledgeSegmentPageReqVO pageReqVO); | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 更新段落内容 | ||||||
|  |      * | ||||||
|  |      * @param reqVO 更新内容 | ||||||
|  |      */ | ||||||
|  |     void updateKnowledgeSegment(AiKnowledgeSegmentUpdateReqVO reqVO); | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 更新状态 | ||||||
|  |      * | ||||||
|  |      * @param reqVO 更新内容 | ||||||
|  |      */ | ||||||
|  |     void updateKnowledgeSegmentStatus(AiKnowledgeSegmentUpdateStatusReqVO reqVO); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,5 +1,13 @@ | |||||||
| package cn.iocoder.yudao.module.ai.service.knowledge; | package cn.iocoder.yudao.module.ai.service.knowledge; | ||||||
|  |  | ||||||
|  | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
|  | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.segment.AiKnowledgeSegmentPageReqVO; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.segment.AiKnowledgeSegmentUpdateReqVO; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.segment.AiKnowledgeSegmentUpdateStatusReqVO; | ||||||
|  | import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeSegmentDO; | ||||||
|  | import cn.iocoder.yudao.module.ai.dal.mysql.knowledge.AiKnowledgeSegmentMapper; | ||||||
|  | import jakarta.annotation.Resource; | ||||||
| import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||||
|  |  | ||||||
| @@ -12,4 +20,23 @@ import org.springframework.stereotype.Service; | |||||||
| @Slf4j | @Slf4j | ||||||
| public class AiKnowledgeSegmentServiceImpl implements AiKnowledgeSegmentService { | public class AiKnowledgeSegmentServiceImpl implements AiKnowledgeSegmentService { | ||||||
|  |  | ||||||
|  |     @Resource | ||||||
|  |     private AiKnowledgeSegmentMapper segmentMapper; | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public PageResult<AiKnowledgeSegmentDO> getKnowledgeSegmentPage(AiKnowledgeSegmentPageReqVO pageReqVO) { | ||||||
|  |         return segmentMapper.selectPage(pageReqVO); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void updateKnowledgeSegment(AiKnowledgeSegmentUpdateReqVO reqVO) { | ||||||
|  |         segmentMapper.updateById(BeanUtils.toBean(reqVO, AiKnowledgeSegmentDO.class)); | ||||||
|  |         // TODO @xin 重新向量化 | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void updateKnowledgeSegmentStatus(AiKnowledgeSegmentUpdateStatusReqVO reqVO) { | ||||||
|  |         segmentMapper.updateById(BeanUtils.toBean(reqVO, AiKnowledgeSegmentDO.class)); | ||||||
|  |         // TODO @xin 1.禁用删除向量 2.启用重新向量化 | ||||||
|  |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,7 +1,9 @@ | |||||||
| package cn.iocoder.yudao.module.ai.service.knowledge; | package cn.iocoder.yudao.module.ai.service.knowledge; | ||||||
|  |  | ||||||
| import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.AiKnowledgeCreateMyReqVO; | import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||||||
| import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.AiKnowledgeUpdateMyReqVO; | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.knowledge.AiKnowledgeCreateMyReqVO; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.knowledge.AiKnowledgeUpdateMyReqVO; | ||||||
| import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeDO; | import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeDO; | ||||||
|  |  | ||||||
| /** | /** | ||||||
| @@ -37,4 +39,12 @@ public interface AiKnowledgeService { | |||||||
|      */ |      */ | ||||||
|     AiKnowledgeDO validateKnowledgeExists(Long id); |     AiKnowledgeDO validateKnowledgeExists(Long id); | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 获得【我的】知识库分页 | ||||||
|  |      * | ||||||
|  |      * @param userId 用户编号 | ||||||
|  |      * @param pageReqVO   分页查询 | ||||||
|  |      * @return 知识库分页 | ||||||
|  |      */ | ||||||
|  |     PageResult<AiKnowledgeDO> getKnowledgePageMy(Long userId, PageParam pageReqVO); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -2,9 +2,11 @@ package cn.iocoder.yudao.module.ai.service.knowledge; | |||||||
|  |  | ||||||
| import cn.hutool.core.util.ObjUtil; | import cn.hutool.core.util.ObjUtil; | ||||||
| import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||||||
|  | import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||||||
|  | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
| import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||||||
| import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.AiKnowledgeCreateMyReqVO; | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.knowledge.AiKnowledgeCreateMyReqVO; | ||||||
| import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.AiKnowledgeUpdateMyReqVO; | import cn.iocoder.yudao.module.ai.controller.admin.knowledge.vo.knowledge.AiKnowledgeUpdateMyReqVO; | ||||||
| import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeDO; | import cn.iocoder.yudao.module.ai.dal.dataobject.knowledge.AiKnowledgeDO; | ||||||
| import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatModelDO; | import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatModelDO; | ||||||
| import cn.iocoder.yudao.module.ai.dal.mysql.knowledge.AiKnowledgeMapper; | import cn.iocoder.yudao.module.ai.dal.mysql.knowledge.AiKnowledgeMapper; | ||||||
| @@ -68,4 +70,9 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService { | |||||||
|         return knowledgeBase; |         return knowledgeBase; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public PageResult<AiKnowledgeDO> getKnowledgePageMy(Long userId, PageParam pageReqVO) { | ||||||
|  |         return knowledgeMapper.selectPageByMy(userId, pageReqVO); | ||||||
|  |     } | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 xiaoxin
					xiaoxin