介绍
Dify 是一款开源的大语言模型(LLM) 应用开发平台,它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员,也能参与到 AI 应用的定义和数据运营过程中。
但是在构建dify知识库的时候发现,dify对pdf文件的解析能力很差,它使用的是PyMuPDF包,这使得dify不能解析纯图片类的pdf文件,也不能保存pdf文档中的图片。
目前上海人工智能实验室(上海AI实验室)大模型数据基座OpenDataLab团队开源了全新的智能数据提取工具——MinerU,拥有十分强大的pdf解析能力,它通过yolo v10识别pdf中的文字、图片、公式、表格等区域,并用特定的模型对不同的区域进行分析,达到了十分惊人的效果。
我使用他们开源的PDF-Extract-Kit工具箱,将dify-rag-pdf_extract部分进行优化,最终使dify拥有了识别纯图片类pdf的能力。
部署
同dify的部署一样,你可以选择进行本地部署或docker部署,这里演示docker部署,本地部署和官方的流程差不多,能本地部署的基本都是大佬级别,所以就不予演示了。
docker部署
以linux系统为例:
1. docker部署需要让docker使用gpu,所以需要在主机上下载nvidia-docker。
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install nvidia-container-toolkit
sudo apt-get install nvidia-docker2
service docker restart
sudo systemctl daemon-reload
sudo systemctl restart docker
2. 克隆dify项目,由于dify官方并没有同意我的PR所以需要在我的github上克隆
git clone https://github.com/fengsvkn/dify.git
3. 切换到test/pdf_extract分支
git checkout -b test/pdf_extract origin/test/pdf_extract
git pull origin test/pdf_extract
4.在dify的同级目录下下载模型权重
模型权重下载 — PDF-Extract-Kit 0.1.0 文档
注意这里要先下载git-lfs
git clone https://www.modelscope.cn/opendatalab/pdf-extract-kit-1.0.git
然后将pdf-extract-kit-1.0文件夹重命名为pdf_extract_models
之前的一个小bug,不想重新构建docker镜像了见谅
5.下载docker镜像并导入
链接: https://pan.baidu.com/s/1rcEstv0-6bGwVYcXbo5Y3w?pwd=gi12 提取码: gi12
--来自百度网盘超级会员v5的分享
docker load -i docker-api.tar
6.进入dify/docker目录
cp .env.example .env
在.env中修改一下端口(如果有冲突的话)
docker compose up -d
在浏览器输入127.0.0.1就可以使用了。