Files
XCDesktop/tools/mineru/test_api.py
2026-03-08 01:34:54 +08:00

106 lines
2.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env python
#coding=utf-8
import requests
from config import MINERU_API_URL, MINERU_TOKEN
def test_create_task():
"""
测试创建解析任务
"""
print("测试创建解析任务...")
api_url = f"{MINERU_API_URL}/extract/task"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {MINERU_TOKEN}"
}
# 使用官方示例 URL
data = {
"url": "https://cdn-mineru.openxlab.org.cn/demo/example.pdf",
"model_version": "vlm"
}
try:
response = requests.post(api_url, headers=headers, json=data)
print(f"状态码: {response.status_code}")
print(f"响应内容: {response.json()}")
if response.status_code == 200:
result = response.json()
if result.get("code") == 0:
task_id = result.get("data", {}).get("task_id")
print(f"任务创建成功任务ID: {task_id}")
return task_id
else:
print(f"任务创建失败: {result.get('msg')}")
return None
else:
print(f"请求失败,状态码: {response.status_code}")
return None
except Exception as e:
print(f"测试失败: {e}")
import traceback
traceback.print_exc()
return None
def test_get_task_status(task_id):
"""
测试获取任务状态
"""
if not task_id:
print("任务ID为空跳过测试")
return None
print(f"测试获取任务状态...")
api_url = f"{MINERU_API_URL}/extract/task/{task_id}"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {MINERU_TOKEN}"
}
try:
response = requests.get(api_url, headers=headers)
print(f"状态码: {response.status_code}")
print(f"响应内容: {response.json()}")
if response.status_code == 200:
result = response.json()
if result.get("code") == 0:
status = result.get("data", {})
print(f"任务状态获取成功,状态: {status.get('state')}")
return status
else:
print(f"获取状态失败: {result.get('msg')}")
return None
else:
print(f"请求失败,状态码: {response.status_code}")
return None
except Exception as e:
print(f"测试失败: {e}")
import traceback
traceback.print_exc()
return None
def main():
"""
主函数
"""
print("开始测试 Mineru API...")
# 测试创建任务
task_id = test_create_task()
# 测试获取任务状态
if task_id:
test_get_task_status(task_id)
print("API 测试完成")
if __name__ == "__main__":
main()