Featured image of post WeKnora 基于大模型的新一代文档理解与检索框架

WeKnora 基于大模型的新一代文档理解与检索框架

WeKnora 是一款基于大语言模型的文档理解与语义检索框架,专为结构复杂、内容异构的文档场景而打造

WeKnora 基于大模型的新一代文档理解与检索框架

WeKnora ​是由腾讯开源的企业级文档智能理解框架,基于大语言模型(LLM)构建,专注于 异构文档的深度解析 与 上下文感知的语义检索。 其核心价值在于通过多模态融合与知识图谱增强技术,实现复杂文档的精准理解,提供类人级的问答体验。 项目采用 RAG(Retrieval-Augmented Generation)架构,已在微信对话开放平台实现日均亿级调用。

安装

主要介绍 docker 方式进行安装

克隆仓库

1
2
3
https://github.com/Tencent/WeKnora.git

cd WeKnora

配置

1
2
# Copy example env file
cp .env.example .env

主要需要注意一下里面的一些端口会不会跟目前服务器的在用端口冲突

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 主数据库配置
# 数据库端口,默认为5432
DB_PORT=5432

# 应用服务端口,默认为8080
APP_PORT=8080

# 前端服务端口,默认为80
FRONTEND_PORT=80

# 文档解析模块端口,默认为50051
DOCREADER_PORT=50051

# 数据库用户名
DB_USER=postgres

# 数据库密码
DB_PASSWORD=postgres123!@#

# 数据库名称
DB_NAME=WeKnora

# 如果使用 redis 作为流处理后端,需要配置以下参数
# Redis端口,默认为6379
REDIS_PORT=6379

## 其他的配置...

还有这边默认是使用 Ollama 服务的,如果有需要的话,可以配置一下。但是也可以不配置,所以 OpenAI 兼容接口也是可以的

1
2
# Ollama 服务的基准 URL,用于连接本地/其他服务器上运行的 Ollama 服务
OLLAMA_BASE_URL=http://host.docker.internal:11434

启动

使用 docker compose 方式启动,需要稍等片刻等拉取镜像,国内可以先配置国内镜像源加速

1
docker compose up -d

使用

如果没改 FRONTEND_PORT 配置的话,就在浏览器打开服务器 IP 即可访问了,如下图所示。因为我这边没配置 Ollama 服务,所以这边就提示默认的链接失败了。

weknora_01.png

但是这里可以配置一些 OpenAI 接口兼容的提供商的 API 也是可以的,例如使用 硅基流动 平台的。但是出于数据安全考虑,还是建议使用私有部署的模型服务。

模型配置

以下方便演示我就选择使用 硅基流动,在 嵌入模型 方面,它提供了一些免费的模型,例如 BAAI/bge-m3

weknora_02.png

为了提高检索效果,我还配置了 重排模型,使用的是 BAAI/bge-reranker-v2-m3 ,目前在平台也是免费使用的

weknora_03.png

配置好后,就可以点击底下的完成按钮

知识库

完成上面的配置后,就提示可以上传自己的知识库文档了

weknora_10.png

接下来尝试上传一份 markdown 格式的文档,内容为 JVM 学习指南 介绍的文章

weknora_11.png

上传成功过后,我们就可以根据这个知识库进行聊天对话,例如问一下这里的案例2讲的什么内容

weknora_12.png

能准确定位到文档的相关部分,而且还能很完整的将内容回复出来,包括 markdown 格式

weknora_13.png

接下来试试 pdf 文档,内容为 Redis持久化策略 介绍的文档,里面会有一些配图

weknora_20.png

我们就直接问一下 RDB 原理,对应文档中的内容如下

weknora_21.png

可能文中的图原本是用 svg 代码写的,所以回复的内容也没有很好的进行渲染

weknora_22.png

API 调用

官方还提供 API 调用的文档介绍,即这套框架支持使用 RESTful API 来进行管理,而且还支持 租户管理 功能

weknora_30.png

但是我们先需要调用接口创建一个新的租户,然后就会返回对应的 api_key

weknora_31.png

往后的所有调用的接口,都需要带上这个 api_key

weknora_32.png

而且基于多租户的,像知识库、模型等那些都需要调用接口重新设置一次,还挺麻烦的。基于目前这个框架才刚起步,后台也做得很简陋,后续应该会添加更多人性化的功能。

Licensed under CC BY-NC-SA 4.0
本博客所有内容无特殊标注均为大卷学长原创内容,复制请保留原文出处。
Built with Hugo
Theme Stack designed by Jimmy