从文档管理到可对话知识库:个人知识库最佳实践方案

2025 年 12 月 23 日
 oser

1. RAG 个人知识库和文档管理

一般来说,有大量资料和技术文档的资产的管理,要么放本地要么丢同步盘,可持久化好一些的解决方案就是部署文档管理系统管理(如 paperless-ngx 等).

那么当文档越来越多的情况下,自己已经几乎完全忘记文档内容时,如何查询和检索便成为了一个新的挑战.

随着现在大语言模型的发展,一个新的解决方向变得可行:

让电脑“读懂”你的文档,并且可以直接用自然语言提问

这就是 RAG 知识库,目前这类方案中,anythingllm 算是在强大和简单易用性中平衡的最好的产品了,而且最重要的是,部署简单和免费.

但 anythingllm 目前专注于 RAG 方向,对于原始文档的管理查找的功能有缺失,当我想在 anythingllm 中查看和管理原文档时,发现几乎难以实现,那么今天我这里探索总结的一个方案就是:

查看管理原始文档资产,并且同时同步成 AI 时代可对话、可推理的知识库

这篇文章,就是我最终探索出来的一套结合文档管理和 RAG 知识库优点个人知识库部署实践.可以方便的在 Linux 的个人服务器或者 NAS 上运行和部署.

2. 我选择了哪些组件

Paperless-ngx:文档资产管理

选择 Paperless-ngx 的原因非常明确:

AnythingLLM: RAG 与 Workspace 的结合体

AnythingLLM 的优势在于:

Ollama:本地 LLM 模型以及 Embedder

大名鼎鼎的 Ollama 就不用多介绍了,这里我们跑两个模型,qwen3-embedding:0.6b 和 qwen3:4b,供 AnythingLLM 做 Embedder 和 LLM 使用(更加强大的 LLM 提供商很多,可以自行选择)

paper2anything:我开发的一款开源的同步工具

这个工具是我为解决以上问题开发的依据 paperless-ngx 的 tag 同步到 anythingllm 的 workspace 的工具,支持多 tag 增改删的同步,项目内有详细说明,没花几天时间写代码,只是共享一下方法并不是想要推广自己的项目,但还是欢迎使用并提 issue,求 star

项目地址:

👉 https://github.com/oserz/paper2anything

它做的事情包括:

3. 部署方法和 Docker Compose 示例


version: "3.9"

services:
  broker:
    image: redis:7
    container_name: paperless-redis
    restart: unless-stopped
    volumes:
      - /your-path/redis:/data

  db:
    image: postgres:15
    container_name: paperless-postgres
    restart: unless-stopped
    environment:
      POSTGRES_DB: paperless
      POSTGRES_USER: paperless
      POSTGRES_PASSWORD: paperless
    volumes:
      - /your-path/pgdata:/var/lib/postgresql/data

  paperless:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    container_name: paperless-ngx
    restart: unless-stopped
    depends_on:
      - db
      - broker

    ports:
      - "8888:8000"

    environment:
      # === 基础 ===
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db
      PAPERLESS_DBNAME: paperless
      PAPERLESS_DBUSER: paperless
      PAPERLESS_DBPASS: paperless

      # === 管理员(首次启动)===
      PAPERLESS_ADMIN_USER: admin
      PAPERLESS_ADMIN_PASSWORD: admin123
      PAPERLESS_ADMIN_EMAIL: admin@example.com

      # === 时区 & 语言 ===
      PAPERLESS_TIME_ZONE: Asia/Shanghai
      PAPERLESS_DEFAULT_LANGUAGE: zh-hans

      # === OCR (屏蔽可能中文的 OCR 下载失败)===
      PAPERLESS_OCR_LANGUAGE: eng #chi_sim+eng
      PAPERLESS_OCR_CLEAN: clean
      PAPERLESS_OCR_MODE: skip
      # PAPERLESS_OCR_LANGUAGES: chi_sim

      # === 文件命名(新语法)===
      PAPERLESS_FILENAME_FORMAT: "{{ created_year }}/{{ correspondent }}/{{ title }}"

      # === 性能 ===
      PAPERLESS_TASK_WORKERS: 2
      PAPERLESS_THREADS_PER_WORKER: 2

      PAPERLESS_URL: (your domain address)

    volumes:
      - /your-path/data:/usr/src/paperless/data
      - /your-path/media:/usr/src/paperless/media
      - /your-path/consume:/usr/src/paperless/consume



