项目简介
超高精度将图像或 PDF 转换为 Markdown 文本或 JSON 结构化文档,包括表格数据、数字或数学公式。该 API 由 FastAPI 构建,同时借助 Celery 实现异步任务处理。还使用 Redis 存储和缓存 OCR 结果,以提高效率。
特征
无需云/外部依赖项即可满足您的所有需求:基于 PyTorch 的 OCR(标记)+ Ollama 通过
docker-compose
进行运输和配置,不会将数据发送到您的开发/服务器环境之外,使用不同的 OCR 策略(包括标记、 surya-ocr或tessereact)以非常高的准确度将 PDF 转换为 Markdown
使用 Ollama 支持的模型(例如 LLama 3.1)将PDF 转换为 JSON
LLM改善 OCR 结果LLama 非常擅长修复 OCR 文本中的拼写和文本问题
删除 PII该工具可用于从 PDF 中删除个人身份信息 - 请参阅
examples
使用[Celery]进行分布式队列处理( )
使用 Redis 进行缓存- 在LLM处理之前可以轻松缓存 OCR 结果
用于发送任务和处理结果的CLI 工具
截图
将 MRI 报告转换为 Markdown + JSON。
python client/cli.py ocr --file examples/example-mri.pdf --prompt_file examples/example-mri-2-json-prompt.txt
运行示例之前请参阅入门指南
将发票转换为 JSON 并删除 PII
python client/cli.py ocr --file examples/example-invoice.pdf --prompt_file examples/example-invoice-remove-pii.txt
运行示例之前请参阅入门指南
入门
先决条件
Docker
Docker Compose
克隆存储库
git clone https://github.com/CatchTheTornado/pdf-extract-api.git
cd pdf-extract-api
设置环境变量
在根目录中创建.env
文件并设置必要的环境变量。您可以使用.env.example
文件作为模板:
cp .env.example .env
然后修改文件里面的变量:
REDIS_CACHE_URL=redis://redis:6379/1
OLLAMA_API_URL=http://ollama:11434/api
# CLI settings
OCR_URL=http://localhost:8000/ocr
RESULT_URL=http://localhost:8000/ocr/result/{task_id}
CLEAR_CACHE_URL=http://localhost:8000/ocr/clear_cache
构建并运行 Docker 容器
使用 Docker Compose 构建并运行 Docker 容器:
docker-compose up --build
...对于 GPU 支持运行:
docker-compose -f docker-compose.gpu.yml up --build
这将启动以下服务:
FastAPI 应用程序:运行 FastAPI 应用程序。
Celery Worker :处理异步 OCR 任务。
Redis :缓存 OCR 结果。
Ollama :运行 Ollama 模型。
项目链接
https://github.com/CatchTheTornado/pdf-extract-api
扫码加入技术交流群,备注「开发语言-城市-昵称」
合作请注明
关注「GitHubStore」公众号