超高精度将图像或 PDF 转换为 Markdown 或 JSON

文摘   2024-11-09 09:06   湖南  

项目简介

超高精度将图像或 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.gitcd pdf-extract-api


设置环境变量


在根目录中创建.env文件并设置必要的环境变量。您可以使用.env.example文件作为模板:

cp .env.example .env


然后修改文件里面的变量:

REDIS_CACHE_URL=redis://redis:6379/1OLLAMA_API_URL=http://ollama:11434/api
# CLI settingsOCR_URL=http://localhost:8000/ocrRESULT_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」公众号

GitHubStore
分享有意思的开源项目
 最新文章