agentic_huge_data_base / wiki
页面 Paperless-ngx · 8 配置与部署·DeepWiki 中文全文译文

8 · 配置与部署(Configuration and Deployment)

文档归档与消费管道 · 聚焦本章的模块关系、源码依据与实现要点。

项目Paperless-ngx 章节8 状态全文译文 模块安装与启动、配置治理、测试、发布与运维、工作流与编排
源码线索
  • .github/workflows/ci.yml
  • .pre-commit-config.yaml
  • Dockerfile
  • docs/administration.md
  • docs/advanced_usage.md
  • docs/configuration.md
  • docs/development.md
  • docs/faq.md
  • docs/setup.md
  • docs/troubleshooting.md
模块标签
  • 安装与启动
  • 配置治理
  • 测试、发布与运维
  • 工作流与编排
  • 认证、权限与安全

章节正文

AI 与 LLM 集成

AI 与大语言模型(LLM)集成

相关源文件

本维基页面基于以下源文件生成:

  • src-ui/src/app/components/document-detail/document-detail.component.html
  • src-ui/src/app/components/document-detail/document-detail.component.scss
  • src-ui/src/app/components/document-detail/document-detail.component.spec.ts
  • src-ui/src/app/components/document-detail/document-detail.component.ts
  • src/documents/filters.py
  • src/documents/management/commands/document_llmindex.py
  • src/documents/serialisers.py
  • src/documents/tests/test_api_custom_fields.py
  • src/documents/tests/test_api_documents.py
  • src/documents/tests/test_api_filter_by_custom_fields.py
  • src/documents/views.py
  • src/paperless/settings/__init__.py
  • src/paperless/urls.py
  • src/paperless_ai/client.py
  • src/paperless_ai/embedding.py
  • src/paperless_ai/indexing.py
  • src/paperless_ai/tests/test_ai_indexing.py
  • src/paperless_ai/tests/test_client.py
  • src/paperless_ai/tests/test_embedding.py

Paperless-ngx 集成了人工智能和大语言模型(LLM),通过自动元数据建议和检索增强生成(RAG)来增强文档管理功能。该子系统允许用户利用外部大语言模型(LLM)提供商(如 OpenAI)或本地实例(通过 Ollama)来分析文档内容,并提供交互式聊天功能。

高层架构

AI 集成以 paperless_ai 模块为核心,该模块抽象了与各种大语言模型(LLM)后端的通信,并管理文档嵌入向量的向量存储。

自然语言到代码实体的映射

下图展示了面向用户的 AI 功能如何映射到底层后端实现。

AI 功能映射

Paperless-ngx · 自然语言到代码实体的映射 · 图 1
Paperless-ngx · 自然语言到代码实体的映射 · 图 1

来源: src/documents/views.py:107-166, src/paperless_ai/client.py:1-50, src/paperless_ai/indexing.py:1-40

AI 子系统组件

AI 功能分为三个主要组件:

  1. AIClient: 与大语言模型(LLM)提供商交互的统一接口。它支持 Ollama 和兼容 OpenAI API 的后端 src/paperless_ai/client.py:10-80
  2. 向量存储与嵌入向量: 文档被转换为数值向量(嵌入向量),并存储在 FAISS 索引中 src/paperless_ai/indexing.py:15-35。这使得系统能够找到相关文档片段供大语言模型(LLM)处理,从而实现检索增强生成(RAG)。
  3. 元数据建议: 使用大语言模型(LLM)分析文档文本,并根据内容建议合适的标题、通信方和标签 src/documents/views.py:112-118
数据流:从文档到 AI 响应

下图展示了文档数据如何通过 AI 管线进行处理。

AI 数据流

Paperless-ngx · 数据流:从文档到 AI 响应 · 图 2
Paperless-ngx · 数据流:从文档到 AI 响应 · 图 2

来源: src/paperless_ai/embedding.py:9-179, src/paperless_ai/indexing.py:50-120, src/paperless/settings/__init__.py:95-99

配置与管理

AI 功能通过环境变量和管理命令进行控制。关键设置包括嵌入向量后端的选择(例如 HuggingFace、OpenAI)以及大语言模型(LLM)的 API 端点 src/paperless/settings/__init__.py:91-101

组件代码引用描述
索引目录LLM_INDEX_DIR磁盘上 FAISS 向量存储的路径 src/paperless/settings/__init__.py:99
索引命令document_llmindex用于构建、更新或优化向量索引的管理命令 src/documents/management/commands/document_llmindex.py:1-50
嵌入向量模型get_embedding_model初始化已配置的嵌入向量后端的工厂函数 src/paperless_ai/embedding.py:11-100

详细子页面

如需更深入的技术细节,请参阅以下子页面:

大语言模型(LLM)后端与嵌入向量

详细介绍 AIClient 类、支持的后端(Ollama、类 OpenAI API)以及 FAISS 向量存储的管理。涵盖构建大语言模型(LLM)索引的管线以及 document_llmindex 命令。

AI 驱动的文档建议

解释 ai_suggestions API 动作背后的逻辑、文档内容如何格式化以供大语言模型(LLM)分析,以及前端如何向用户展示这些建议。

来源: src/documents/views.py:1-200, src/paperless_ai/embedding.py:1-179, src/paperless_ai/client.py:1-100