text-extract-api

一条 API 把 PDF/图片变成干净 JSON,还能自动抹掉隐私信息

text-extract-api 是一个基于 Python 的文档解析服务,旨在将 PDF、Word、PPTX 等格式的文档以及图片,通过先进的 OCR 技术和 Ollama 支持的本地模型,转换为结构化的 JSON 或 Markdown 数据。它解决了企业或个人在处理非结构化文档时,难以提取关键信息、数据格式不统一的问题。核心能力包括:多格式文档解析、OCR 文字识别、PII(个人身份信息)匿名化处理、以及与 Ollama 本地模型的集成,支持离线运行。项目提供了简洁的 API 接口,方便集成到现有系统中,适用于数据清洗、知识库构建、自动化办公等场景。其亮点在于结合了现代 OCR 和本地 LLM,实现了高精度的内容抽取和敏感信息脱敏,同时保持了数据隐私。

开源 free 开源模型
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 3181
维护状态 低维护
是否开源 是
定价模式 free

项目数据

分类开源模型
开发团队CatchTheTornado
所属国家
定价模式free
价格说明开源项目,MIT许可证,可自行部署,免费使用。
访问状态
是否开源是
开源协议MIT
主要语言Python
技术栈/模型anonymization,api,extract,json,llm,ocr,ocr-python,pdf,pii
GitHub 星标★ 3181
30天Star增速
HF 下载量
上线时间2024-10-23 00:00:00
最近更新2026-09-22 00:00:00
维护状态低维护
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数2

使用教程

难度:进阶 约 30 分钟 部署方式:Docker 8 步

环境要求

  • Docker 与 Docker Compose(用于构建 FastAPI、Celery、Redis、Ollama 服务)
  • Python 3(本地源码方式安装时需要,README 使用 python3 -m venv)
  • macOS 本地运行需安装 libmagic、poppler、pkg-config、ghostscript、ffmpeg、automake、autoconf
  • 磁盘/内存需能容纳 PyTorch 版 EasyOCR 与 Ollama 模型

安装与启动步骤

  1. 1获取项目代码

    克隆仓库到本地并进入项目根目录,后续所有命令都在该目录下执行。

    git clone https://github.com/CatchTheTornado/text-extract-api.git
    cd text-extract-api
  2. 2复制环境变量模板

    Docker 部署用 .env.example,本地运行用 .env.example.localhost,默认值一般可直接使用。

    cp .env.example .env
  3. 3修改环境变量

    按需修改 .env 中的 Redis 地址、存储策略路径和 Ollama 视觉提示词等配置。

  4. 4Docker 构建并启动

    一条命令启动 FastAPI、Celery Worker、Redis 与 Ollama 四个服务,首次构建耗时较长。

    docker-compose up --build
  5. 5GPU 模式启动

    需要 GPU 加速时改用 gpu 专用 compose 文件,项目前缀设为 text-extract-api-gpu。

    docker-compose -f docker-compose.gpu.yml -p text-extract-api-gpu up --build
  6. 6本地源码安装

    创建虚拟环境、安装依赖并执行 run.sh;run.sh 会通过 Docker 启动 Redis,因此并非完全脱离 Docker。

    python3 -m venv .venv
    source .venv/bin/activate
    pip install -e .
    chmod +x run.sh
    run.sh
  7. 7安装 macOS 依赖

    使用 Homebrew 安装文档解析所需的系统库,仅在 macOS 本地运行时需要。

    brew update && brew install libmagic poppler pkg-config ghostscript ffmpeg automake autoconf
  8. 8启动 Celery Worker

    macOS 本地运行时需另开终端启动 Celery Worker 处理异步 OCR 任务,--pool=solo 适配 Mac。

    source .venv/bin/activate && celery -A text_extract_api.celery_app worker --loglevel=info --pool=solo

关键配置

