
paperless-gpt
让 paperless-ngx 自动读懂文档,分类打标不再手动
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 2833
使用教程
环境要求
- 已部署并可访问的 paperless-ngx 实例(含 API Token)
- 已安装 Docker;用 Compose 方式还需 docker compose
- 一个 LLM 服务的密钥(如 OpenAI)或在本地运行 Ollama
- 可选:支持视觉的 OCR 模型(如 ollama 的 minicpm-v、openai 的 gpt-4o)
安装与启动步骤
-
1准备 Paperless 信息
确认 paperless-ngx 的访问地址,并在 paperless-ngx 中生成 API Token,供后面两个环境变量使用。
-
2创建 prompts 目录
在部署目录下创建 prompts 目录,稍后挂载到容器 /app/prompts,用于放自定义提示词。
mkdir prompts -
3编写 compose 文件
新建 docker-compose.yml,镜像用 icereed/paperless-gpt:latest,按需删除注释选择一种 LLM/OCR 提供方。
-
4启动容器
在 docker-compose.yml 所在目录执行,会拉取镜像并映射 8080 端口,未填的配置项使用默认值。
docker compose up -d -
5或本地构建镜像
手动部署方式:克隆仓库、创建 prompts 目录后自行构建镜像。
git clone https://github.com/icereed/paperless-gpt.git cd paperless-gpt mkdir prompts docker build -t paperless-gpt . -
6手动运行容器
不用 Compose 时用 docker run 启动,务必把地址、Token 和密钥替换为真实值后再执行。
docker run -d \ -e PAPERLESS_BASE_URL='http://your_paperless_ngx_url' \ -e PAPERLESS_API_TOKEN='your_paperless_api_token' \ -e LLM_PROVIDER='openai' \ -e LLM_MODEL='gpt-4o' \ -e OPENAI_API_KEY='sk-xxxxxxxx' \ -e LLM_LANGUAGE='English' \ -e VISION_LLM_PROVIDER='ollama' \ -e VISION_LLM_MODEL='minicpm-v' \ -e LOG_LEVEL='info' \ -v $(pwd)/prompts:/app/prompts \ -p 8080:8080 \ paperless-gpt -
7打开 Web 界面
浏览器访问本机 8080 端口查看服务界面,若异常先看容器日志(README 提示 read the logs)。
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
PAPERLESS_BASE_URL | 是 | paperless-ngx 的服务地址,容器内可用服务名访问 | http://paperless-ngx:8000 |
PAPERLESS_API_TOKEN | 是 | paperless-ngx 的 API Token,用于读写文档 | your_paperless_api_token |
LLM_PROVIDER | 是 | LLM 后端类型,可选 openai、mistral、ollama、anthropic | openai |
LLM_MODEL | 是 | 使用的模型名称,需与所选提供方匹配 | gpt-4o |
OPENAI_API_KEY | 是 | OpenAI(或 Azure OpenAI)的 API 密钥;用其他提供方改填对应密钥 | sk-xxxxxxxx |
VISION_LLM_MODEL | 否 | OCR 视觉模型,ollama 可用 minicpm-v,openai 用 gpt-4o | minicpm-v |
如何确认成功
浏览器打开 http://localhost:8080 有界面响应,且容器日志无报错,即表示启动成功。
常见问题
Q:可以不用 OpenAI 吗?
A:可以。README 列出的 LLM_PROVIDER 支持 openai、mistral、ollama(本地模型)、anthropic/Claude,以及 Azure OpenAI,切换后填对应的密钥或 OLLAMA_HOST。
Q:如何在多个 LLM 提供方之间切换?
A:在 compose 文件里注释掉当前配置,启用另一组:例如 Mistral 用 LLM_PROVIDER=mistral、LLM_MODEL=mistral-large-latest 和 MISTRAL_API_KEY。
Q:OCR 有哪些可选方案?
A:OCR_PROVIDER 可选 llm(默认)、google_docai、azure、docling 四种;LLM 方案还需配置 VISION_LLM_PROVIDER 与 VISION_LLM_MODEL。
Q:处理后的文档会覆盖原件吗?
A:默认不会。PDF_REPLACE 默认为 false,README 建议先保持 false 直到确认处理效果,并做好定期备份。
Q:本地 Ollama 跑不通怎么办?
A:容器内访问宿主机 Ollama 需用 http://host.docker.internal:11434,并按需设置 OLLAMA_CONTEXT_LENGTH、TOKEN_LIMIT 等参数。
注意事项
- compose 文件里的占位符必须替换为真实值,出问题先看容器日志。
- PDF_REPLACE 设为 true 会在上传后删除原文档,属危险操作,建议先保持 false。
- README 建议先做小范围测试并定期备份 data 数据,避免误处理。
- 默认监听 8080 端口,如与已有服务冲突需调整端口映射。
核心亮点
- 支持多种 LLM 后端(OpenAI/Mistral/Ollama),灵活适配本地或云端模型
- 集成视觉 OCR,能处理扫描件和图片中的文字提取
- 可自定义提示词和规则,适应不同文档分类需求
不足之处
- 依赖外部 LLM 服务,需要额外配置 API 或本地模型
- 文档/社区待观察,项目尚在成长中,教程和案例较少
适用场景
- 个人或团队使用 paperless-ngx 管理大量文档,希望自动分类打标
- 需要从扫描件或图片中提取关键信息并归档
- 希望用自然语言定义文档处理规则,减少人工干预
替代项目
paperless-ai、paperless-ngx 自带分类器、docspell
下一篇:mucgpt
同类项目推荐
AI_Image_Translator_Translate_Im···
开源
上传图片自动翻译文字,擦除重排一步到位
AI Image Translation Tool-An excellent translator for photos, pictures, posters, cov···
elm
开源
用大模型加速能源研究,让文献和数据不再难啃。
ELM is a collection of utilities to apply Large Language Models (LLMs) to energy res···
Open-Industry-Project
开源
浏览器里搭产线,看传送带和PLC跑起来
Browser-based industrial automation simulator: conveyors, sensors, PLCs (TypeScript,···
WinLens
开源
框选屏幕文字,译文直接盖在原位
Google Lens for your Windows desktop - translate any on-screen text, in place.
awesome-ai-services
开源
一张图看遍AI服务,快速选型不迷路
An overview of the AI-as-a-service landscape
fuzi.mingcha
开源
输入案情,快速获得法条检索和判决推理,辅助法律咨询。
夫子•明察司法大模型是由山东大学、浪潮云、中国政法大学联合研发,以 ChatGLM 为大模型底···
GenAIExamples
开源
开箱即用的企业级生成式 AI 示例流水线,快速搭建 ChatQnA 等应用
Generative AI Examples is a collection of GenAI examples such as ChatQnA, Copilot, w···
MTConnect.NET
开源
用 C# 快速搭建设备数据采集与标准接口
Fully featured .NET library in C# to build MTConnect Agent, Adapter, and Client Appl···
overlay-translator
开源
免 ROOT 屏幕实时翻译,游戏漫画即刻看懂
无需 ROOT 的开源 Android 屏幕实时翻译工具,适合游戏、视觉小说和漫画。支持端侧与云端 ···