首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >DeepSeek + Dify 实战:从零构建企业级智能体与知识库系统

DeepSeek + Dify 实战:从零构建企业级智能体与知识库系统

原创
作者头像
97java-xyz
发布于 2026-08-06 11:55:49
发布于 2026-08-06 11:55:49
1.2K0
举报

DeepSeek + Dify 实战:从零构建企业级智能体与知识库系统

在生成式 AI 爆发的当下,企业拥有大量非结构化文档(产品手册、制度文件、技术规范、客服对话),却难以被高效利用。传统搜索和人工解答耗时费力,而通用大模型又缺乏企业私有知识。检索增强生成(RAG) 结合 LLM 智能体(Agent) 成为最优解——既能利用大模型的推理能力,又能挂载企业专属数据,实现精准问答与自动化操作。

本文将基于 DeepSeek(高性能、高性价比的中文大模型)和 Dify(开源 LLM 应用开发平台),手把手构建一套完整的智能体与知识库系统。内容覆盖架构设计、模型接入、知识库搭建、Agent 工作流编排、API 集成及生产级优化,所有代码和配置均可直接落地。


一、为什么选择 DeepSeek + Dify?

1.1 DeepSeek:国产大模型的实力派

  • 性能强劲:DeepSeek-V3 在多个中文基准测试中超越 GPT-4,推理能力突出,上下文窗口达 128K。
  • 成本优势:API 价格远低于主流闭源模型,企业可大规模部署。
  • 合规安全:数据不出境,符合国内数据安全法要求。

1.2 Dify:LLM 应用开发的“瑞士军刀”

  • 全链路覆盖:内置 RAG 管道、Agent 框架、工作流编排、API 网关。
  • 开箱即用:支持主流模型(OpenAI、DeepSeek、智谱等),提供可视化 Prompt 编排。
  • 可扩展性:支持自定义工具、外部知识库对接、权限管理,适合企业级二次开发。

两者结合,可快速搭建 私有知识问答 + 任务执行 的智能体,且成本可控、部署灵活。


二、系统整体架构

代码语言:javascript
复制
┌──────────────────────────────────────────────────────────────┐
│                        前端应用层                            │
│          Web Chat / 企业微信 / 钉钉 / 自定义 API            │
└────────────────────────┬─────────────────────────────────────┘
                         │ HTTPS
┌────────────────────────▼─────────────────────────────────────┐
│                      Dify 核心服务                           │
│  ┌─────────────┐  ┌──────────────┐  ┌───────────────────┐   │
│  │  工作流引擎  │  │  Agent 编排  │  │  知识库管理(RAG)│   │
│  │  (Workflow) │  │  (Function   │  │  (文档分段/向量化)│   │
│  │             │  │   Calling)   │  │                   │   │
│  └─────────────┘  └──────────────┘  └─────────┬─────────┘   │
│                                                  │            │
│           ┌──────────────────────────────────────┘            │
│           ▼                                                   │
│  ┌───────────────────────────────────────────────────┐        │
│  │           向量数据库(Qdrant/Weaviate)           │        │
│  └───────────────────────────────────────────────────┘        │
└────────────────────────┬─────────────────────────────────────┘
                         │
┌────────────────────────▼─────────────────────────────────────┐
│                      DeepSeek API                            │
│           (Embedding + Chat Completion)                      │
└──────────────────────────────────────────────────────────────┘
  • Dify:承担应用编排、RAG 检索、Agent 决策中枢。
  • DeepSeek:提供文本生成(deepseek-chat)和嵌入(deepseek-embed)能力。
  • 向量数据库:存储企业文档的向量索引,支持相似度检索(Dify 默认内置 Qdrant,也可外接)。
  • 前端:可通过 Dify 提供的 WebApp 或 API 接入现有系统。

三、环境准备与部署

3.1 安装 Dify(Docker-Compose 方式)

代码语言:javascript
复制
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
# 修改 .env 中的相关配置(如 SECRET_KEY,数据库等)
docker-compose up -d

访问 http://localhost 即可进入 Dify 控制台,默认账号 admin / 首次注册。

3.2 获取 DeepSeek API Key

访问 DeepSeek 平台 注册并创建 API Key,记录密钥。


四、在 Dify 中接入 DeepSeek 模型

Dify 支持自定义模型供应商,我们需添加 DeepSeek 的配置。

4.1 配置模型供应商

进入 Dify 后台 → 设置 → 模型供应商 → 添加模型,选择 OpenAI-API-compatible(因为 DeepSeek 兼容 OpenAI 接口格式),填入:

  • 模型名称:deepseek-chat(或 deepseek-reasoner)
  • API 端点:https://api.deepseek.com/v1
  • API Key:刚才获取的密钥
  • 最大上下文长度:128000

同样方式添加嵌入模型:

  • 模型名称:deepseek-embed
  • API 端点:同上
  • 用途:选择 Embeddings

