Agentic-doc 终极指南:5个典型使用场景代码示例
·
Agentic-doc 终极指南:5个典型使用场景代码示例
Agentic-doc 是一个强大的 Python 库,专门用于智能文档提取和分析。这个库封装了 VisionAgent 文档提取 REST API,让开发者能够轻松地从复杂的视觉文档(如表格、图片和图表)中提取结构化数据,并以分层 JSON 格式返回精确的元素位置信息。无论你是处理财务报表、合同文档还是技术手册,Agentic-doc 都能帮你快速提取关键信息,大大提升文档处理效率。😊
📋 为什么选择 Agentic-doc?
Agentic-doc 提供了多项强大功能,使其成为文档处理领域的理想选择:
- 📦 开箱即用:只需
pip install agentic-doc即可安装,无需额外配置 - 📚 长文档支持:能够处理 1000+ 页的大型 PDF 文件
- ⚡ 并行处理:自动分割大文件并使用线程池并行处理
- 🔄 自动重试:内置指数退避重试机制,处理 API 错误和速率限制
- 🧩 结构化输出:返回分层 JSON 和可渲染的 Markdown
- 👁️ 可视化支持:可保存边界框截图和完整页面可视化
🚀 安装与配置
首先,你需要安装 Agentic-doc 并配置 API 密钥:
pip install agentic-doc
设置环境变量:
export VISION_AGENT_API_KEY=<your-api-key>
🔥 典型使用场景代码示例
1. 从单个文档提取数据(基础使用)
这是最基本的用法,适合处理单个 PDF 或图像文件:
# agentic_doc/parse.py 中的核心函数
from agentic_doc.parse import parse
# 解析本地文件
result = parse("path/to/invoice.pdf")
print(result[0].markdown) # 获取提取的数据为 Markdown 格式
print(result[0].chunks) # 获取结构化内容块
# 解析 URL 文档
result = parse("https://example.com/document.pdf")
print(result[0].markdown)
2. 批量处理多个文档(高效批处理)
当需要处理多个文档时,Agentic-doc 提供了高效的批处理功能:
from agentic_doc.parse import parse
# 解析多个本地文件
file_paths = ["invoice1.pdf", "contract2.pdf", "report3.pdf"]
results = parse(file_paths)
for i, result in enumerate(results):
print(f"文档 {i+1} 提取结果:")
print(result.markdown)
print("-" * 50)
# 解析并保存结果到目录
results = parse(file_paths, result_save_dir="./extracted_results")
for result in results:
print(f"结果保存到: {result.result_path}")
3. 结构化字段提取(智能数据提取)
使用 Pydantic 模型定义要提取的字段,实现精确的结构化数据提取:
# tests/integ/test_parse_integ.py 中的示例模式
from pydantic import BaseModel, Field
from agentic_doc.parse import parse
class InvoiceFields(BaseModel):
invoice_number: str = Field(description="发票号码")
invoice_date: str = Field(description="发票日期")
total_amount: float = Field(description="总金额")
vendor_name: str = Field(description="供应商名称")
vendor_address: str = Field(description="供应商地址")
# 使用自定义模型提取结构化数据
results = parse("invoice.pdf", extraction_model=InvoiceFields)
fields = results[0].extraction
metadata = results[0].extraction_metadata
print(f"发票号码: {fields.invoice_number}")
print(f"置信度: {metadata.invoice_number.confidence}")
print(f"总金额: {fields.total_amount}")
4. 连接器集成(多数据源支持)
Agentic-doc 支持多种数据源连接器,让你可以从不同位置访问文档:
# agentic_doc/connectors.py 中的连接器示例
from agentic_doc.parse import parse
from agentic_doc.connectors import (
GoogleDriveConnectorConfig,
S3ConnectorConfig,
LocalConnectorConfig,
URLConnectorConfig
)
# Google Drive 连接器示例
gdrive_config = GoogleDriveConnectorConfig(
client_secret_file="credentials.json",
folder_id="your-folder-id"
)
gdrive_results = parse(gdrive_config, connector_pattern="*.pdf")
# Amazon S3 连接器示例
s3_config = S3ConnectorConfig(
bucket_name="your-bucket",
region_name="us-east-1"
)
s3_results = parse(s3_config, connector_path="documents/")
# 本地目录连接器示例
local_config = LocalConnectorConfig(recursive=True)
local_results = parse(local_config, connector_path="/path/to/documents")
# URL 连接器示例
url_config = URLConnectorConfig(timeout=60)
url_results = parse(url_config, connector_path="https://example.com/doc.pdf")
5. 高级功能:可视化与调试
Agentic-doc 提供了强大的可视化工具,帮助你验证提取结果的准确性:
# agentic_doc/utils.py 中的可视化功能
from agentic_doc.parse import parse
from agentic_doc.utils import viz_parsed_document
from agentic_doc.config import VisualizationConfig
# 解析文档
results = parse("complex_document.pdf")
parsed_doc = results[0]
# 创建可视化
images = viz_parsed_document(
"complex_document.pdf",
parsed_doc,
output_dir="./visualizations"
)
# 自定义可视化配置
viz_config = VisualizationConfig(
thickness=2,
text_bg_opacity=0.8,
font_scale=0.7
)
images = viz_parsed_document(
"complex_document.pdf",
parsed_doc,
output_dir="./custom_viz",
viz_config=viz_config
)
print(f"已生成 {len(images)} 个可视化页面")
⚙️ 配置选项与最佳实践
Agentic-doc 提供了灵活的配置选项,可以根据你的需求进行调整:
# 通过环境变量配置
# .env 文件示例
BATCH_SIZE=4 # 并行处理文件数
MAX_WORKERS=2 # 每个文件的并行工作线程数
MAX_RETRIES=80 # 最大重试次数
MAX_RETRY_WAIT_TIME=30 # 最大重试等待时间
RETRY_LOGGING_STYLE=log_msg # 重试日志样式
# 通过代码配置
from agentic_doc.config import get_settings
settings = get_settings()
settings.batch_size = 8
settings.max_workers = 4
🎯 性能优化技巧
- 📊 调整并行度:根据你的 API 速率限制调整
BATCH_SIZE和MAX_WORKERS - 🔧 错误处理:利用内置的重试机制处理 API 错误
- 💾 结果缓存:将提取结果保存到本地,避免重复处理
- 👁️ 可视化验证:使用可视化工具验证提取准确性
- 📈 监控性能:关注 API 延迟,优化并行设置
🔍 故障排除与常见问题
常见问题解决方案:
- API 密钥错误:确保
VISION_AGENT_API_KEY环境变量正确设置 - 速率限制:调整
BATCH_SIZE或MAX_WORKERS参数 - 解析失败:检查文档格式是否支持(PDF、图像)
- 内存问题:对于超大文档,考虑分批次处理
📚 项目结构与核心模块
Agentic-doc 项目采用模块化设计,主要包含以下核心模块:
- agentic_doc/parse.py:核心解析功能,支持多种输入类型
- agentic_doc/connectors.py:数据源连接器,支持 Google Drive、S3 等
- agentic_doc/utils.py:实用工具函数,包括可视化功能
- agentic_doc/config.py:配置管理,支持环境变量和代码配置
- agentic_doc/common.py:数据模型和通用类型定义
🚀 开始使用 Agentic-doc
要开始使用 Agentic-doc,只需按照以下步骤:
- 安装库:
pip install agentic-doc - 获取 API 密钥:从 LandingAI 平台获取 VisionAgent API 密钥
- 设置环境变量:
export VISION_AGENT_API_KEY=<your-key> - 编写第一个脚本:参考上面的示例代码
- 测试与验证:使用可视化工具验证提取结果
Agentic-doc 的强大功能和易用性使其成为处理复杂文档提取任务的理想选择。无论你是需要处理财务报表、法律合同还是技术文档,这个库都能帮助你快速、准确地提取所需信息。🌟
通过本文的 5 个典型使用场景示例,你应该已经掌握了 Agentic-doc 的核心功能。现在就开始使用这个强大的工具,提升你的文档处理效率吧!
更多推荐



所有评论(0)