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

向量库下拉框列表数据查询,这个项目需要使用向量数据库(后面章节会讲解),市面上有多种不同的向量数据库,我们为用户提供了可以自由选择向量数据库的操作。VectorDbController编写查询向量数据库的方法。
@GetMapping("/db")
public Result queryVectorDb() {
List<VectorDbVo> list = vectorDbService.queryVectorDbVo();
return Result.OK(list);
} VectorDbServiceImpl 查询数据库中的向量库相关信息
@Override
public List<VectorDbVo> queryVectorDbVo() {
List<VectorDb> vectorDbs = this.list();
return vectorDbMapstruct.entityToVo(vectorDbs);
} 查询下拉列表向量模型embedding,这里需要通过向量模型将数据转成向量,用户同样可以自己选择向量模型。在ChatModelController中编写根据条件查询向量模型的方法
/**
* 根据dto查询模型
*/
@GetMapping("/models")
public Result queryModelByDTO(ChatModelDTO chatModelDTO) {
List<ChatModelVo> list = chatModelService.selectModelByDTO(chatModelDTO);
return Result.OK(list);
} ChatModelServiceImpl
@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编写将表单传入的数据保存到知识库表的方法
@PostMapping("base")
public Result addBase(@RequestBody KnowledgeBaseDTO knowledgeBaseDTO) {
boolean flag = knowledgeBaseService.insertByDTO(knowledgeBaseDTO);
return flag ? Result.OK() : Result.FAIL();
} KnowledgeBaseServiceImpl
@Override
public boolean insertByDTO(KnowledgeBaseDTO knowledgeBaseDTO) {
KnowledgeBase knowledgeBase = knowledgeBaseMapstruct.dtoToEntity(knowledgeBaseDTO);
return save(knowledgeBase);
} KnowledgeBaseController,查询方法
@GetMapping("base")
public Result queryBase() {
List<KnowledgeBaseVo> list = knowledgeBaseService.selectBaseVo();
return Result.OK(list);
} KnowledgeBaseServiceImpl,查询方法
@Override
public List<KnowledgeBaseVo> selectBaseVo() {
List<KnowledgeBase> list = list();
return knowledgeBaseMapstruct.entityToVo(list);
} 详细了解该项目,请观看项目视频介绍:企业知识库AI项目介绍