企业知识库AI项目,适合写到简历中的AI项目连载(七)
动力节点
2026年03月21日 20:25
收录于文集
共25篇
Java项目学习

8. 知识库

企业中由于数据安全管控、部门权责划分、商业机密保护等需求,不同部门或核心职位产生的内部文件、业务资料往往不允许随意跨部门转发。这里采用知识库对文件进行隔离,对这些敏感文件进行有效管控,既保障了数据的安全性和保密性,又能让各部门、各职位人员合规查询专属知识库资源。

8.1. 添加知识库

向量库下拉框列表数据查询,这个项目需要使用向量数据库(后面章节会讲解),市面上有多种不同的向量数据库,我们为用户提供了可以自由选择向量数据库的操作。VectorDbController编写查询向量数据库的方法。

代码块
Java
自动换行
复制代码
@GetMapping("/db")
public Result queryVectorDb() {
    List<VectorDbVo> list =  vectorDbService.queryVectorDbVo();
    return Result.OK(list);
}
复制成功

VectorDbServiceImpl 查询数据库中的向量库相关信息

代码块
Java
自动换行
复制代码
@Override
public List<VectorDbVo> queryVectorDbVo() {
    List<VectorDb> vectorDbs = this.list();
    return vectorDbMapstruct.entityToVo(vectorDbs);
}
复制成功

查询下拉列表向量模型embedding,这里需要通过向量模型将数据转成向量,用户同样可以自己选择向量模型。在ChatModelController中编写根据条件查询向量模型的方法

代码块
Java
自动换行
复制代码
/**
 * 根据dto查询模型
 */
@GetMapping("/models")
public Result queryModelByDTO(ChatModelDTO chatModelDTO) {
    List<ChatModelVo> list = chatModelService.selectModelByDTO(chatModelDTO);
    return Result.OK(list);
}
复制成功

ChatModelServiceImpl

代码块
Java
自动换行
复制代码
@Override
public List<ChatModelVo> selectModelByDTO(ChatModelDTO chatModelDTO) {
    LambdaQueryWrapper<ChatModel> queryWrapper = new LambdaQueryWrapper<>();
    //判断chatModelDTO中的字段是否为空,若不为空,则添加到queryWrapper中
    if (StringUtils.hasText(chatModelDTO.getType()))
        queryWrapper.eq(ChatModel::getType, chatModelDTO.getType());

    List<ChatModel> chatModels = chatModelMapper.selectList(queryWrapper);
    return chatModelMapstruct.entityToVo(chatModels);

}
复制成功

KnowledgeBaseController编写将表单传入的数据保存到知识库表的方法

代码块
Java
自动换行
复制代码
@PostMapping("base")
public Result addBase(@RequestBody KnowledgeBaseDTO knowledgeBaseDTO) {
    boolean flag = knowledgeBaseService.insertByDTO(knowledgeBaseDTO);
    return flag ? Result.OK() : Result.FAIL();
}
复制成功

KnowledgeBaseServiceImpl

代码块
Java
自动换行
复制代码
@Override
public boolean insertByDTO(KnowledgeBaseDTO knowledgeBaseDTO) {
    KnowledgeBase knowledgeBase = knowledgeBaseMapstruct.dtoToEntity(knowledgeBaseDTO);
    return save(knowledgeBase);
}
复制成功

8.2. 查询知识库

KnowledgeBaseController,查询方法

代码块
Java
自动换行
复制代码
@GetMapping("base")
public Result queryBase() {
    List<KnowledgeBaseVo> list = knowledgeBaseService.selectBaseVo();
    return Result.OK(list);
}
复制成功

KnowledgeBaseServiceImpl,查询方法

代码块
Java
自动换行
复制代码
@Override
public List<KnowledgeBaseVo> selectBaseVo() {
    List<KnowledgeBase> list = list();
    return knowledgeBaseMapstruct.entityToVo(list);
}
复制成功

详细了解该项目,请观看项目视频介绍:企业知识库AI项目介绍​​​​​​​