unstract

ZipstackAGPL-3.0活跃维护

把 PDF、扫描件等非结构化文档通过 LLM 抽取成结构化 JSON,可直接接入 API 和 ETL 流水线,省去手工写解析规则。

LLM-Driven Extraction of Unstructured Data — Built for API Deployments & ETL Pipeline Workflows

v0.203.0发布于 2026-11-06 08:30 UTC7,438star +9 / 7 天754fork同步于 2026-11-10 05:32 UTC

怎么上手

由 README 提炼,执行前请确认
git clone https://github.com/Zipstack/unstract.git
cd unstract
./run-platform.sh
硬件要求按 README 说明

README 未说明 GPU 或显存要求,仅要求 Linux 或 macOS(Intel 或 M 系列)、Docker 与 Docker Compose、至少 8 GB 内存

有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

用 LLM 把 PDF、扫描件等非结构化文档抽成结构化 JSON,可直接部署为 API 或 ETL 流水线

把 PDF、扫描件等非结构化文档通过 LLM 抽取成结构化 JSON,可直接接入 API 和 ETL 流水线,省去手工写解析规则。

核心能力

  • 用自然语言 Prompt 定义抽取 schema,无需写正则或模板
  • 通过 REST API 上传文档直接返回 JSON
  • 支持从文件夹拉取文档处理后加载到数仓的 ETL 流水线
  • 可接入 OpenAI、Anthropic、Bedrock、Ollama 等任意 LLM 提供方
  • 提供 MCP Server 与 n8n 节点接入 AI Agent 和自动化流程

容易踩的坑

启动后需访问 http://frontend.unstract.localhost,默认账号密码均为 unstract;务必提前备份 backend/.env 或 platform-service/.env 中的 ENCRYPTION_KEY,丢失后已配置的 adapter 凭据将无法解密;前端默认启用 Posthog 统计,可在前端 .env 中设 REACT_APP_ENABLE_POSTHOG=false 关闭

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.203.0
  1. v0.203.0最新正式版2026-11-06 · 2026-11-06 08:30 UTC

    What's Changed

    Full Changelog: https://github.com/Zipstack/unstract/compare/v0.202.0...v0.203.0

  2. v0.202.02026-11-03 · 2026-11-03 13:38 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/Zipstack/unstract/compare/v0.201.0...v0.202.0

  3. v0.201.02026-11-03 · 2026-11-03 06:35 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/Zipstack/unstract/compare/v0.200.0...v0.201.0

  4. v0.200.02026-11-01 · 2026-11-01 19:32 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/Zipstack/unstract/compare/v0.199.1...v0.200.0

  5. v0.199.12026-10-30 · 2026-10-30 09:56 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/Zipstack/unstract/compare/v0.199.0...v0.199.1

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    What is Unstract?

    Unstract uses LLMs to extract structured JSON from documents — PDFs, images, scans, you name it. Define what you want to extract using natural language prompts, and deploy as an API or ETL pipeline.

    Built for teams in finance, insurance, healthcare, KYC/compliance, and much more.

    Current State vs. Unstract

    TaskWithout UnstractWith Unstract
    Schema definitionWrite regex, build templates per vendorWrite a prompt once, handles variations
    New document typeDays of developmentMinutes in Prompt Studio
    LLM integrationBuild your own pipelinePlug in any provider (OpenAI, Anthropic, Bedrock, Ollama)
    DeploymentCustom infrastructure./run-platform.sh or managed cloud
    OutputUnstructured text blobsClean JSON, ready for your database

    ⭐ If Unstract helps you, star this repo!

    Star Unstract

    ✨ Key Features

    Prompt Studio — Define document extraction schemas with natural language. Docs →

    Prompt Studio

    API Deployment — Send a document over REST API, get JSON back. Docs →

    API Deployment

    ETL Pipeline — Pull documents from a folder, process them, load to your warehouse. Docs →

    MCP Server — Connect to AI agents (Claude, etc.) via Model Context Protocol. Docs →

    n8n Node — Drop into existing automation workflows. Docs →

    🚀 Quickstart (~5 mins)

    System Requirements & Prerequisites

    • Linux or macOS (Intel or M-series)
    • Docker & Docker Compose
    • 8 GB RAM minimum
    • Git

    Run Locally

    # Clone and start
    git clone https://github.com/Zipstack/unstract.git
    cd unstract
    ./run-platform.sh
    

    That's it!

    📦 Other Deployment Options

    Docker Compose

    # Pull and run entire Unstract platform with default env config.
    ./run-platform.sh
    
    # Pull and run docker containers with a specific version tag.
    ./run-platform.sh -v v0.1.0
    
    # Upgrade existing Unstract platform setup by pulling the latest available version.
    ./run-platform.sh -u
    
    # Upgrade existing Unstract platform setup by pulling a specific version.
    ./run-platform.sh -u -v v0.2.0
    
    # Build docker images locally as a specific version tag.
    ./run-platform.sh -b -v v0.1.0
    
    # Build docker images locally from working branch as `current` version tag.
    ./run-platform.sh -b -v current
    
    # Display the help information.
    ./run-platform.sh -h
    
    # Only do setup of environment files.
    ./run-platform.sh -e
    
    # Only do docker images pull with a specific version tag.
    ./run-platform.sh -p -v v0.1.0
    
    # Only do docker images pull by building locally with a specific version tag.
    ./run-platform.sh -p -b -v v0.1.0
    
    # Upgrade existing Unstract platform setup with docker images built locally from working branch as `current` version tag.
    ./run-platform.sh -u -b -v current
    
    # Pull and run docker containers in detached mode.
    ./run-platform.sh -d -v v0.1.0
    

    🔐 Backup Encryption Key

    [!WARNING] This key encrypts adapter credentials — losing it makes existing adapters inaccessible!

    Copy the value of ENCRYPTION_KEY from backend/.env or platform-service/.env to a secure location.

    🏗️ Unstract Architecture

    ┌────────────────────────────────────────────────────────────┐
    │                          Unstract                          │
    ├─────────────┬─────────────┬─────────────┬──────────────────┤
    │  Frontend   │   Backend   │   Worker    │ Platform Service │
    │  (React)    │  (Django)   │  (Celery)   │   (FastAPI)      │
    ├─────────────┴─────────────┴─────────────┴──────────────────┤
    │                      Cache (Redis)                         │
    ├────────────────────────────────────────────────────────────┤
    │                  Message Queue (RabbitMQ)                  │
    ├────────────────────────────────────────────────────────────┤
    │                   Database (PostgreSQL)                    │
    ├────────────────────────────────────────────────────────────┤
    │  LLM Adapters    │  Vector DBs    │  Text Extractors       │
    │  (OpenAI, etc.)  │ (Qdrant, etc.) │  (LLMWhisperer)        │
    └────────────────────────────────────────────────────────────┘
    

    Also see architecture.

    📄 Document File Formats

    CategoryFormats
    DocumentsPDF, DOCX, DOC, ODT, TXT, CSV, JSON
    SpreadsheetsXLSX, XLS, ODS
    PresentationsPPTX, PPT, ODP
    ImagesPNG, JPG, JPEG, TIFF, BMP, GIF, WEBP

    🔌 Connectors & Adapters

    LLM Providers

    ProviderStatusProviderStatus
    OpenAI✅Azure OpenAI✅
    OpenAI Compatible✅Anthropic Claude✅
    AWS Bedrock✅Google Gemini✅
    Ollama (local)✅Mistral AI✅
    Anyscale✅

    Vector Databases

    ProviderStatusProviderStatus
    Qdrant✅Pinecone✅
    Weaviate✅PostgreSQL✅
    Milvus✅

    Text Extractors

    ProviderStatus
    LLMWhisperer✅
    Unstructured.io✅
    LlamaIndex Parse✅

    ETL Sources & Destinations

    Sources: AWS S3, MinIO, Google Cloud Storage, Azure Blob, Google Drive, Dropbox, SFTP

    Destinations: Snowflake, Amazon Redshift, Google BigQuery, PostgreSQL, MySQL, MariaDB, SQL Server, Oracle

    Full Connector List

    🛠️ Development

    Change Default Credentials

    Follow these steps to change the default username and password.

    Local Development

    # Install pre-commit hooks
    ./dev-env-cli.sh -p
    
    # Run pre-commit checks
    ./dev-env-cli.sh -r
    

    Local Development Guide

    🏢 Use Cases by Industry

    Finance & Banking → | Insurance → | Healthcare → | Income Tax →

    ☁️ Cloud & Enterprise

    For teams that need managed infrastructure, advanced accuracy features, or compliance certifications.

    • ✅ LLMChallenge — dual-LLM verification
    • ✅ SinglePass & Summarized Extraction — reduce LLM token costs
    • ✅ Human-in-the-Loop — review interface with document highlighting
    • ✅ SSO & Enterprise RBAC — SAML/OIDC integration with granular role-based access control
    • ✅ SOC 2, HIPAA, ISO 27001, GDPR Compliant — third-party audited security certifications
    • ✅ Priority Support with SLA — dedicated support team with response time guarantees

    📚 Cookbooks

    🤝 Contributing

    We welcome contributions! The easiest way to start:

    1. Pick an issue tagged good first issue
    2. Submit a PR

    Report Bug → | Request Feature →

    👋 Community

    Join the LLM-powered document automation community:

    Blog LinkedIn Slack X

    📊 A Note on Analytics

    Unstract integrates Posthog to track minimal usage analytics. Disable by setting REACT_APP_ENABLE_POSTHOG=false in the frontend's .env file.

    📜 License

    Unstract is released under the AGPL-3.0 License.