GithubHelp home page GithubHelp logo

mahonelau / -kykms Goto Github PK

View Code? Open in Web Editor NEW
623.0 47.0 102.0 37.54 MB

科亿知识库 KY KMS 是一款基于Elasticsearch的文档型知识库管理系统,提供强大的全文检索与文档分类管理功能

License: GNU General Public License v3.0

Shell 0.06% Dockerfile 0.01% JavaScript 28.25% CSS 1.15% HTML 0.41% Vue 25.62% Less 0.37% Java 43.83% FreeMarker 0.29%

-kykms's Introduction

KYKMS

科亿知识库 KYKMS

当前最新版本: V1.0.1(发布日期:20230615)

项目简介:

  • 如果您在寻找一款知识库系统,用来将文档整理归类,并在团队内受控共享以充分利用这些文档,或者将文档分享到外部,那么科亿知识库将是您的不二之选。AI能力加持,科亿知识库将成为您的第二大脑。
  • 科亿知识库,可以应用在需要对文件进行管理、分类、归集、检索、分享交流的地方,以及需要对大数据进行管理和检索的场景,尤其适合知识密集型单位和历史文档丰富的单位。
  • 版本说明:开源版适合个人学习和自用,提供基础功能,无套路,可以完整运行;商用版本则提供更强大的功能,并提供技术服务,如需要请联系商务;单机版为绿色软件,下载开箱即用,功能对标专业版。
  • 我们的发展策略:开源版让产品更快触达客户,方便更多的人;以高阶版本和技术服务获取收入,来维持开源版本。
  • 科亿知识库,助你快速完成文件到知识的升级。我们的宗旨是: 文件简单整理,知识创造价值

为什么选择科亿知识库?

  • 两年多的产品运营历史,历经数百客户验证,背后是专业的技术团队支撑,让您使用无后顾之忧后。
  • AI能力加持,集成大语言模型,结合本地知识库,打造最懂您的知识智能管家,在轻松的问答间获得最精准、扼要的关键信息。
  • 自身集成本地化大语言模型,亦支持扩展对接第三方主流的大模型,如chat-GPT、通义千问、智普、文心一言、llama等。
  • 图像内容自动转文本,让各种扫描件轻松实现知识提取,并支持全文检索。
  • 灵活强大的知识访问权限管理模型,您能想到的都有。同时支持灵活分享、交流模式:站内、站外分享,评价与评论体系。
  • 基于强大的 Elasticsearch 检索引擎技术构建,检索能力强大,支持最全面的检索特性,可以无限可能的集群扩展,支持高达百亿级别的数量。
  • 全方位内容检索,包括文件内容、标题、关键字、知识摘要,并支持结果中二次检索、高级组合检索,支持精准匹配,关键词高亮显示。
  • 全文检索与在线预览有着齐全的文件格式支持,支持全文检索的文件格式:office系列、文本、pdf、脑图,支持在线预览的文件格式包括:office系列、pdf、ofd、文本、脑图、图片、音频、视频等。
  • 适配手机端 H5,支持集成到钉钉、企业微信,支持单点登录与对接第三方系统推送知识。
  • 所有能力、服务均为在本地化部署,无须联网,无须依赖外网的服务,满足企业信息安全要求。
  • 性能优秀,最低配置:2核4G即可运行,典型配置:4核8G。

交流互动

微信

版权声明

本着开源精神,科亿遵循 GPL-3.0 开源协议发布,提供源码用于学习、自用与技术交流,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售 ! 如果需要将本产品在本地进行任何附带商业化性质行为使用, 请联系项目负责人进行商业授权 ,以遵守 GPL 协议保证您的正常使用。 科亿开源团队拥有对本开源协议的最终解释权。

KMS功能思维导图

KY KMS

KMS技术架构图

KY KMS

技术架构:

技术亮点

  • 主流技术,生态完善,易于维护
  • 前后端分离,接口文档清晰,易于二次开发
  • 后端采用ES搜索引擎,可以按需实行分部署部署

开发环境

  • 语言:Java 8
  • IDE(JAVA): IDEA / Eclipse安装lombok插件
  • IDE(前端): WebStorm 或者 IDEA
  • 依赖管理:Maven
  • 数据库:MySQL5.7+ & Oracle 11g & Sqlserver2017
  • 缓存:Redis
  • Node Js: 10.0 +
  • Npm: 5.6.0+
  • Yarn: 1.21.1+

后端

  • 基础框架:Spring Boot 2.3.5.RELEASE
  • 持久层框架:Mybatis-plus 3.4.1
  • 检索引擎:ElasticSearch 7.6.1
  • 文档处理与转换: Libre Office 7.1.4
  • 文本提取:Tika 1.17
  • 安全框架:Apache Shiro 1.7.0,Jwt 3.11.0
  • 数据库连接池:阿里巴巴Druid 1.1.22
  • 缓存框架:redis
  • 日志打印:logback
  • 其他:fastjson,poi,Swagger-ui,quartz, lombok(简化代码)等。

前端

功能模块

