一个专业的文档解析服务,支持提取文档中的文字、图片、表格、公式等信息。
- 🚀 异步处理:基于Sanic的高性能异步Web框架
- 📁 多格式支持:PDF、DOCX、XLSX等
- 🔄 任务队列:Redis任务队列,支持异步处理
- ☁️ 云存储:S3兼容存储,支持大文件
- 📊 状态跟踪:实时查询任务状态和结果
- 🏥 健康检查:服务健康状态监控
- Python 3.12+
- Redis 6.0+
- S3兼容存储(MinIO/AWS S3)
# 使用uv安装
uv sync
# 复制环境变量模板
cp .env.template .env
# 编辑配置
# 方式1:使用启动脚本
python run.py
# 方式2:直接运行
sanic main:app --host 0.0.0.0 --port 8000 --workers 4
POST /api/v1/documents/upload
Content-Type: application/json
{
"files": [
{
"name": "document.pdf",
"content": "base64编码的文件内容"
}
]
}
GET /api/v1/tasks/{task_id}/status
GET /api/v1/tasks/{task_id}/result
GET /health
MMDocParser/
├── main.py # 主应用文件
├── run.py # 启动脚本
├── config.py # 配置管理
├── storage/ # 存储相关
│ ├── s3_client.py # S3客户端
│ └── redis_client.py # Redis客户端
├── parsers/ # 文档解析器
│ └── document_parser.py # 解析器基类和实现
├── utils/ # 工具函数
│ └── validators.py # 验证工具
└── pyproject.toml # 项目配置
- 在
parsers/document_parser.py
中创建新的解析器类 - 继承
DocumentParser
基类 - 实现
parse()
和can_parse()
方法 - 在
DocumentParserFactory
中注册新解析器
MIT License
欢迎提交Issue和Pull Request!