version: "3.9"

services:
  anythingllm:
    image: mintplexlabs/anythingllm:latest
    container_name: anythingllm
    restart: unless-stopped

    ports:
      - "3001:3001"

    environment:
      # === 基础配置 ===
      - STORAGE_DIR=/app/server/storage
      - JWT_SECRET=your_password
      - LLM_PROVIDER=ollama
      - EMBEDDING_ENGINE=ollama

      # === Ollama 配置(本机或同一 Docker 网络)===
      - OLLAMA_BASE_URL=http://your-domain-addr:11434

      # === 日志 ===
      - LOG_LEVEL=info

    volumes:
      # === 核心数据(必须迁移)===
      - /your-path/data/storage:/app/server/storage

    networks:
      - anythingllm-net
  
networks:
  anythingllm-net:
    driver: bridge

5258 次点击
所在节点    程序员
26 条回复
0nJ50k88k2IAdSC2
2025 年 12 月 23 日
不用文档了,直接问 AI 了
oser
2025 年 12 月 23 日
@vKv4nst4xHKXzH5B 有很多私有化的信息和总结 AI 是问不到的,这时候就需要做个人知识库了,简单举例,比如个人的密码本,工作上的文档
kaizceo8
2025 年 12 月 23 日
收藏下
clemente
2025 年 12 月 23 日
@oser cursor 就可以
mf2019d
2025 年 12 月 23 日
有点复杂.
oser
2025 年 12 月 23 日
@clemente 任意的 agent 都可以做本文知识问答,但是一般无法分析格式的文档(如 pdf),也无法有效托管文档资产
powerkai
2025 年 12 月 23 日
感觉不错 周末研究一下,把我家里设备的说明书都给 ai
vpsvps
2025 年 12 月 23 日
希望给个具体的部署及使用步骤
很多的 joplin 笔记需要
zyt5876
2025 年 12 月 23 日
没接触过很多没明白,想问问 LZ ,你这套对机器的性能要求,或者所你的机器是啥配置。
AnnaXia
2025 年 12 月 23 日
之前有过类似想法,收藏下
ninja543
2025 年 12 月 23 日
点赞了,想法很好,但对于懒人如我,大脑自带的 rag 就够了,狗头保命:)
LiaoMatt
2025 年 12 月 23 日
腾讯 IMA, 感觉实现了 95%的功能, 开箱即用
oser
2025 年 12 月 23 日
@vpsvps 这个部署应该算比较明了的了吧,就是服务器或者 nas 上搭个 docker 和工具简单的配置和注意事项,使用比较简单

@zyt5876 随便个机器也能跑起来,性能要求没这么高,但如果你要跑本地 llm 这种就没上限了,我的 nas 是 pve 中跑的 ubuntu,给 ubuntu 分配了 32G 内存,cpu 是 amd zen4 5600G,llm 本地跑的是 qwen3:4b,但我主要是接 deepseek
oser
2025 年 12 月 23 日
@LiaoMatt 看了一下腾讯的 ima,确实有点意思
LiaoMatt
2025 年 12 月 23 日
@oser 模型比本地部署的强, 与知识库结合的很好, 还可以共享知识库, 还有文档功能, 不收费的前提下, 非常香 了
SmithJohn
2025 年 12 月 23 日
你这是要跟谷歌的 NotebookLM 跑同一个赛道?
oser
2025 年 12 月 23 日
@SmithJohn 不是的,你要说 notebookLM,可能 anythingllm 可以类比,我只是做了一点传统文档管理和 RAG 工具的同步粘合剂的微小工作而已
xinqian
2025 年 12 月 23 日
有这个需求,收藏一下
iX8NEGGn
2025 年 12 月 23 日
开源 RAG 现在技术成熟了吗,之前试了几款,感觉都差点意思,搜出来的东西不准不全,腾讯的 ima 确实方便效果也还行,但用着不安心。
whisper1225
2025 年 12 月 23 日
@LiaoMatt 他这个自己写的文档如何导入进去

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1180567

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX