name: pdf-analyzer version: 1.0.0 description: 使用视觉模型分析 PDF、DOCX 和电子表格文档。将文档转换为图像并提取见解,同时保留布局。使用 VT Code 的原生文档处理器(无需容器技能)。 author: VT Code Team tags: [文档, pdf, docx, excel, 视觉, vtcode-native] vtcode-native: true
PDF/DOCX/电子表格分析器
概述
此技能提供 OpenAI 风格的文档处理能力,将 PDF、Word 文档和电子表格转换为渲染图像,供视觉模型分析。这种方法保留了传统文本提取中会丢失的布局、格式、表格和视觉元素。
灵感来源: OpenAI 在 ChatGPT 的代码解释器中的实现(根据 Simon Willison 的博客文章,2025 年 12 月)
支持的格式
- PDF:多页文档,逐页转换为 PNG
- DOCX/DOC:Word 文档,完全保留格式
- XLSX/XLS/CSV:电子表格渲染为视觉表格
- 图像:直接分析(PNG、JPG、JPEG、GIF、BMP、TIFF)
在 VT Code 中的使用
基本文档分析
# 列出可用技能
vtcode list-skills
# 加载技能
vtcode skills load pdf-analyzer
# 在 VT Code 聊天中:
/skills load pdf-analyzer
分析文档
用户:分析此 PDF 报告并总结关键发现
助手:我将使用 PDF 分析器技能,通过视觉分析处理此文档。
[技能处理文档,转换为图像,使用视觉模型分析]
文档包含:
1. 第 1 页的执行摘要突出显示 Q3 收入增长
2. 第 3-4 页的详细财务表格显示 15% 年同比增长
3. 图表说明市场扩展机会
4. 第 7 页的风险评估部分
关键见解:
- 收入从 210 万美元增长至 240 万美元(14.3% 增长)
- 新客户获取增长 23%
- 供应链效率方面指出挑战
处理电子表格
用户:审查此 Excel 文件并识别销售数据中的任何异常
助手:让我使用基于视觉的处理分析电子表格,以保留表结构和格式。
[技能将电子表格渲染为图像,检测结构,分析值]
发现:
- 第 42 行:销售金额 5 万美元,无对应客户 ID(潜在数据输入错误)
- 第 E 列:几个负值可能表示退货或退款
- 2025 年 3 月 15 日那周:异常 300% 订单激增(与销售团队核实)
- 条件格式显示 12 个逾期付款以红色高亮
文档比较
用户:比较这两个合同版本并突出更改
助手:我将使用视觉分析处理两个文档以检测文本和格式更改。
[技能处理两个文档,比较渲染页面]
检测到的差异:
- 第 3.2 节:付款条件从“Net 30”更改为“Net 15”
- 第 7.1 条款:责任上限从 10 万美元增加至 25 万美元
- 第 5 页:新增保密条款
- 页眉格式:公司徽标位置调整
技术实现
架构
文档 → 渲染器 → PNG 图像 → 视觉模型 → 分析 → 见解
- 文档加载:支持 PDF、DOCX、XLSX、CSV 和图像格式
- 渲染:将页面/表格转换为高质量 PNG 图像(默认 150 DPI)
- 视觉处理:将图像发送到支持视觉的 LLM 进行分析
- 文本提取:可选运行 OCR 以获取可搜索文本层
- 见解生成:结合视觉分析和提取内容
关键特性
布局保留:
- 表格保持行/列结构
- 图表和图形保持视觉完整
- 格式(粗体、斜体、颜色)得以保留
- 页面结构和流程得以维持
多页处理:
- 长文档自动分页
- 跨页面上下文感知
- 分析中引用页码
视觉模型集成:
- 将渲染图像发送到 Gemini/Claude/GPT-4 视觉模型
- 在分析中维护空间关系
- 提取文本和视觉信息
令牌效率
- 图像压缩至视觉模型的最佳大小
- 长文档的智能页面选择
- 渲染页面缓存
- 可配置 DPI(75/150/300),基于详细需求
配置
环境变量
# 文档处理
export VT_CODE_DOC_DPI=150 # 渲染 DPI(默认:150)
export VT_CODE_DOC_MAX_PAGES=50 # 每个文档的最大页数(默认:50)
export VT_CODE_DOC_ENABLE_OCR=true # 启用 OCR 后备(默认:true)
# 视觉模型选择
export VT_CODE_VISION_MODEL=gemini-2.5-pro # 用于文档分析的模型
VTCode 配置
[skills.pdf-analyzer]
enabled = true
dpi = 150
max_pages = 50
enable_ocr = true
vision_model = "gemini-2.5-pro"
示例
示例 1:财务报告分析
用户:分析 Q3_Financial_Report.pdf 并给出关键指标
助手:使用基于视觉的分析处理财务报告...
提取的关键指标:
• 总收入:240 万美元(2025 年 Q3)
• 毛利率:68%
• 运营费用:120 万美元
• 净利润:43.2 万美元(18% 利润率)
• 现金流:经营产生 +15.6 万美元
趋势:
• 收入 vs Q2 增长 14.3%
• 利润率改善 2.1 个百分点
• 客户获取成本降低 8%
[按页码引用表格和图表]
示例 2:合同审查
用户:审查此 NDA 并突出任何不寻常条款
助手:分析非披露协议...
合同审查摘要:
✓ 标准保密条款
✓ 合理期限(2 年)
⚠️ 发现不寻常条款:第 5.3 节——“商业秘密的永久保密”
⚠️ 地理范围:全球(典型,但确认是否适当)
✓ 公共信息的标准排除
建议:永久商业秘密条款可执行,但考虑:
- 更具体定义“商业秘密”
- 添加可分割性条款
示例 3:研究论文分析
用户:总结此研究论文并提取方法论
助手:使用视觉分析处理研究论文...
论文摘要:
“机器学习优化的先进技术”
作者:Smith 等(2025)
摘要总结:
该论文提出了一种新颖的优化算法,与 Adam 优化器相比,收敛速度提高 40%...
方法论(来自第 3-5 页):
1. 数据集:CIFAR-10、ImageNet 和自定义基准
2. 架构:ResNet-50、ViT-B/16
3. 超参数:学习率 1e-3,批次大小 256
4. 新颖贡献:自适应动量调度
结果(第 6-7 页):
• 收敛速度 vs 基线快 40%
• ImageNet 上准确度提高 2.3%
• 对超参数变化稳健
[引用图形:图 2(收敛曲线),图 4(准确度比较)]
高级使用
批处理
# 处理多个文档
for doc in *.pdf; do
vtcode ask "分析 $doc 并将摘要保存到 ${doc%.pdf}_summary.txt"
done
与 CLI 集成
# 处理文档并提取特定信息
vtcode skills load pdf-analyzer
vtcode ask "从 contract.pdf 提取所有电子邮件地址"
自定义视觉提示
用户:分析此文档,仅关注财务数据和风险
助手:我将使用自定义视觉提示,专门聚焦于财务信息和风险因素...
[自定义提示指导模型关注特定元素]
故障排除
常见问题
文档太大:
错误:文档超出最大页数限制(50 页)
解决方案:分割文档或增加 VT_CODE_DOC_MAX_PAGES
视觉模型不可用:
错误:视觉模型未配置
解决方案:设置 VT_CODE_VISION_MODEL 或使用默认 Gemini 视觉模型
渲染失败:
错误:无法渲染文档
解决方案:验证文件格式支持且未损坏
调试模式
export VT_CODE_DEBUG_DOCUMENTS=true
vtcode skills load pdf-analyzer
vtcode ask "分析 document.pdf"
# 将显示详细的渲染和处理日志
性能提示
- 使用适当 DPI:150 DPI 适用于大多数文档
- 限制页面范围:对于大文档,仅处理相关页面
- 批处理:并行处理多个文档
- 缓存结果:尽可能重用处理过的文档
- 选择高效的视觉模型:Gemini 2.5 Flash 用于速度,Pro 用于细节
安全考虑
- 文档本地处理,不发送到外部服务
- 视觉模型调用使用标准 LLM API 加密
- 处理后清理临时文件
- 不永久存储文档内容
许可证
MIT 许可证 - 详情见 VTCode 主仓库。