配置项必填说明示例
APP_ENV否设为 production 进入生产模式,否则为开发模式并自动重载代码production
REDIS_CACHE_URL是Redis 缓存地址,用于缓存 OCR 结果redis://localhost:6379/1
STORAGE_PROFILE_PATH否存储策略配置文件所在路径./storage_profiles
LLAMA_VISION_PROMPT否传给视觉模型的 OCR 提示词You are OCR. Convert image to markdown.
service_account_file否启用 Google Drive API 时的服务账号授权 JSON 文件路径/storage/client_secret_269403342997-290pbjjlb06nbof78sjaj7qr
folder_id否Google Drive 中要处理的文件夹 ID1AbCdEfGhIjKlMnOpQrStUvWxYz

如何确认成功

docker-compose 启动后 FastAPI、Celery Worker、Redis、Ollama 四个服务均运行;执行 CLI 的 ocr_upload 命令能返回 OCR 结果即成功。

常见问题

Q:Mac 上能用 Docker 调用 Apple GPU 吗?

A:不能。Docker 目前不支持 Apple GPU,需要按 README 的本地(native)方式运行,并单独启动 Celery Worker。

Q:本地方式完全不需要 Docker 吗?

A:不是。README 明确说明 run.sh 仍会通过 Docker 启动 Redis,所以本地方式并非完全脱离 Docker。

Q:如何避免自动创建 .venv 虚拟环境?

A:在使用 Makefile 时,命令前加 DISABLE_VENV=1,例如 DISABLE_VENV=1 make install 和 DISABLE_VENV=1 make run。

Q:数据会发送到云端吗?

A:不会。README 说明 OCR(EasyOCR)与 Ollama 都通过 docker-compose 本地部署,数据不离开开发机或服务器。

Q:启用 Google Drive 后为什么在网页里看不到文件?

A:服务账号与你的 Google Workspace 账号不同,通过服务账号访问的文件不会显示在普通 UI 中。

注意事项

  • Docker 部署与本地部署使用不同的 env 模板:Docker 用 .env.example,本地运行用 .env.example.localhost。
  • 使用 Makefile 可自动创建 .venv 虚拟环境,也可用 DISABLE_VENV=1 关闭该行为。
  • 首次 docker-compose 构建会下载 PyTorch 版 EasyOCR 与 Ollama 模型,耗时和体积较大。
  • CLI 示例:python client/cli.py ocr_upload --file examples/example-mri.pdf --ocr_cache --prompt_file=examples/example-mri-remove-pii.txt

核心亮点

  • 支持 PDF、Word、PPTX 及图片,格式覆盖广
  • 集成 Ollama 本地模型,数据不出内网,隐私安全
  • 内置 PII 匿名化,直接处理合规需求

不足之处

  • 依赖外部 OCR 和 Ollama 服务,部署配置稍复杂
  • 文档/社区待观察

适用场景

  • 企业内部文档数字化与知识库构建
  • 自动化处理客户上传的合同、简历等敏感文件
  • 批量将扫描件或图片转换为可编辑文本数据

替代项目

Apache Tika、PaddleOCR、Docling

项目介绍

text-extract-api 是计算机视觉领域的开源项目,由 CatchTheTornado 开发,2024 年首次发布。

在全站 13,014 个收录项目中,它的 GitHub 星标数(3,181)位列前 30%,在计算机视觉分类的 446 个项目里位列前 14%。

项目已超过三个月没有代码更新,维护节奏明显放缓,最近一次代码更新于 2026-09-22。MIT许可证,可自行部署,免费使用。

它主要面向的使用场景是:企业内部文档数字化与知识库构建。同类可对比的替代方案包括 Apache Tika、PaddleOCR、Docling。

上一篇:sparrow

下一篇:llm_aided_ocr

同类项目推荐

modlens 开源

给纯文本编码代理装上眼睛,粘贴图片即刻获得结构化视觉证据。

The first vision plugin for DeepSeek Harness, and the vision bridge for every text-o···

★ 4019 2026-08-19
opencv 开源

开箱即用的视觉算法库,搞定图像视频处理与识别

Open Source Computer Vision Library

★ 90930 2026-08-10
OpenCVTutorials 开源

中文 OpenCV 教程,从入门到实战,边看边跑代码

OpenCV-Python4.1 中文文档

★ 1430 2026-08-20
DEIMv2 开源

用DINOv3做实时检测,又快又准,直接落地。

[DEIMv2] Real Time Object Detection Meets DINOv3

★ 2046 2026-08-14