4.4 KiB
4.4 KiB
name, description, license, compatibility, metadata
| name | description | license | compatibility | metadata | ||
|---|---|---|---|---|---|---|
| pdf-analyzer | 使用 MinerU API 读取并分析 PDF 文件,支持文件解析、表格/公式提取、OCR 识别、异步任务管理 | MIT | opencode |
|
概述
通过 MinerU API (http://192.168.31.138:8312) 分析 PDF/图片/DOCX/PPTX/XLSX 文件。
API 端点
1. 同步解析 POST /file_parse
上传文件并等待解析完成,直接返回结果。
curl -X POST "http://192.168.31.138:8312/file_parse" \
-F "files=@/path/to/document.pdf" \
-F "lang_list=ch" \
-F "backend=hybrid-auto-engine" \
-F "parse_method=auto" \
-F "formula_enable=true" \
-F "table_enable=true" \
-F "image_analysis=true" \
-F "return_md=true"
2. 异步提交 POST /tasks
提交解析任务,立即返回 task_id。
curl -X POST "http://192.168.31.138:8312/tasks" \
-F "files=@/path/to/document.pdf" \
-F "lang_list=ch" \
-F "backend=hybrid-auto-engine" \
-F "return_md=true"
3. 查询任务状态 GET /tasks/{task_id}
curl "http://192.168.31.138:8312/tasks/{task_id}"
返回状态: pending, running, completed, failed
4. 获取任务结果 GET /tasks/{task_id}/result
curl "http://192.168.31.138:8312/tasks/{task_id}/result"
5. 健康检查 GET /health
curl "http://192.168.31.138:8312/health"
参数说明
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
files |
array | 必填 | 上传 PDF/图片/DOCX/PPTX/XLSX 文件 |
lang_list |
array | ["ch"] |
OCR 语言: ch, en, korean, japan, arabic, latin, cyrillic, devanagari 等 |
backend |
string | hybrid-auto-engine |
解析后端: pipeline, vlm-auto-engine, vlm-http-client, hybrid-auto-engine, hybrid-http-client |
parse_method |
string | auto |
解析方法: auto, txt, ocr(仅 pipeline/hybrid) |
formula_enable |
bool | true |
是否解析公式 |
table_enable |
bool | true |
是否解析表格 |
image_analysis |
bool | true |
是否分析图片/图表(VLM/hybrid 后端) |
server_url |
string | null | OpenAI 兼容服务器 URL(仅 http-client 后端) |
return_md |
bool | true |
返回 Markdown 内容 |
return_middle_json |
bool | false |
返回中间 JSON |
return_model_output |
bool | false |
返回模型输出 JSON |
return_content_list |
bool | false |
返回内容列表 JSON |
return_images |
bool | false |
返回提取的图片 |
response_format_zip |
bool | false |
返回 ZIP 格式结果 |
return_original_file |
bool | false |
ZIP 中包含原始文件 |
client_side_output_generation |
bool | false |
客户端生成最终输出 |
start_page_id |
int | 0 | 开始页码(从 0 开始) |
end_page_id |
int | 99999 | 结束页码(从 0 开始) |
Python 使用示例
import requests
API_BASE = "http://192.168.31.138:8312"
# 同步解析
with open("document.pdf", "rb") as f:
resp = requests.post(f"{API_BASE}/file_parse", files=[
("files", ("document.pdf", f, "application/pdf"))
], data={
"lang_list": ["ch", "en"],
"backend": "hybrid-auto-engine",
"formula_enable": True,
"table_enable": True,
"return_md": True,
"return_content_list": True
})
result = resp.json()
print(result.get("md", "")) # Markdown 内容
# 异步解析
with open("document.pdf", "rb") as f:
resp = requests.post(f"{API_BASE}/tasks", files=[
("files", ("document.pdf", f, "application/pdf"))
], data={"return_md": True})
task_id = resp.json()["task_id"]
import time
while True:
status = requests.get(f"{API_BASE}/tasks/{task_id}").json()
if status["status"] in ("completed", "failed"):
break
time.sleep(2)
result = requests.get(f"{API_BASE}/tasks/{task_id}/result").json()
使用场景
- PDF 转 Markdown — 提取 PDF 内容为结构化 Markdown
- 表格提取 — 从 PDF 中识别并提取表格数据
- 公式提取 — 提取数学公式(LaTeX 格式)
- 图片分析 — 识别并分析 PDF 中的图片/图表
- OCR 识别 — 扫描件/图片型 PDF 的文字识别
- 多语言文档 — 支持中文、英文、日文、韩文、阿拉伯语等多种语言
- 分页解析 — 通过
start_page_id/end_page_id指定页码范围