返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

让Dify知识库“看懂”图片!一款MinerU 工作流解决方案

[复制链接]
链载Ai 显示全部楼层 发表于 4 小时前 |阅读模式 打印 上一主题 下一主题

您是否正在遭遇以下困扰?有一个重要资料是纯图片格式,有一个文档是扫描版的PDF,想上传到dify的知识库做解析,可Dify根本读取不到。为了解决这个问题,我们可以使用MinerU来完美解决,让你的Dify知识库拥有解析图片的能力。本文将详细介绍一个工作流,使你的Dify知识库也拥有OCR的能力。

(本文Dify版本为1.3.1)

前期准备

部署MinerU-API

参考本公众号前两篇文章《在Dify中使用MinerU提取PDF》《MinerU-API | 支持多格式解析,进一步提升Dify文档能力》,获取MinerU-API代码,再用docker部署。本文就不再多赘述。

docker run -d --gpus all --network docker_ssrf_proxy_network --name mineru-api -v minerupaddleocr:/root/.paddleocr mineru-api:v0.3

创建Dify知识库

创建一个Dify知识库,设定好基础的Embedding模型和Rerank模型

创建Dify知识库

打开知识库,在地址栏里找到该知识库的ID,并记住它。

获取知识库ID

知识库->API界面,生成一个API密钥,用于接口调用。

生成知识库API密钥

搭建MinerU知识库工作流

工作流概述

整个工作流有三个代码块,分别用于处理接口参数、MinerU解析文档、创建Dify知识库文档

Process Parameters:用于处理接口参数,这边主要处理/datasets/{dataset_id}/document/create-by-text接口的参数。

MinerU提取:将PDF、图片转成Markdown格式的文本。

知识库-文档创建:调用Dify/datasets/{dataset_id}/document/create-by-text,在知识库中创建文档。Python代码如下:

importrequests
defmain(api_key,file_name,content, api_params, dataset_id):
headers = {
'Authorization':f'Bearer{api_key}',
'Content-Type':'application/json',
}

api_params.update({
"name": file_name,
"text": content,
})

response = requests.post(
f'http://api:5001/v1/datasets/{dataset_id}/document/create-by-text',
headers=headers,
json=api_params,
)

return{"result":response.text}

效果测试

以一份网页打印出的PDF文档为例,对比直传知识库,和使用MinerU工作流的效果。

直传知识库效果

很显然,通过直传知识库,虽然文档能上传成功,可是里面的内容用Dify原生的知识库能力,完全无法解析。

通过MinerU工作流创建文档

通过MinerU工作流创建文档,显然工作流成功执行,并且返回了接口调用结果。在知识库里查看一下。

知识库查看MinerU文档创建情况

文档创建以后,Dify会自动对文档进行索引。待文档索引完成后,进行召回测试。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