基于DeepSeek与RAGFlow快速搭建本地私有知识库:从部署到应用全指南

📅 发布时间:2026/8/21 3:59:25
基于DeepSeek与RAGFlow快速搭建本地私有知识库:从部署到应用全指南
这次我们来看一个非常实用的技术组合用 DeepSeek 大模型和 RAGFlow 开源框架快速搭建一个本地可用的个人知识库。如果你手头有大量文档、笔记、PDF想快速构建一个能精准问答的 AI 助手这个方案值得一试。它的核心思路很清晰RAGFlow 负责文档的解析、向量化存储和智能检索DeepSeek 则作为强大的“大脑”来生成最终答案。整个过程可以完全在本地或你自己的服务器上完成数据安全可控。对于开发者、研究者、内容创作者或任何需要管理大量非结构化信息的人来说这是一个能显著提升效率的工具。本文将带你从零开始在 30 分钟内完成环境搭建、服务部署、知识库创建和问答测试的全流程。我们会重点关注几个关键点硬件门槛到底高不高、Docker 部署是否顺利、如何导入你的文档、以及最终问答效果如何。无论你是刚接触 AI 应用的小白还是有一定经验的开发者都能按照步骤跑通。1. 核心能力速览在动手之前我们先快速了解这个方案的核心特性和要求判断它是否适合你。能力项说明核心组件DeepSeek (LLM) RAGFlow (RAG 引擎)主要功能文档解析、向量化存储、智能检索、基于上下文的精准问答部署方式推荐 Docker 容器化部署环境隔离一键启动硬件门槛中等。RAGFlow 服务本身对 GPU 非强制要求但解析大量复杂文档如扫描 PDF时GPU 可加速。DeepSeek API 调用依赖网络或本地部署的推理服务。显存/内存RAGFlow 服务内存建议 8GB。若本地部署 DeepSeek 模型则需根据模型规模如 7B、67B准备相应显存例如 7B 模型约需 14GB 显存。本文采用调用云端 API 方式免去本地大模型部署负担。数据安全文档解析、向量化、存储均在自有环境中完成原始文档和向量数据不出私域。仅问答时可能需向 DeepSeek API 发送检索到的文本片段可配置脱敏。是否支持 API是。RAGFlow 提供完整的 RESTful API可用于知识库管理、文档上传、问答等。是否支持批量任务是。支持批量上传文档构建知识库也支持通过 API 进行批量问答。适合场景个人知识管理、企业内部文档问答、项目研究资料库、客服知识库搭建等。从表格可以看出这个方案的优势在于功能完整、部署相对标准化、数据可控。最大的灵活性在于 LLM 的选择你可以用免费的 DeepSeek API也可以接入其他开源或商业模型。2. 适用场景与使用边界2.1 谁适合使用这个方案个人用户拥有大量 PDF、Word、Markdown 笔记希望建立一个能快速查找和问答的“第二大脑”。开发者和技术团队需要为项目集成智能文档检索能力或构建内部技术知识库。小型企业或部门希望以较低成本搭建一个安全的、基于内部文档的问答系统用于员工培训或客户支持。研究者与学生管理文献、论文并能通过自然语言快速定位相关内容和观点。2.2 能解决什么问题信息碎片化将散落在各处的文档PDF、Word、PPT、TXT、Markdown统一管理。检索效率低超越关键词匹配实现语义搜索。即使忘记确切文件名或术语也能通过描述找到相关内容。知识提取难直接从文档中提取答案并整合成连贯的回复无需人工翻阅长篇文档。数据隐私顾虑核心数据处理流程在本地完成满足对数据安全有要求的场景。2.3 不适合什么场景对实时性要求极高RAG 流程涉及检索、重排、生成多个步骤整体延迟在秒级不适合毫秒级响应的场景。极度复杂的推理或多模态理解当前方案以文本处理为主对于需要深度逻辑推理或强烈依赖图像、表格理解的复杂问题效果可能有限。完全零代码经验虽然提供了 Web 界面但初始的 Docker 部署和网络配置需要基本的命令行操作能力。2.4 合规与安全边界文档版权请确保你上传并用于构建知识库的文档拥有相应的使用权或属于原创内容避免侵犯他人知识产权。隐私信息如果文档包含个人隐私、商业秘密等敏感信息请确保在安全的网络环境中部署并合理配置 RAGFlow 的访问权限。API 使用如果使用 DeepSeek 等云端 API请注意其服务条款避免发送涉密或违法违规内容。3. 环境准备与前置条件为了让整个流程更顺畅请在开始前确认好以下环境。3.1 基础系统环境操作系统Linux (Ubuntu 20.04/22.04, CentOS 7), macOS, 或 Windows 10/11 (需安装 WSL2 或 Docker Desktop)。本文以Ubuntu 22.04为例。Docker 与 Docker Compose这是部署 RAGFlow 最推荐的方式。确保已安装并启动 Docker 服务。# 检查 Docker 版本 docker --version # 检查 Docker Compose 版本 (V2) docker compose version网络服务器或本地主机需要能正常访问互联网以下载 Docker 镜像和调用 DeepSeek API如果选择云端 API。磁盘空间建议预留 10GB 以上空间用于存放 Docker 镜像、向量数据库以及上传的文档。3.2 获取 DeepSeek API Key由于本地部署百亿参数大模型门槛较高我们优先采用调用 DeepSeek 官方 API 的方式性价比高且易于上手。访问 DeepSeek 官网 。注册并登录账号。在控制台中找到API Keys部分创建一个新的 Key。妥善保存这个 Key我们将在配置 RAGFlow 时使用。注意部分网络环境下访问 DeepSeek API 可能不稳定请确保你的部署环境能稳定连接其服务端点。3.3 端口资源检查RAGFlow 默认会占用几个端口用于其前端和后端服务。检查这些端口是否空闲如果被占用后续需要修改配置。80或8080 常用于 Web 前端。9380 RAGFlow 后端 API 服务端口。 使用以下命令检查Linux/macOSsudo lsof -i :80 sudo lsof -i :9380如果端口被占用可以考虑停止相关服务或为 RAGFlow 配置其他端口。4. 安装部署与启动方式我们将使用 Docker Compose 来部署 RAGFlow这是官方推荐且最简单的方式能自动处理所有依赖如向量数据库 Milvus、关系型数据库 MySQL 等。4.1 下载部署文件首先在一个合适的目录如~/ragflow下进行操作。# 创建项目目录并进入 mkdir -p ~/ragflow cd ~/ragflow # 下载 docker-compose 配置文件 curl -o docker-compose.yml https://raw.githubusercontent.com/infiniflow/ragflow/main/docker/docker-compose.yml如果下载失败也可以直接访问 RAGFlow 的 GitHub 仓库手动复制docker/docker-compose.yml文件内容到本地的docker-compose.yml。4.2 配置环境变量我们需要创建一个.env文件来配置关键参数特别是 DeepSeek 的 API Key。# 创建 .env 文件 cat .env EOF # 设置默认的 root 用户密码用于 MySQL 等组件 MYSQL_ROOT_PASSWORDyour_mysql_root_password_here # DeepSeek API 配置 # 填入你在第 3.2 步获取的 API Key DEEPSEEK_API_KEYsk-your-actual-deepseek-api-key-here # DeepSeek API 的基础 URL通常不需要修改 DEEPSEEK_API_BASEhttps://api.deepseek.com # RAGFlow 的密钥用于加密等操作可以自行生成一个随机字符串 RAGFLOW_SECRET_KEY$(openssl rand -hex 32) EOF重要请务必将DEEPSEEK_API_KEY的值替换为你自己的真实 Key。MYSQL_ROOT_PASSWORD也请设置为强密码。4.3 启动所有服务配置完成后使用 Docker Compose 一键启动所有服务。# 在 docker-compose.yml 所在目录执行 docker compose up -d-d参数表示在后台运行。首次执行会从 Docker Hub 拉取所有必要的镜像RAGFlow server, Milvus, MySQL, etcd等耗时取决于网络速度请耐心等待。4.4 验证服务状态启动完成后检查各容器是否正常运行。docker compose ps你应该看到所有服务ragflow-server,milvus-standalone,mysql,etcd的状态都是Up。 也可以通过日志查看启动情况# 查看 RAGFlow 主服务的日志 docker compose logs -f ragflow-server当看到类似Application startup complete.或服务监听端口的日志时说明启动成功。4.5 访问 Web 界面服务启动后在浏览器中访问 RAGFlow 的 Web 界面。地址http://你的服务器IP:8080如果部署在本地则是http://localhost:8080默认账号admin默认密码admin首次登录后系统会提示你修改密码请务必操作。5. 功能测试与效果验证登录成功后我们就进入了 RAGFlow 的操作后台。接下来我们将完成“创建知识库 - 上传文档 - 发起问答”的核心流程测试。5.1 创建知识库在左侧菜单栏点击「知识库」。点击右上角的「 创建知识库」按钮。填写知识库信息名称例如 “MyTechnicalDocs”描述可选如 “个人技术笔记和论文库”权限根据需求选择“私有”或“团队”。在「嵌入模型」和「语言模型」配置中这是我们连接 DeepSeek 的关键。嵌入模型选择BAAI/bge-large-zh-v1.5。这是一个优秀的中文文本向量化模型RAGFlow 已内置。语言模型选择「自定义」。模型类型选择OpenAI(因为 DeepSeek API 兼容 OpenAI 格式)。模型名称填写deepseek-chat。API Key填写你的 DeepSeek API Key如果.env配置正确这里可能已自动填充。API Base填写https://api.deepseek.com。点击「创建」。至此一个空的、但已配置好 DeepSeek 作为大脑的知识库就建好了。5.2 上传与解析文档现在向知识库中添加内容。准备一些测试文档如 PDF、Word 或 TXT 文件。进入刚创建的知识库详情页。点击「文档」标签页然后点击「上传文档」。选择你的测试文件上传。RAGFlow 支持批量上传。上传后文档会进入“解析”状态。RAGFlow 会自动进行文本提取从 PDF、Word 等格式中提取文字。分块将长文本按语义切割成更小的片段Chunks。向量化使用我们之前选的bge-large-zh模型将文本块转化为向量。索引将向量存入 Milvus 向量数据库供后续检索。等待所有文档状态变为“已解析”。解析速度取决于文档复杂度和服务器性能。对于纯文本速度很快对于扫描版 PDF可能稍慢。5.3 进行问答测试知识库构建完成后就可以进行核心的问答测试了。在知识库详情页点击「问答」标签页。在问答输入框中提出一个基于你上传文档内容的问题。例如如果你上传了一篇关于 Docker 的教程可以问“Dockerfile 中的 FROM 指令的作用是什么”RAGFlow 的工作流程如下检索将你的问题也转化为向量在向量数据库中搜索最相关的文本片段通常返回前 k 个如 top-5。重排/精炼对检索到的片段进行排序和精炼选取最相关的部分。生成将问题和精选的文本片段一起构造成提示词Prompt发送给 DeepSeek API。返回接收 DeepSeek 生成的答案并展示给你。观察结果答案质量答案是否准确、连贯是否基于你文档的内容引用来源RAGFlow 会在答案下方显示引用的原文片段及其所在文档点击可以定位。这是评估答案可信度的关键。响应速度感受从提问到获得答案的整体延迟。5.4 多轮与复杂问题测试尝试一些更复杂的场景检验系统的能力边界多轮对话在同一个问答界面连续提问系统是否能结合上下文理解后续问题注意RAGFlow 的上下文管理策略可能影响此效果。模糊查询问一个文档中未直接出现但可通过语义推断的问题。跨文档综合上传多个相关主题的文档问一个需要综合多篇文档信息才能回答的问题。否定与比较尝试“A 和 B 有什么区别”这类问题。通过以上测试你可以对这套个人知识库方案的效果有一个直观的认识。6. 接口 API 与批量任务Web 界面适合手动操作和测试而 API 才是集成和自动化的核心。RAGFlow 提供了完善的 REST API。6.1 API 基础信息Base URL:http://你的服务器IP:9380/v1(注意是后端端口9380不是前端的8080)。认证需要在请求头中携带 API Key。你可以在 Web 界面的「设置」-「API 密钥」中创建和管理 Key。Authorization: Bearer your_ragflow_api_key_here6.2 核心 API 调用示例以下使用curl和Python展示几个关键操作。示例1通过 API 上传文档到指定知识库假设你的知识库 ID 是kb-xxxx可以从知识库详情页的 URL 或设置中获取。curl -X POST \ http://localhost:9380/v1/knowledge_base/kb-xxxx/documents/upload \ -H Authorization: Bearer your_ragflow_api_key \ -F file/path/to/your/document.pdfimport requests api_base http://localhost:9380/v1 api_key your_ragflow_api_key kb_id kb-xxxx file_path /path/to/your/document.pdf headers {Authorization: fBearer {api_key}} with open(file_path, rb) as f: files {file: f} response requests.post( f{api_base}/knowledge_base/{kb_id}/documents/upload, headersheaders, filesfiles ) print(response.status_code) print(response.json())示例2通过 API 进行问答这是最常用的接口。curl -X POST \ http://localhost:9380/v1/chat/completions \ -H Authorization: Bearer your_ragflow_api_key \ -H Content-Type: application/json \ -d { knowledge_base_id: kb-xxxx, messages: [ { role: user, content: Docker 和虚拟机的区别是什么 } ], stream: false }import requests import json api_base http://localhost:9380/v1 api_key your_ragflow_api_key kb_id kb-xxxx headers { Authorization: fBearer {api_key}, Content-Type: application/json } payload { knowledge_base_id: kb_id, messages: [{role: user, content: Docker 和虚拟机的区别是什么}], stream: False } response requests.post( f{api_base}/chat/completions, headersheaders, datajson.dumps(payload) ) if response.status_code 200: result response.json() # 答案在 result[choices][0][message][content] print(result[choices][0][message][content]) # 引用来源在 result.get(retrievals) if retrievals in result: for ref in result[retrievals]: print(f来自文档: {ref.get(document_name)}, 内容: {ref.get(content)[:200]}...) else: print(f请求失败: {response.status_code}, {response.text})6.3 批量任务处理对于大量文档的入库或批量问答建议通过 API 编程实现并加入简单的错误重试和日志记录。批量上传遍历文档目录循环调用上传接口。注意控制并发数避免对服务器造成过大压力。批量问答准备一个问题列表循环调用问答接口将问题和答案保存到文件或数据库中。状态检查上传文档后可以定期调用文档状态查询接口确认解析是否完成。# 一个简单的批量问答示例框架 import requests import json import time def batch_qa(api_base, api_key, kb_id, questions_list, output_fileanswers.json): headers {Authorization: fBearer {api_key}, Content-Type: application/json} results [] for q in questions_list: payload { knowledge_base_id: kb_id, messages: [{role: user, content: q}], stream: False } try: resp requests.post(f{api_base}/chat/completions, headersheaders, jsonpayload, timeout60) if resp.status_code 200: answer_data resp.json() results.append({question: q, answer: answer_data}) else: results.append({question: q, error: resp.text}) # 避免请求过快 time.sleep(1) except Exception as e: results.append({question: q, error: str(e)}) with open(output_file, w, encodingutf-8) as f: json.dump(results, f, ensure_asciiFalse, indent2) print(f批量问答完成结果已保存至 {output_file})7. 资源占用与性能观察部署完成后了解系统的资源消耗情况有助于评估是否需要升级配置或进行优化。7.1 服务资源占用观察使用docker stats命令可以实时查看各容器的资源使用情况。docker compose stats或者查看所有 Docker 容器docker stats你会看到类似下面的输出关注CPU %,MEM USAGE / LIMIT,MEM %这几列。CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O abcd1234 ragflow_ragflow-server 2.5% 1.2GiB / 7.8GiB 15.4% 1.2MB / 5.1MB 0B / 0B efgh5678 ragflow_milvus-standalone 15% 800MiB / 7.8GiB 10.0% 500KB / 2.1MB 0B / 0B ...RAGFlow Server内存占用通常在 1-2GBCPU 使用率在空闲时较低文档解析和检索时会升高。Milvus向量数据库内存占用与向量数据量正相关。初始可能几百 MB随着知识库文档增多而增长。MySQL存储元数据占用相对稳定通常几百 MB。7.2 性能影响因素文档解析阶段复杂 PDF扫描版或包含大量图片的 PDF 解析耗时较长且 CPU 占用高。如果服务器有 GPURAGFlow 可以利用其加速 OCR 过程。文档数量与大小批量上传大量文档时解析和向量化是主要耗时环节。检索与问答阶段知识库规模向量数据库Milvus中存储的向量数量越多检索的耗时可能轻微增加但 Milvus 对此做了高度优化在百万级以下规模影响不大。网络延迟如果使用云端 DeepSeek API问答的整体延迟主要受网络往返时间影响。本地部署 LLM 可以消除这个延迟但会显著增加硬件成本。检索参数在知识库配置中Top K返回的文本片段数量设置得越大检索和后续处理耗时越长但可能提高答案相关性。通常 5-10 是个平衡点。7.3 如何降低资源占用和提升速度硬件层面为服务器分配足够的内存建议 8GB。如果处理大量扫描 PDF考虑使用带 GPU 的机器。配置层面调整文档解析的Chunk Size文本块大小和Overlap重叠长度。较小的块可能提高检索精度但会增加向量数量。在非高峰时段进行大批量文档的解析和入库操作。使用层面对于不再需要的旧知识库或测试库及时删除以释放 Milvus 和 MySQL 的存储空间。优化提问方式尽量具体明确可以减少系统在无关向量中检索的开销。8. 常见问题与排查方法在部署和使用过程中你可能会遇到一些问题。下表列出了常见问题及其解决方法。问题现象可能原因排查方式解决方案docker compose up -d失败1. 网络问题无法拉取镜像。2. 端口被占用。3..env文件格式错误或路径不对。1. 运行docker compose logs查看具体错误。2. 检查docker-compose.yml和.env文件是否在同一个目录。3. 使用docker compose config检查配置是否有效。1. 配置 Docker 镜像加速器。2. 修改docker-compose.yml中的端口映射如8080:80改为8081:80。3. 确保.env文件中的变量赋值没有多余空格或引号。Web 界面localhost:8080无法访问1. 服务未成功启动。2. 防火墙或安全组阻止了端口访问。3. 在服务器上部署未使用公网 IP 或域名访问。1.docker compose ps确认所有容器状态为Up。2. 在服务器本地执行curl http://localhost:8080测试。3. 检查服务器防火墙规则ufw status或firewall-cmd。1. 根据日志修复启动错误。2. 开放服务器安全组的8080端口云服务器。3. 如果是本地虚拟机检查网络模式如桥接。文档解析状态一直为“解析中”或失败1. 文档格式特殊或已损坏。2. 解析服务所需资源如内存不足。3. 嵌入模型下载失败。1. 查看 RAGFlow 服务日志docker compose logs ragflow-server。2. 尝试上传一个简单的.txt文件测试。3. 检查服务器磁盘和内存空间。1. 确保文档格式是支持的PDF, DOCX, PPTX, TXT, MD等。2. 重启相关容器docker compose restart ragflow-server。3. 为 Docker 分配更多内存资源。问答时返回“无法连接到 LLM”或超时1. DeepSeek API Key 错误或过期。2. 服务器无法访问api.deepseek.com。3. RAGFlow 中 LLM 配置错误。1. 在 Web 界面知识库设置的“语言模型”配置中测试连接。2. 在服务器上执行curl https://api.deepseek.com测试网络连通性。3. 检查.env文件中的DEEPSEEK_API_KEY是否正确。1. 在 DeepSeek 平台检查 API Key 状态和余额。2. 配置服务器网络代理或更换网络环境。3. 重新填写正确的 API Key 和 Base URL。问答答案质量差答非所问1. 检索到的文本片段不相关。2. 提示词Prompt构造可能不适合当前模型。3. 文档分块Chunk策略不合理。1. 检查问答结果中的“引用来源”看检索到的原文是否与问题相关。2. 尝试在知识库设置中调整Top K如从 3 调到 5。3. 检查文档解析时的分块大小和重叠度设置。1. 优化文档内容确保关键信息集中。2. 尝试调整分块大小如从 512 调到 256和重叠度如 50。3. 在 RAGFlow 的高级设置中可以尝试不同的“重排模型”或调整提示词模板需一定经验。API 调用返回 401 或 403 错误1. 请求头中未携带或携带了错误的 API Key。2. 该 API Key 没有对应操作的权限。1. 检查代码或 curl 命令中的Authorization头是否正确。2. 登录 Web 界面在 API 密钥管理页面确认该 Key 是否有效且权限足够。1. 确保使用Bearer 你的 API Key 的格式。2. 重新生成一个 API Key 并试用。磁盘空间不足1. 上传了大量文档向量数据和解析缓存占满空间。2. Docker 镜像和日志文件占用过多空间。1. 使用df -h查看磁盘使用情况。2. 使用docker system df查看 Docker 资源占用。1. 清理不需要的知识库和文档。2. 清理 Docker 无用资源docker system prune -a谨慎操作会删除未使用的镜像、容器等。9. 最佳实践与使用建议为了让你的个人知识库系统运行得更稳定、高效这里有一些经验性的建议。9.1 文档预处理与优化格式优先尽量上传文本清晰、可复制的 PDF 或 Word 文档。扫描版 PDF 虽然能解析但准确率和速度会下降。内容结构如果文档有清晰的标题、章节结构RAGFlow 的解析器能更好地处理有助于提高检索质量。分块策略对于技术文档适中的分块大小如 500-800 字符配合一定的重叠如 100-200 字符往往能在保持上下文连贯性和检索精度之间取得较好平衡。这需要在知识库创建或设置中调整。9.2 知识库管理分库管理不要把所有文档都塞进一个知识库。可以按主题、项目、类型建立多个知识库。例如“Python 学习笔记”、“公司规章制度”、“项目需求文档”分开建库。这样问答时针对性更强也便于管理。定期更新与清理知识库不是一次性的。定期上传新文档对于过时或错误的文档及时删除或更新。RAGFlow 支持文档的更新操作。权限控制如果有多人使用利用好团队的“读写”权限设置保护核心知识资产。9.3 系统运维数据备份定期备份你的知识库。虽然 RAGFlow 的数据保存在 Docker 卷中但最关键的其实是你的原始文档。向量库可以重建原始文档丢失则无法恢复。考虑将docker-compose.yml和.env配置文件也一并备份。日志监控关注 RAGFlow 和 Docker 的日志特别是进行大批量操作或系统升级后。docker compose logs -f是很好的实时监控工具。版本升级关注 RAGFlow 的 GitHub 发布页。升级前务必在测试环境验证并备份所有数据。升级命令通常涉及拉取新镜像并重启服务。9.4 安全与合规API Key 保管.env文件中的DEEPSEEK_API_KEY和RAGFLOW_SECRET_KEY是最高机密切勿提交到公开的代码仓库。网络暴露如果你在公网服务器部署强烈建议通过 Nginx 配置 HTTPS 反向代理并设置强密码或 IP 白名单来访问 RAGFlow 的 Web 界面8080 端口和 API 端口9380。内容审核如果构建面向公众的问答服务需考虑在问答链路中加入内容安全过滤机制避免生成不当内容。10. 总结与下一步通过以上步骤你应该已经成功搭建了一个由 DeepSeek 提供智能、RAGFlow 提供检索能力的个人知识库系统。这个方案最大的优势在于将强大的大模型能力与精准的私有知识检索相结合且整个流程在可控的私有环境中完成。最值得尝试的点快速验证想法Docker Compose 部署几乎零配置半小时内就能看到效果。数据自主可控文档处理全过程在本地无需担心敏感数据上传到第三方。灵活的 LLM 切换今天用 DeepSeek明天可以轻松换成 OpenAI、通义千问或本地部署的 Llama只需修改配置。最先应该验证的功能上传你最熟悉的一份技术文档问几个细节问题看它能否精准定位到原文。测试 API 接口尝试用 Python 脚本批量问答感受自动化集成的便利。最容易踩的坑端口冲突导致服务启动失败。DeepSeek API Key 未正确配置导致问答失败。上传不兼容或加密的 PDF 导致解析卡住。后续可以探索的方向本地 LLM 集成如果对延迟和隐私有更高要求可以研究在本地部署 DeepSeek-V2 等开源模型并修改 RAGFlow 配置指向本地推理服务。多模态扩展如果知识库包含大量图片、表格可以关注 RAGFlow 对多模态模型的支持进展。工作流自动化结合 GitHub Actions 或 CI/CD 工具实现文档的自动同步、解析和知识库更新。前端集成将 RAGFlow 的问答 API 嵌入到你自己的网站、应用或聊天工具中打造专属的智能助手。这套工具链已经为你打开了构建私有化 AI 知识库的大门。接下来就是用它去管理你的数字知识资产让信息检索从“关键词匹配”进化到“语义理解”真正提升学习和工作效率。建议收藏本文在部署和使用的过程中随时参考。