Paperless-ngx 怎么启用 LLM 索引让文档聊天基于相似文档检索回答

Paperless-ngx 怎么启用 LLM 索引让文档聊天基于相似文档检索回答 Paperless-ngx 怎么启用 LLM 索引让文档聊天基于相似文档检索回答【免费下载链接】paperless-ngxA community-supported supercharged document management system: scan, index and archive all your documents项目地址: https://gitcode.com/GitHub_Trending/pa/paperless-ngx如果你已经在运行 Paperless-ngx想让顶栏的文档聊天Document chat基于相似文档检索来回答问题需要启用两个东西AI 总开关加 LLM 后端以及让LLM 索引基于向量索引的 RAG生效的 embedding 后端。这两部分都默认关闭只在你显式配置后才工作。本文适用于 Docker Compose、单容器或裸机部署的现有 Paperless-ngx 实例。一个必须知道的边界启用这些功能后文档内容以及元数据会发送到你配置的 LLM 后端。如果后端是远程托管服务文档会离开你的服务器并可能产生费用如果在意隐私应选本地后端Ollama 或自托管的 OpenAI 兼容网关。文档见 AI features。第一步启用 AI 并配置 LLM 后端所有 AI 设置都可以用PAPERLESS_AI_*环境变量提供也可以在后台Settings → Application Configuration里设置数据库中的值优先于环境变量见 configuration.md 的 AI 一节。最低要求是PAPERLESS_AI_ENABLED— 总开关默认false必须设为truePAPERLESS_AI_LLM_BACKEND— 必填取值ollama本地运行或openai-likeOpenAI 本身或任何 OpenAI 兼容 APIPAPERLESS_AI_LLM_MODEL— 后端使用的模型。不指定时openai-like默认gpt-3.5-turboollama默认llama3.1openai-like后端通常需要PAPERLESS_AI_LLM_API_KEY和/或PAPERLESS_AI_LLM_ENDPOINTOllama后端则要求PAPERLESS_AI_LLM_ENDPOINT指向你的 Ollama 服务器。一个全本地Ollama的最小配置示例PAPERLESS_AI_ENABLEDtrue PAPERLESS_AI_LLM_BACKENDollama PAPERLESS_AI_LLM_MODELllama3.1 PAPERLESS_AI_LLM_ENDPOINThttp://ollama-server:11434如果改用 OpenAI 兼容的远程 API把PAPERLESS_AI_LLM_BACKEND设为openai-like并配置对应的模型名与PAPERLESS_AI_LLM_API_KEY。这一步完成后AI 建议Suggest 控件已经可用但文档聊天还没有检索能力——那需要 LLM 索引。第二步设置 embedding 后端以启用 LLM 索引设置 embedding 后端即开启LLM 索引它是你所有文档的向量索引支撑 RAG启用后AI 建议会基于相似的已有文档文档聊天也能检索到相关上下文。索引只有在AI 已启用并且设置了 embedding 后端两个条件同时满足时才会构建。PAPERLESS_AI_LLM_EMBEDDING_BACKEND— 取值huggingface完全本地、ollama或openai-likeOpenAI 兼容 embeddings API默认NonePAPERLESS_AI_LLM_EMBEDDING_MODEL— 不指定时按后端取默认值openai-like为text-embedding-3-smallhuggingface为sentence-transformers/all-MiniLM-L6-v2ollama为embeddinggemmaPAPERLESS_AI_LLM_EMBEDDING_ENDPOINT— 可选不设置时 embedding 请求复用PAPERLESS_AI_LLM_ENDPOINT。在上面的 Ollama 示例基础上补一行即开启索引PAPERLESS_AI_LLM_EMBEDDING_BACKENDollama注意huggingface本地 embedding 会在首次使用时把模型下载到 Paperless 数据目录因此首次运行需要网络访问和一定的磁盘空间。改完环境变量后按你的部署方式让配置生效Docker 部署重启容器裸机部署重启各服务。第三步手动构建索引索引默认由任务调度器按PAPERLESS_LLM_INDEX_TASK_CRON默认10 2 * * *每天一次自动增量更新但首次启用功能、或更换 embedding 后端/模型后应手动执行rebuild从数据库中的全部文档从头构建。管理命令语法为见 administration.md 的 Managing the LLM (AI) index 一节document_llmindex {rebuild,update,compact,migrate}rebuild从头构建索引首次启用或更换后端/模型时使用update增量索引新增和变更的文档这是定时任务执行的内容compact回收空间并优化磁盘上的向量存储。按部署方式执行命令调用方式见 administration.md 的 Management utilities 一节。/path/to/paperless请替换为你实际的 paperless 检出目录Docker Composepaperless 运行中cd /path/to/paperless docker compose exec webserver document_llmindex rebuild裸机cd /path/to/paperless/src python3 manage.py document_llmindex rebuild文档明确提示这些命令在 AI 未启用或未配置 embedding 后端时没有任何效果。所以如果 rebuild 跑完却没有索引效果先回到第一、二步检查PAPERLESS_AI_ENABLED和PAPERLESS_AI_LLM_EMBEDDING_BACKEND是否都正确配置。验证用顶栏聊天提问LLM 索引启用后验证方式是直接打开界面顶栏top app toolbar的聊天控件提问它根据当前视图在单篇文档和跨多篇文档两种模式间切换回答中会附带它所依据的源文档链接你可以顺着链接核对答案确实来自你的文档。如果聊天能给出带源文档链接的回答说明 LLM 索引与检索链路已经工作。之后新增/变更的文档会由每日定时任务自动增量索引进来想立即刷新可手动跑document_llmindex update向量存储占用异常时可跑compact回收空间。升级与维护时的注意事项document_llmindex migrate用于迁移索引结构若索引 schema 已是最新则为 no-op每次升级后运行都安全见 administration.md 的升级步骤。更换 embedding 后端或模型后旧向量与新向量不可比需要重新rebuild。可选项按需调整均见 configuration.mdPAPERLESS_AI_LLM_EMBEDDING_CHUNK_SIZE默认1024embedding 后端拒绝大输入或截断影响检索质量时调低、PAPERLESS_AI_LLM_CONTEXT_SIZE默认8192、PAPERLESS_AI_LLM_REQUEST_TIMEOUT默认120秒本地或慢推理服务超时调大、PAPERLESS_AI_LLM_OUTPUT_LANGUAGE不设置时跟随用户界面语言。安全边界Paperless-ngx 把文档内容作为不可信数据传给 LLM默认允许解析到私有/回环地址的 AI 端点方便本地后端需要阻断时可把PAPERLESS_AI_LLM_ALLOW_INTERNAL_ENDPOINTS设为false。LLM 功能不替换内置的非 LLM 匹配与建议系统两者并存。完成以上配置与 rebuild 后聊天即为基于 RAG 的检索式回答先由向量索引找到相似文档再由 LLM 结合检索到的上下文作答并给出源文档链接供核对。【免费下载链接】paperless-ngxA community-supported supercharged document management system: scan, index and archive all your documents项目地址: https://gitcode.com/GitHub_Trending/pa/paperless-ngx创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考