Paperless-ngx

AI私有文档库 - 中文应用

简介

Paperless-ngx 是一个开源AI文档管理系统,旨在帮助您实现数字化文档管理。它能够AI识别、智能分类建立您的内部私有文档库,并经过权限分配后,协作伙伴可以使用搜索功能轻松访问内容。

提示:本网站是开源 Paperless-ngx 项目的中文环境实践应用分享

主要功能

  • 文档数字化:数字化各种类型的文档,包括图片、PDF、WORD、EXCEL、PPT等,无论是电子还是纸质形式
  • AI私有化:AI私有化在本地部署,不会把文档发给外部AI学习训练,保障文档的安全
  • 智能分类:基于机器学习能力,自动对文档进行识别分类及应用标签,极大提高文档归档效率
  • 全文搜索:通过AI检索能力,快速查找归档资料库中的指定文本内容
  • 多用户支持:使用权限控制功能,您可以轻松实现内部私有资料库共享和分发给指定伙伴使用
  • PDF 编辑:在线实时对PDF文件进行编辑,如转换、合并、分割、裁剪、旋转等
  • Web 界面:现代化响应式设计,支持移动端访问
  • API 接口:RESTful API 支持第三方集成
  • 多语言支持:包括中文在内的多种语言界面

历史

Paperless-ngx 是原始 PaperlessPaperless-ng 项目的官方继承者,旨在通过团队协作来推进和支持该项目。

安装指南

推荐安装方式

Paperless-ngx 提供了多种安装选项,最推荐的方式是使用 Docker 或 Docker Compose。

Docker Compose 安装步骤:

version: "3.4"
services:
  paperless-ngx:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: unless-stopped
    ports:
      - "8000:8000"
    volumes:
      - ./data:/usr/src/paperless/media
      - ./export:/usr/src/paperless/export
      - ./consume:/usr/src/paperless/consume
    environment:
      - PAPERLESS_REDIS=redis://redis:6379
      - PAPERLESS_DBHOST=db
    depends_on:
      - db
      - redis

  db:
    image: postgres:15
    restart: unless-stopped
    volumes:
      - ./pgdata:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=paperless
      - POSTGRES_USER=paperless
      - POSTGRES_PASSWORD=supersecretpassword

  redis:
    image: redis:7
    restart: unless-stopped
    volumes:
      - ./redisdata:/data

其他安装方式

除了 Docker 外,还可以通过以下方式安装:

  • 直接从源码安装
  • 使用 pip 安装
  • 通过包管理器安装(如 Arch Linux 的 AUR 包)

迁移

可以从 Paperless-ng 或原始 Paperless 迁移到 Paperless-ngx:

  1. 停止当前的 Paperless 实例
  2. 备份数据
  3. 下载最新的 Paperless-ngx 发布版本
  4. 更新 docker-compose.yml 文件中的镜像地址
  5. 执行数据库迁移和搜索索引重建
  6. 启动 Paperless-ngx

配置说明

Paperless-ngx 提供了丰富的配置选项,可以通过环境变量进行设置。

必需服务

Redis Broker

PAPERLESS_REDIS:这是处理计划任务所必需的,例如邮件获取、索引优化和训练自动文档匹配器。

数据库

默认情况下,Paperless 使用 SQLite,但建议在生产环境中使用 PostgreSQL 或 MariaDB。

常用配置项

配置项 说明 默认值
PAPERLESS_TIME_ZONE 时区设置 UTC
PAPERLESS_OCR_LANGUAGE OCR 语言(可指定多个) eng
PAPERLESS_CONSUMER_POLLING 消费目录轮询间隔(秒) 0(不轮询)
PAPERLESS_FILENAME_FORMAT 归档文件命名格式

更多配置选项请参考官方文档。

使用方法

添加文档

有多种方式将文档添加到 Paperless-ngx:

  1. 上传文件:通过 Web 界面直接上传 PDF、图片等文件
  2. 消费目录:将文件放入指定目录自动处理
  3. 邮件接收:配置邮箱自动接收并处理附件
  4. 扫描仪集成:通过 SANE 或网络扫描仪直接扫描

文档管理

在 Web 界面中,您可以:

  • 搜索文档(支持全文搜索)
  • 为文档添加标签、对应人和文档类型
  • 查看文档详细信息和元数据
  • 下载或在线查看文档
  • 批量操作多个文档

术语和定义

  • 文档:一份包含有价值信息的纸质文件
  • 对应人:文档的来源或发送对象,可以是个人、机构或公司
  • 标签:可以分配给文档的标签,比文件夹更强大
  • 文档类型:用于标识文档类型,如合同、档案、行政公文、财务、知识等
  • 创建日期:文档最初发布或签署的日期
  • 存档序列号:文档在物理文档活页夹中的标识符

高级功能

自动化匹配

Paperless-ngx 可以自动匹配标签、对应人、文档类型和存储路径:

  • 基于文档内容的自动匹配算法
  • 支持多种匹配算法:无、任意、全部、精确、正则表达式、模糊匹配和自动匹配
  • 机器学习驱动的自动匹配功能

自动化规则

Paperless-ngx 支持创建自动化规则,根据文档内容自动执行操作:

  • 自动分配标签
  • 自动设置对应人
  • 自动归类文档类型
  • 自定义操作流程

消费钩子

可以在文档消费过程前后执行自定义脚本:

  • 预消费脚本:在处理文档之前执行
  • 后消费脚本:在文档处理完成后执行

故障排除

常见问题

注意:如果遇到性能问题,请检查系统资源(CPU、内存、磁盘空间)是否充足。

没有文件被添加

  • 确保放置文档的目录是 Paperless 监视的文件夹
  • 确保 Redis 正在运行
  • 确保任务处理器正在运行

OCR 失败

如果 OCR 精度太低,可能需要安装与文档语言匹配的 Tesseract 语言文件。

Web 界面卡在"Loading..."

确保前端文件已正确编译并存在于相应目录中。

获取帮助

如果遇到问题,可以通过以下途径获得帮助:

  • 查阅官方文档
  • 在 GitHub Issues 中提问
  • 微信扫码获取支持

API 接口

Paperless-ngx 提供了功能齐全的 REST API 和可浏览的 Web 界面。

认证方式

  1. 基本认证:使用 Base64 编码的用户名和密码
  2. 会话认证:在浏览器中登录后自动认证
  3. 令牌认证:通过 API 令牌进行认证
  4. 远程用户认证:使用远程用户认证

文档搜索

支持全文搜索和相似文档搜索:

  • /api/documents/?query=搜索词:全文搜索
  • /api/documents/?more_like_id=文档ID:查找相似文档

上传文档

通过 /api/documents/post_document/ 端点上传文档:

  • 使用 multipart 表单上传文件
  • 支持指定标题、创建日期、对应人、文档类型等元数据