需完成本地文档批量导入、向量模型选型与嵌入配置:一、部署Dify并启用知识库功能;二、配置本地文档导入通道;三、选择并接入本地向量嵌入模型;四、自定义文档分块策略与元数据注入;五、启用多租户隔离与权限校验机制。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

如果您希望在企业环境中使用 Dify 构建专属知识库,需完成本地文档批量导入、向量模型选型与嵌入配置等核心环节。以下是实现该目标的具体操作路径:
一、部署 Dify 服务并启用知识库功能
Dify 默认以开源方式提供 Web UI 和 API 服务,知识库模块依赖后端向量数据库及嵌入模型支持,需确保服务启动时已开启 RAG 相关组件。确认环境变量中 KNOWLEDGE_BASE_ENABLED 设置为 true,并挂载持久化存储路径用于文档索引保存。
1、克隆官方仓库:执行 git clone https://github.com/langgenius/dify.git。
2、进入项目目录并切换至稳定发布分支:git checkout v0.13.0。
3、修改 .env 文件,将 KNOWLEDGE_BASE_ENABLED=true 和 VECTOR_STORE=weaviate 同时设为启用状态。
4、运行 docker-compose up -d 启动全部服务,等待 weaviate 容器健康状态变为 passing。
二、配置本地文档导入通道
Dify 支持通过 Web 界面上传或 API 批量注入文档,企业级场景推荐使用 CLI 工具或 Python SDK 实现结构化导入,避免人工操作遗漏元数据字段。所有文档将被切片、提取标题与段落层级,并生成唯一 document_id 供后续溯源。
1、安装 dify-cli 工具:pip install dify-cli。
2、执行登录命令:dify login --api-key your_admin_api_key。
3、创建知识库实例:dify knowledge-base create --name "enterprise_hr_policy" --description "人力资源制度文档集合"。
4、批量导入 PDF/DOCX/TXT 文件:dify document upload --kb-id kb-abc123 --file-path ./docs/hr/ --recursive。
三、选择并接入本地向量嵌入模型
为保障数据不出域及推理可控性,建议弃用默认的 OpenAI text-embedding-3-small,改用本地部署的 sentence-transformers 模型。Dify 支持 Hugging Face 格式模型直连,需提前下载模型权重并映射至容器内路径。
1、下载模型至宿主机:wget https://huggingface.co/sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2/resolve/main/pytorch_model.bin -P /opt/models/paraphrase-multilingual-MiniLM-L12-v2/。
2、修改 docker-compose.yml,在 dify-api 服务下添加 volumes 映射:- /opt/models:/app/models。
3、在 .env 中设置 EMBEDDING_MODEL_NAME=sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2。
4、重启 dify-api 容器使模型加载生效,日志中出现 “Loaded embedding model from /app/models/...” 即表示成功。
四、自定义文档分块策略与元数据注入
通用分块易导致合同条款、技术参数等关键信息被截断,需按文件类型设定差异化 chunk_size 和 chunk_overlap。同时,强制注入业务标签(如部门、密级、生效日期)可提升后续检索过滤精度。
1、编辑 knowledge_base/document_loader.py,在 load_pdf 方法中插入 custom_metadata = {"department": "IT", "level": "confidential"}。
2、将 PDF 解析器的 chunk_size 参数由 500 调整为 200,overlap 设为 50,适配法律条文类长句结构。
3、对 Excel 表格类文档启用 tabular 分块模式:在 upload 请求体中传入 { "process_rule": { "mode": "automatic", "rules": { "pre_processing_rules": [{"type": "remove_extra_spaces"}, {"type": "remove_urls"}], "segmentation": {"separator": "\\n\\n", "max_tokens": 150} } } }。
4、调用 /v1/knowledge-bases/{kb_id}/documents 接口时,在请求头中加入 X-Embedding-Provider: local。
五、启用多租户隔离与权限校验机制
企业知识库必须限制跨部门访问,Dify 通过 Workspace + App + Dataset 三级权限模型实现控制。每个知识库绑定唯一 workspace_id,且仅允许该工作区下的应用调用其向量检索接口。
1、在管理后台创建独立 workspace:Settings → Workspaces → New Workspace,命名为 “Finance_KB”。
2、进入该 workspace 后新建知识库,此时生成的 kb_id 自动归属 finance 租户上下文。
3、为应用分配 dataset 权限时,仅勾选 Finance_KB 下的知识库,取消勾选其他 workspace 的全部条目。
4、验证权限:使用非 finance workspace 的 API Key 调用 /v1/chat-messages 接口并指定 finance kb_id,响应返回 403 Forbidden: Knowledge base not accessible in current workspace。