保存后,Dify 即可调用 DeepSeek 进行对话和向量化。


五、构建企业知识库(RAG 核心)

5.1 创建知识库

在 Dify 中,进入 知识库 菜单,点击 创建知识库,选择 DeepSeek Embedding 作为嵌入模型。

5.2 上传文档与分段策略

支持上传 PDF、Word、Markdown、TXT 等格式。关键点在于分段(Chunking)策略,直接影响检索精度:

  • 分段大小(Chunk Size):建议 500~1000 tokens,结合 DeepSeek 的 128K 上下文,可适当增大。
  • 重叠(Overlap):设置 10%~20% 重叠,避免重要信息被切分到两个片段导致丢失。
  • 预处理:可启用 清洗(去除多余换行、特殊符号)和 元数据提取(如文档标题、日期),便于过滤。

上传完成后,Dify 自动调用 DeepSeek Embedding 生成向量并存入内置 Qdrant。

5.3 检索调优

在知识库设置中,可以调整检索参数:

  • 相似度阈值(Score Threshold):只返回相似度高于 0.7 的片段,减少无关内容。
  • Top K:检索最相关的 3~5 个片段,兼顾精度与成本。
  • 重排序(Rerank):若需要更高精度,可接入外部 Rerank 模型(如 Cohere),但 DeepSeek 本身性能足够,可不启用。

六、创建智能体(Agent)与工作流

Dify 的 Agent 基于 ReAct 框架,可调用工具完成复杂任务。我们将构建一个 企业文档助手,除回答知识库问题外,还能查询天气、发送邮件等(通过自定义工具扩展)。

6.1 新建应用

进入 工作室 → 创建应用,选择 Agent 类型,命名并选择 DeepSeek 模型。

6.2 编排系统提示词

在 指令(Instruction) 中输入:

代码语言:javascript
复制
你是一个企业智能助手,拥有以下能力:
1. 基于企业知识库回答内部问题。
2. 可调用外部工具查询实时信息(如天气、邮件)。
请根据用户问题,优先从知识库中检索;若知识库无法回答,再尝试调用工具或给出建议。

6.3 添加知识库作为上下文

在 上下文(Context) 中,选择刚才创建的知识库,并设置检索参数(TopK=3,阈值=0.7)。

6.4 自定义工具(Function Calling)

Dify 支持通过 OpenAPI Schema 或 Python 代码定义工具。我们以查询天气为例:

6.4.1 编写工具描述(OpenAPI 格式)
代码语言:javascript
复制
openapi: 3.0.0
info:
  title: Weather Tool
  version: 1.0.0
servers:
  - url: https://api.weather.com
paths:
  /current:
    get:
      operationId: getCurrentWeather
      summary: 获取当前天气
      parameters:
        - name: city
          in: query
          required: true
          schema:
            type: string
          description: 城市名称(中文)
      responses:
        '200':
          description: 成功
6.4.2 在 Dify 中添加工具

进入 工具 → 自定义工具,粘贴上述 YAML,并配置真实 API 地址(可结合自己的代理服务)。

或者,使用 代码工具(Code Tool) 直接编写 Python 函数:

代码语言:javascript
复制
import requests

def get_weather(city: str) -> str:
    # 示例:使用免费天气API
    url = f"https://api.openweathermap.org/data/2.5/weather?q={city}&appid=YOUR_KEY&units=metric"
    resp = requests.get(url)
    if resp.status_code == 200:
        data = resp.json()
        return f"{city}当前温度{data['main']['temp']}℃,天气{data['weather'][0]['description']}"
    return "无法获取天气信息"

将代码粘贴到 Dify 代码工具中,并声明输入参数 city 和输出格式。

6.5 测试 Agent

在聊天界面输入:“请查询产品手册中的保修条款,并告诉我今天北京天气。”

Agent 会:

  1. 调用知识库检索“保修条款”相关内容。
  2. 同时识别出“天气”需求,自动调用天气工具。
  3. 合成最终回答,并附上引用来源。

七、应用集成与 API 调用

Dify 提供完整的 REST API,可将智能体嵌入企业微信、网站或内部系统。

7.1 获取 API 密钥

在应用详情页,点击 API 访问,生成密钥。

7.2 使用 Python SDK 调用对话

代码语言:javascript
复制
import requests

url = "https://your-dify-domain/v1/chat-messages"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
}
payload = {
    "inputs": {},
    "query": "如何申请年假?",
    "response_mode": "streaming",  # 或 "blocking"
    "user": "user_123"
}
response = requests.post(url, json=payload, headers=headers, stream=True)
for line in response.iter_lines():
    if line:
        print(line.decode())

7.3 创建知识库 API(用于动态更新)

Dify 也提供知识库管理 API,可实现文档自动入库,保持知识库实时同步。