├─检索首页
│  ├─普通检索
│  ├─高级检索
│  ├─精准检索
│  ├─结果中二次检索
│  ├─文件预览
│  ├─知识版本控制
│  ├─知识详情(包含知识分享、推送、评价、评论)
│  ├─目录分类浏览
│  ├─个人工作区
├─个人中心
│  ├─我的知识
│  ├─我的收藏
│  ├─我的分享
│  ├─我的消息
│  ├─修改密码
├─知识管理
│  ├─知识创建
│  ├─知识编辑
│  ├─待审核文件
│  ├─已审核文件 
│  ├─文件统计 
├─知识库配置
│  ├─系统参数
│  ├─分类标签定义
│  ├─目录分类定义
│  ├─文件脱敏规则
│  ├─轮播图管理
├─知识权限挂你
│  ├─知识授权
│  ├─知识分类授权
│  ├─专题授权
│  ├─部门授权
├─系统管理
│  ├─用户管理
│  ├─角色管理
│  ├─菜单管理
│  ├─权限设置(支持按钮权限、数据权限)
│  ├─表单权限(控制字段禁用、隐藏)
│  ├─部门管理 
├─日志
│  ├─文档操作记录
│  ├─系统日志 
└─其他模块
   └─更多功能开发中。。
   

系统效果(旗舰版)

公共检索

检索首页 检索首页 检索结果 检索结果 高级检索 高级检索 知识专题 知识专题 知识详情 知识详情 知识分享 知识分享

管理后台

数据统计 数据统计 知识管理 知识管理 授权管理 授权管理 编辑与创建 编辑与创建

附属文档

特别鸣谢

本项目采用Jeecg-boot开发框架,Jeecg-boot,一款优秀的后台管理快速开发框架,让你更专注于业务开发的实现。

捐赠

如果觉得还不错,请作者喝杯咖啡鼓励一下吧,敲代码不容易 ☺

-kykms's People

Contributors

mahonelau avatar mahoneliu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

-kykms's Issues

编辑文件,右侧预览无法显示并报错

部署环境:

操作系统: centos7
部署方式: docker-compose
版本: 开源版

现象:

管理员用户登录“管理后台”--“文件管理”--“知识文件管理”,点击某个文件的编辑按钮,右侧预览窗口无法预览,并报错“很抱歉,资源未找到”

  • 而且,在点击时,在服务器端跟踪日志并未打印出错误

1675648885110

在首页直接预览文档是可以预览的,是不是接口不对哇。。

为什么会搜索出来和搜索条件不相关的文件

image
image

问题:1、为什么会搜索出来和搜索条件不相关的文件(标题和内容都不存在搜索值)
2、搜索出来的部分文件列表不存在(报错),在文件后台管理中也找不到对应的文件

报错nested exception is java.lang.IllegalArgumentException: Username may not be null

在官方网站下载打包好的程序,windows环境部署后运行主服务,出现以下报错:
ERROR org.springframework.boot.SpringApplication:837 - Application run failed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'esTemplateInit': Unsatisfied dependency expressed through field 'iKmEsMgntService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'kmEsMgntServiceImpl': Unsatisfied dependency expressed through field 'restHighLevelClient'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'restHighLevelClient' defined in class path resource [org/jeecg/modules/KM/common/config/ElasticsearchConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.elasticsearch.client.RestHighLevelClient]: Factory method 'restHighLevelClient' threw exception; nested exception is java.lang.IllegalArgumentException: Username may not be null
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:643)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:130)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:405)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226)
at org.jeecg.JeecgSystemApplication.main(JeecgSystemApplication.java:33)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:107)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
at org.springframework.boot.loader.PropertiesLauncher.main(PropertiesLauncher.java:467)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'kmEsMgntServiceImpl': Unsatisfied dependency expressed through field 'restHighLevelClient'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'restHighLevelClient' defined in class path resource [org/jeecg/modules/KM/common/config/ElasticsearchConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.elasticsearch.client.RestHighLevelClient]: Factory method 'restHighLevelClient' threw exception; nested exception is java.lang.IllegalArgumentException: Username may not be null
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:643)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:130)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1307)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1227)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640)
... 28 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'restHighLevelClient' defined in class path resource [org/jeecg/modules/KM/common/config/ElasticsearchConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.elasticsearch.client.RestHighLevelClient]: Factory method 'restHighLevelClient' threw exception; nested exception is java.lang.IllegalArgumentException: Username may not be null
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:655)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:483)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1336)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1176)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:556)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1307)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1227)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640)
... 41 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.elasticsearch.client.RestHighLevelClient]: Factory method 'restHighLevelClient' threw exception; nested exception is java.lang.IllegalArgumentException: Username may not be null
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:650)
... 54 common frames omitted
Caused by: java.lang.IllegalArgumentException: Username may not be null
at org.apache.http.util.Args.notNull(Args.java:54)
at org.apache.http.auth.UsernamePasswordCredentials.(UsernamePasswordCredentials.java:81)
at org.jeecg.modules.KM.common.config.ElasticsearchConfig.restHighLevelClient(ElasticsearchConfig.java:67)
at org.jeecg.modules.KM.common.config.ElasticsearchConfig$$EnhancerBySpringCGLIB$$5f0ebcc8.CGLIB$restHighLevelClient$2()
at org.jeecg.modules.KM.common.config.ElasticsearchConfig$$EnhancerBySpringCGLIB$$5f0ebcc8$$FastClassBySpringCGLIB$$4431b4da.invoke()
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331)
at org.jeecg.modules.KM.common.config.ElasticsearchConfig$$EnhancerBySpringCGLIB$$5f0ebcc8.restHighLevelClient()
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
... 55 common frames omitted

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.