代码语言:javascript
复制
# 上传文档至知识库
upload_url = "https://your-dify-domain/v1/datasets/{dataset_id}/documents"
files = {"file": open("new_policy.pdf", "rb")}
data = {"name": "2026年休假政策"}
resp = requests.post(upload_url, files=files, data=data, headers=headers)

通过 CI/CD 管道,可将企业新文档自动注入知识库,实现“零接触”更新。


八、生产级优化与安全

8.1 检索质量提升

  • 混合检索:Dify 支持关键词(BM25)与向量检索融合,提高召回率。
  • 查询改写:对用户问题进行同义词扩展或简化,提升检索准确性(可借助 DeepSeek 自身能力)。
  • 缓存高频问答:使用 Redis 缓存热点问题,降低 API 调用成本。

8.2 权限与审计

  • 多知识库隔离:按部门或权限创建独立知识库,并在 API 调用时传入 user 标识,结合 Dify 的 访问控制 插件进行过滤。
  • 日志记录:Dify 内置对话日志,可接入 ELK 进行审计分析,跟踪敏感数据访问。

8.3 成本控制

  • 设置 Token 限制:在应用配置中限制最大输出 Token,防止超长生成。
  • 监控用量:利用 Dify 的 统计面板 查看每日请求量和费用,设置告警阈值。

8.4 高可用部署

  • 将 Dify 容器部署在 K8s 集群,配置 HPA 自动扩缩容。
  • 向量数据库采用分布式集群(如 Qdrant 集群),保证检索性能。

九、实战案例:内部 IT 服务台智能体

我们已为某金融企业构建了一个 IT 服务台 Agent,支持:

  • 知识问答:如“VPN 如何连接”、“报销流程”。
  • 工单创建:通过调用内部工单系统 API,自动创建故障单。
  • 值班查询:对接排班表,返回当前值班人。

实现效果:每月节省 200+ 人工工时,问题解决率提升至 85%。

关键代码片段(自定义工单工具):

代码语言:javascript
复制
import requests

def create_ticket(title: str, description: str, requester: str) -> str:
    payload = {
        "subject": title,
        "description": description,
        "requester_email": requester + "@company.com"
    }
    resp = requests.post("https://internal-ticketing.com/api/tickets",
                         json=payload, headers={"Authorization": "Bearer xxx"})
    if resp.status_code == 201:
        return f"工单已创建,编号:{resp.json()['id']}"
    else:
        return "工单创建失败,请重试"

将该工具挂载到 Agent,并在提示词中说明“当用户要求创建工单时调用此工具”,即可实现端到端自动化。


十、总结与展望

本文全面展示了如何利用 DeepSeek 和 Dify 快速构建企业级智能体与知识库系统,从模型接入、知识库搭建、Agent 编排到 API 集成与优化,覆盖了落地过程中的关键环节。

技术亮点回顾:

  • DeepSeek 以低成本提供高质量生成与嵌入,是私有化部署的理想选择。
  • Dify 的模块化设计让 RAG 和 Agent 开发变得低代码甚至零代码,大幅降低门槛。
  • 结合自定义工具,智能体可与企业现有系统无缝对接,实现真正的“自动化执行”。

未来方向:

  • 引入 多模态(如图表、图像)增强知识库。
  • 基于 DeepSeek 的 长上下文 优势,探索超长文档的端到端处理。
  • 与 RPA 结合,打造更复杂的流程自动化智能体。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • DeepSeek + Dify 实战:从零构建企业级智能体与知识库系统
    • 一、为什么选择 DeepSeek + Dify?
      • 1.1 DeepSeek:国产大模型的实力派
      • 1.2 Dify:LLM 应用开发的“瑞士军刀”
    • 二、系统整体架构
    • 三、环境准备与部署
      • 3.1 安装 Dify(Docker-Compose 方式)
      • 3.2 获取 DeepSeek API Key
    • 四、在 Dify 中接入 DeepSeek 模型
      • 4.1 配置模型供应商
    • 五、构建企业知识库(RAG 核心)
      • 5.1 创建知识库
      • 5.2 上传文档与分段策略
      • 5.3 检索调优
    • 六、创建智能体(Agent)与工作流
      • 6.1 新建应用
      • 6.2 编排系统提示词
      • 6.3 添加知识库作为上下文
      • 6.4 自定义工具(Function Calling)
      • 6.5 测试 Agent
    • 七、应用集成与 API 调用
      • 7.1 获取 API 密钥
      • 7.2 使用 Python SDK 调用对话
      • 7.3 创建知识库 API(用于动态更新)
    • 八、生产级优化与安全
      • 8.1 检索质量提升
      • 8.2 权限与审计
      • 8.3 成本控制
      • 8.4 高可用部署
    • 九、实战案例:内部 IT 服务台智能体
    • 十、总结与展望
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档