上一篇 下一篇 分享链接 返回 返回顶部

DeepSeek 自动化工作流实战:从 API 接入到配置文件落地指南

发布人:慈云数据-客服中心 发布时间:14小时前 阅读量:0

DeepSeek 工作流自动化教程|附配置文件

在大模型快速普及的今天,很多团队已经不再满足于“打开网页、输入提示词、复制结果”这种单点式使用方式,而是希望把 AI 能力真正嵌入到日常工作流中:自动总结会议纪要、自动撰写日报周报、自动分析客服工单、自动生成代码审查意见、自动归档知识库内容,甚至与企业内部系统联动,形成可持续运行的自动化流程。

DeepSeek 作为近年来非常受关注的大模型之一,具备较强的中文理解、推理、代码生成和文本处理能力。相比单纯把它当作聊天工具使用,将 DeepSeek 接入自动化工作流,才能真正释放它在企业办公、内容生产、研发协作和数据分析中的价值。

本文将以“从零搭建 DeepSeek 工作流自动化”为主题,系统介绍工作流设计思路、常见应用场景、接口调用方式、自动化编排方法,并附带可直接参考的配置文件示例,帮助你快速搭建属于自己的 AI 自动化系统。


一、什么是 DeepSeek 工作流自动化?

所谓 DeepSeek 工作流自动化,指的是将 DeepSeek 的大模型能力接入到一个自动化流程中,让它在特定触发条件下自动完成某些任务。

举个简单例子:

当团队成员在飞书、企业微信或钉钉中提交一段会议记录后,系统自动调用 DeepSeek,对会议内容进行总结,提取待办事项,并把结果发送到指定群聊或同步到项目管理工具中。

这个过程不需要人工反复复制粘贴,也不需要每次都重新设计提示词。只要流程配置完成,系统就可以按照预设规则持续运行。

一个典型的 DeepSeek 自动化工作流通常包括以下几个部分:

  1. 触发器:什么时候启动流程,例如收到一封邮件、提交一个表单、定时执行、代码仓库发生变更等。
  2. 数据输入:输入给 DeepSeek 的内容,例如文本、工单、会议记录、日志、代码片段等。
  3. 提示词模板:告诉模型要完成什么任务、以什么格式输出。
  4. 模型调用:通过 API 调用 DeepSeek。
  5. 结果处理:解析模型输出,提取字段,进行格式化。
  6. 后续动作:发送通知、写入数据库、生成文档、提交到系统等。

通过这种方式,DeepSeek 不再只是一个聊天机器人,而是成为企业数字化流程中的一个“智能节点”。


二、适合自动化的 DeepSeek 使用场景

在正式配置之前,我们先了解哪些任务特别适合接入 DeepSeek。

1. 会议纪要自动生成

企业每天都会产生大量会议内容。人工整理会议纪要不仅耗时,而且容易遗漏重点。通过 DeepSeek,可以自动完成:

  • 会议摘要生成;
  • 关键结论提取;
  • 待办事项整理;
  • 责任人与截止时间识别;
  • 输出标准化会议纪要格式。

例如输入一段会议转录文本,模型可以输出如下结构:

## 会议主题
产品需求评审会议

## 核心结论
1. 首页改版方案通过初审;
2. 搜索功能需要补充异常状态设计;
3. 数据埋点方案由研发与数据团队共同确认。

## 待办事项
| 事项 | 负责人 | 截止时间 |
|---|---|---|
| 补充搜索异常状态设计 | 张三 | 本周五 |
| 梳理首页埋点方案 | 李四 | 下周一 |

2. 客服工单智能分类与回复

客服系统每天可能收到大量用户反馈,其中既有 bug,也有咨询、投诉和功能建议。DeepSeek 可以帮助客服团队实现:

  • 自动识别工单类型;
  • 判断情绪倾向;
  • 提取用户核心问题;
  • 推荐回复话术;
  • 标记是否需要人工介入。

例如系统收到用户反馈:

“我昨天充值了会员,但是今天打开还是显示普通用户,订单号是 202406xxxx,希望尽快处理。”

DeepSeek 可以输出:

{
  "category": "支付与会员问题",
  "sentiment": "焦急",
  "priority": "高",
  "summary": "用户充值会员后权益未生效",
  "need_human": true,
  "suggested_reply": "您好,非常抱歉给您带来不便。我们已记录您的订单号,将尽快核查会员权益状态,请您稍后留意处理结果。"
}

3. 内容生产与审核

对于运营、市场、新媒体团队来说,DeepSeek 可以承担大量初稿生成和文本优化工作,例如:

  • 根据关键词生成文章大纲;
  • 改写营销文案;
  • 生成小红书、公众号、微博文案;
  • 检查错别字;
  • 统一品牌语气;
  • 对敏感表达进行提示。

不过需要注意,内容生产类流程最好保留人工审核环节,尤其是对外发布的内容。AI 可以提高效率,但不能完全替代编辑判断。


4. 研发辅助与代码审查

DeepSeek 在代码理解和生成方面也有较强应用价值,可以接入研发流程:

  • 自动生成代码注释;
  • 分析 Pull Request 改动;
  • 提出潜在 bug;
  • 生成单元测试;
  • 解释报错日志;
  • 自动生成接口文档。

例如,当 Git 仓库中有新的 Pull Request 时,自动化工具可以获取代码 diff,然后调用 DeepSeek 输出代码审查建议,并自动评论到 PR 页面。


5. 知识库自动整理

企业知识库经常面临资料分散、格式不统一、内容重复等问题。DeepSeek 可以用于:

  • 将长文档压缩成摘要;
  • 从文档中提取 FAQ;
  • 自动生成标签;
  • 判断文档所属分类;
  • 将零散记录整理成结构化知识库文章。

这类场景非常适合与 Notion、飞书文档、语雀、Confluence 等工具结合。


三、整体技术架构

一个实用的 DeepSeek 工作流自动化系统,可以采用如下架构:

触发器
  ↓
自动化平台 / 后端服务
  ↓
数据预处理
  ↓
DeepSeek API
  ↓
结果解析
  ↓
业务系统 / 通知渠道 / 数据库

你可以根据实际情况选择不同的实现方式:

方案一:使用自动化平台

适合不想写太多代码的用户,例如:

  • n8n;
  • Zapier;
  • Make;
  • Pipedream;
  • 自建低代码平台。

优点是配置直观,适合快速搭建原型;缺点是复杂逻辑和私有化能力有限。

方案二:使用后端服务

适合有研发能力的团队,可以用 Python、Node.js、Go 等语言实现接口服务,再与业务系统集成。

优点是灵活、可控、安全性更好;缺点是需要一定开发和维护成本。

方案三:混合方式

常见做法是:简单流程交给 n8n 等自动化平台,核心业务逻辑和敏感数据处理放到自研后端服务中。

这种方式兼顾了效率和安全性,适合大多数中小团队。


四、准备工作

在正式配置前,需要准备以下内容。

1. DeepSeek API Key

你需要在 DeepSeek 官方平台获取 API Key。一般流程为:

  1. 登录 DeepSeek 开放平台;
  2. 创建或进入 API 管理页面;
  3. 生成一个新的 API Key;
  4. 妥善保存,不要直接暴露在前端页面或公开仓库中。

建议将 API Key 存放在环境变量中,例如:

export DEEPSEEK_API_KEY="sk-xxxxxxxxxxxxxxxx"

如果你使用 Docker 或 n8n,也可以通过 .env 文件管理。


2. 确认模型名称

常见可用模型包括类似:

deepseek-chat
deepseek-reasoner

其中:

  • deepseek-chat 更适合通用对话、总结、改写、分类等任务;
  • deepseek-reasoner 更适合需要复杂推理、规划和多步骤分析的任务。

具体模型名称请以官方文档为准。


3. 设计提示词模板

提示词是工作流自动化质量的核心。一个好的提示词模板应该包括:

  • 角色设定;
  • 任务目标;
  • 输入内容;
  • 输出格式;
  • 约束条件;
  • 错误处理规则。

例如会议纪要提示词:

你是一名专业的会议纪要助手。
请根据用户提供的会议内容,生成结构化会议纪要。

要求:
1. 使用中文输出;
2. 不要编造未出现的信息;
3. 如果负责人或截止时间没有明确提到,请填写“未明确”;
4. 输出 Markdown 格式;
5. 包含:会议摘要、关键结论、待办事项、风险点。

会议内容如下:
{{meeting_text}}

五、使用 Python 调用 DeepSeek API

下面给出一个基础版 Python 示例,用于调用 DeepSeek 并生成会议纪要。

1. 安装依赖

pip install requests python-dotenv

2. 创建 .env 文件

DEEPSEEK_API_KEY=sk-xxxxxxxxxxxxxxxx
DEEPSEEK_BASE_URL=https://api.deepseek.com
DEEPSEEK_MODEL=deepseek-chat

3. 编写调用脚本

新建文件 deepseek_workflow.py

import os
import requests
from dotenv import load_dotenv

load_dotenv()

API_KEY = os.getenv("DEEPSEEK_API_KEY")
BASE_URL = os.getenv("DEEPSEEK_BASE_URL", "https://api.deepseek.com")
MODEL = os.getenv("DEEPSEEK_MODEL", "deepseek-chat")

def call_deepseek(prompt: str):
    url = f"{BASE_URL}/v1/chat/completions"

    headers = {
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json"
    }

    payload = {
        "model": MODEL,
        "messages": [
            {
                "role": "system",
                "content": "你是一个严谨、专业、擅长结构化输出的 AI 工作流助手。"
            },
            {
                "role": "user",
                "content": prompt
            }
        ],
        "temperature": 0.3
    }

    response = requests.post(url, headers=headers, json=payload, timeout=60)
    response.raise_for_status()

    data = response.json()
    return data["choices"][0]["message"]["content"]

if __name__ == "__main__":
    meeting_text = """
    今天我们讨论了官网首页改版方案。产品认为新版首屏需要突出核心卖点,
    设计团队会在本周五前提供两个视觉方案。研发提到,如果新增动态效果,
    需要额外两天开发时间。运营建议在首页增加用户案例模块,方便转化。
    最后决定先完成视觉方案评审,再确定是否加入动态效果。
    """

    prompt = f"""
你是一名专业的会议纪要助手。
请根据以下会议内容生成结构化会议纪要。

要求:
1. 使用 Markdown 格式;
2. 不要编造会议中未出现的信息;
3. 待办事项需要包含事项、负责人、截止时间;
4. 如果信息没有明确出现,请写“未明确”。

会议内容:
{meeting_text}
"""

    result = call_deepseek(prompt)
    print(result)

运行:

python deepseek_workflow.py

六、配置文件示例:通用 DeepSeek 工作流

为了方便维护,建议不要把所有参数都写死在代码中,而是通过配置文件管理不同工作流。

下面是一个可参考的 YAML 配置文件。

workflow.config.yaml

app:
  name: deepseek-workflow
  version: "1.0.0"
  timezone: Asia/Shanghai

deepseek:
  base_url: https://api.deepseek.com
  api_key_env: DEEPSEEK_API_KEY
  model: deepseek-chat
  temperature: 0.3
  timeout: 60

workflows:
  meeting_summary:
    enabled: true
    trigger:
      type: webhook
      path: /webhook/meeting-summary
      method: POST
    input:
      field: meeting_text
      max_length: 12000
    prompt:
      system: |
        你是一个专业的会议纪要助手,擅长从会议内容中提取结论、待办事项和风险。
      user_template: |
        请根据以下会议内容生成结构化会议纪要。

        输出要求:
        1. 使用 Markdown 格式;
        2. 不要编造未出现的信息;
        3. 如果负责人或截止时间没有明确提到,请填写“未明确”;
        4. 必须包含:会议摘要、关键结论、待办事项、风险点。

        会议内容:
        {{meeting_text}}
    output:
      format: markdown
      send_to:
        - type: webhook
          url: https://example.com/callback/meeting

  ticket_classifier:
    enabled: true
    trigger:
      type: webhook
      path: /webhook/ticket-classifier
      method: POST
    input:
      field: ticket_content
      max_length: 6000
    prompt:
      system: |
        你是一个客服工单分析助手,擅长判断用户问题类型、情绪和处理优先级。
      user_template: |
        请分析以下客服工单,并严格输出 JSON。

        JSON 字段包括:
        - category:工单类别
        - sentiment:用户情绪
        - priority:优先级,取值为 high、medium、low
        - summary:一句话总结
        - need_human:是否需要人工介入,布尔值
        - suggested_reply:建议回复话术

        工单内容:
        {{ticket_content}}
    output:
      format: json
      send_to:
        - type: webhook
          url: https://example.com/callback/ticket

  weekly_report:
    enabled: true
    trigger:
      type: cron
      schedule: "0 18 * * 5"
    input:
      source: database
      query_name: weekly_tasks
    prompt:
      system: |
        你是一个项目管理助手,擅长根据任务记录生成清晰、客观的周报。
      user_template: |
        请根据以下任务记录生成本周工作周报。

        要求:
        1. 分为本周完成、进行中事项、风险与阻塞、下周计划;
        2. 语言简洁正式;
        3. 不夸大成果;
        4. 使用 Markdown 格式。

        任务记录:
        {{task_records}}
    output:
      format: markdown
      send_to:
        - type: email
          recipients:
            - manager@example.com
            - team@example.com

这个配置文件同时定义了三个工作流:

  • meeting_summary:会议纪要生成;
  • ticket_classifier:客服工单分类;
  • weekly_report:每周五自动生成周报。

实际开发中,你可以通过读取配置文件动态创建不同任务,而不必为每个工作流重复写一套代码。


七、基于配置文件的 Python 实现思路

下面给出一个简化版实现,用于读取 YAML 配置并调用 DeepSeek。

安装依赖

pip install pyyaml requests python-dotenv

示例代码

import os
import yaml
import requests
from dotenv import load_dotenv

load_dotenv()

def load_config(path="workflow.config.yaml"):
    with open(path, "r", encoding="utf-8") as f:
        return yaml.safe_load(f)

def render_template(template: str, variables: dict):
    result = template
    for key, value in variables.items():
        result = result.replace("{{" + key + "}}", str(value))
    return result

def call_deepseek(config: dict, system_prompt: str, user_prompt: str):
    deepseek_config = config["deepseek"]
    api_key = os.getenv(deepseek_config["api_key_env"])

    url = f'{deepseek_config["base_url"]}/v1/chat/completions'

    payload = {
        "model": deepseek_config["model"],
        "messages": [
            {"role": "system", "content": system_prompt},
            {"role": "user", "content": user_prompt}
        ],
        "temperature": deepseek_config.get("temperature", 0.3)
    }

    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    }

    response = requests.post(
        url,
        headers=headers,
        json=payload,
        timeout=deepseek_config.get("timeout", 60)
    )
    response.raise_for_status()
    data = response.json()

    return data["choices"][0]["message"]["content"]

def run_workflow(workflow_name: str, variables: dict):
    config = load_config()
    workflow = config["workflows"][workflow_name]

    if not workflow.get("enabled", False):
        raise RuntimeError(f"workflow {workflow_name} is disabled")

    system_prompt = workflow["prompt"]["system"]
    user_template = workflow["prompt"]["user_template"]
    user_prompt = render_template(user_template, variables)

    return call_deepseek(config, system_prompt, user_prompt)

if __name__ == "__main__":
    result = run_workflow(
        "meeting_summary",
        {
            "meeting_text": "本次会议讨论了新版官网设计,设计团队周五前提交方案,研发评估动态效果工作量。"
        }
    )

    print(result)

这段代码虽然简单,但已经具备了工作流自动化的基本骨架:

  • 通过配置文件管理模型参数;
  • 通过配置文件管理提示词;
  • 支持多个工作流;
  • 支持变量替换;
  • 支持统一调用 DeepSeek。

后续可以在此基础上扩展 Webhook、定时任务、日志、权限控制和结果回调。


八、使用 n8n 搭建 DeepSeek 自动化流程

如果你不想从零开发,也可以使用 n8n 这类自动化工具搭建流程。n8n 的优势是节点式配置,适合快速连接不同系统。

1. 基础流程

以“Webhook 接收会议文本,并调用 DeepSeek 生成纪要”为例,流程如下:

Webhook Trigger
  ↓
Set Node
  ↓
HTTP Request Node
  ↓
Function Node
  ↓
Webhook Response / Send Message

2. HTTP Request 节点配置

在 n8n 中添加 HTTP Request 节点,配置如下:

{
  "method": "POST",
  "url": "https://api.deepseek.com/v1/chat/completions",
  "authentication": "none",
  "headers": {
    "Authorization": "Bearer {{$env.DEEPSEEK_API_KEY}}",
    "Content-Type": "application/json"
  },
  "body": {
    "model": "deepseek-chat",
    "messages": [
      {
        "role": "system",
        "content": "你是一个专业的会议纪要助手。"
      },
      {
        "role": "user",
        "content": "请根据以下会议内容生成结构化会议纪要:{{$json.meeting_text}}"
      }
    ],
    "temperature": 0.3
  }
}

3. 结果提取

DeepSeek 返回结果通常位于:

choices[0].message.content

你可以在 Function 节点中提取:

return [
  {
    json: {
      summary: $json.choices[0].message.content
    }
  }
];

然后再发送到飞书、钉钉、企业微信、邮箱或数据库。


九、提示词模板设计技巧

工作流自动化和普通聊天最大的区别在于:自动化需要稳定输出,而不是每次自由发挥。

因此提示词模板要尽量明确。

1. 明确角色

例如:

你是一名专业的客服质检专家。

比单纯写“帮我分析一下”更稳定。

2. 明确输出格式

如果后续需要程序解析,建议要求输出 JSON:

请严格输出 JSON,不要输出 Markdown,不要添加解释文字。

并给出字段说明。

3. 明确禁止编造

在总结、纪要、分析类任务中,必须加入:

不要编造输入内容中没有出现的信息。
如果信息缺失,请填写“未明确”。

4. 控制模型温度

自动化场景通常不需要过强创造性,建议设置:

temperature: 0.1 ~ 0.4

内容创作类可以适当提高,例如 0.60.8

5. 给出示例

如果你希望输出更稳定,可以在提示词中加入示例:

输出示例:
{
  "category": "支付问题",
  "priority": "high",
  "summary": "用户反馈支付后权益未生效"
}

十、工作流安全与稳定性建议

在企业环境中使用 DeepSeek 自动化时,除了“能跑起来”,还要考虑安全和稳定性。

1. 不要泄露 API Key

不要把 API Key 写在前端代码、公开 Git 仓库或明文文档中。建议使用:

  • 环境变量;
  • 密钥管理服务;
  • Docker Secret;
  • Kubernetes Secret。

2. 对输入内容做长度限制

大模型上下文长度有限,同时过长输入也会增加成本。建议对输入文本设置最大长度,例如:

max_length: 12000

超出部分可以先截断,或者分段总结后再汇总。

3. 增加重试机制

API 请求可能因为网络、限流或服务波动失败。建议增加:

  • 超时设置;
  • 自动重试;
  • 指数退避;
  • 错误日志记录。

4. 保留人工审核

对外发布、法律合规、财务决策、医疗建议等高风险场景,不建议完全自动化。可以让 DeepSeek 输出建议,再由人工确认。

5. 记录调用日志

建议记录以下信息:

  • 工作流名称;
  • 调用时间;
  • 输入摘要;
  • 模型名称;
  • token 消耗;
  • 返回结果;
  • 错误信息。

这样方便后续排查问题和优化成本。


十一、完整 .env 配置示例

下面是一个推荐的环境变量配置文件:

# DeepSeek API 配置
DEEPSEEK_API_KEY=sk-xxxxxxxxxxxxxxxx
DEEPSEEK_BASE_URL=https://api.deepseek.com
DEEPSEEK_MODEL=deepseek-chat

# 服务配置
APP_ENV=production
APP_PORT=8080
LOG_LEVEL=info

# 回调地址
MEETING_CALLBACK_URL=https://example.com/callback/meeting
TICKET_CALLBACK_URL=https://example.com/callback/ticket

# 邮件配置
SMTP_HOST=smtp.example.com
SMTP_PORT=465
SMTP_USER=robot@example.com
SMTP_PASSWORD=your-password

如果你使用 Docker,可以将 .env 文件与 docker-compose.yml 配合使用。


十二、Docker Compose 配置示例

下面是一个简化的 Docker Compose 配置,适合部署一个 DeepSeek 工作流服务。

version: "3.9"

services:
  deepseek-workflow:
    image: python:3.11-slim
    container_name: deepseek-workflow
    working_dir: /app
    volumes:
      - ./app:/app
      - ./workflow.config.yaml:/app/workflow.config.yaml
    env_file:
      - .env
    command: >
      sh -c "pip install -r requirements.txt && python main.py"
    ports:
      - "8080:8080"
    restart: unless-stopped

对应的 requirements.txt

requests
python-dotenv
pyyaml
fastapi
uvicorn

如果你想把工作流做成 Webhook 服务,可以使用 FastAPI。


十三、FastAPI Webhook 示例

下面是一个简化版接口服务:

from fastapi import FastAPI, Request
from pydantic import BaseModel
from workflow_runner import run_workflow

app = FastAPI()

class MeetingRequest(BaseModel):
    meeting_text: str

@app.post("/webhook/meeting-summary")
def meeting_summary(req: MeetingRequest):
    result = run_workflow(
        "meeting_summary",
        {
            "meeting_text": req.meeting_text
        }
    )

    return {
        "success": True,
        "result": result
    }

class TicketRequest(BaseModel):
    ticket_content: str

@app.post("/webhook/ticket-classifier")
def ticket_classifier(req: TicketRequest):
    result = run_workflow(
        "ticket_classifier",
        {
            "ticket_content": req.ticket_content
        }
    )

    return {
        "success": True,
        "result": result
    }

启动服务:

uvicorn main:app --host 0.0.0.0 --port 8080

测试调用:

curl -X POST http://localhost:8080/webhook/meeting-summary \
  -H "Content-Type: application/json" \
  -d '{"meeting_text":"今天讨论了产品首页改版,设计周五前提交方案,研发下周评估开发周期。"}'

十四、成本优化建议

当工作流开始稳定运行后,成本控制也很重要。

1. 减少无效调用

在调用 DeepSeek 前,先判断输入是否为空、是否重复、是否过短。例如用户只输入“好的”“收到”,就不需要调用模型。

2. 分层处理

简单分类任务可以使用较短提示词和较低温度;复杂分析任务再使用更强模型。

3. 缓存结果

对于相同输入,可以缓存模型返回结果,避免重复调用。

4. 压缩上下文

长文档可以先分段摘要,再汇总摘要,而不是一次性把全部内容传给模型。


十五、常见问题

1. 为什么模型输出不是标准 JSON?

可能是提示词不够明确。建议加入:

请严格输出 JSON,不要输出任何解释、注释或 Markdown。

同时在程序中增加 JSON 解析失败后的重试逻辑。

2. 为什么总结内容会出现不存在的信息?

需要在提示词中强调:

不要编造输入中没有出现的信息。
无法判断的内容请写“未明确”。

此外,输入内容本身也要尽量清晰。

3. 工作流是否可以完全无人值守?

对于低风险场景可以,例如内部摘要、自动分类、标签生成。但对外发布、财务、法律、医疗、重大业务决策等场景,建议保留人工审核。

4. 能否同时支持多个模型?

可以。你可以在配置文件中为不同工作流设置不同模型,例如总结用 deepseek-chat,复杂推理用 deepseek-reasoner


十六、总结

DeepSeek 工作流自动化的核心,不只是“调用一次 API”,而是把模型能力嵌入到稳定、可复用、可监控的业务流程中。一个成熟的自动化方案应当包含触发器、输入处理、提示词模板、模型调用、结果解析、后续动作和日志监控。

如果你是个人用户,可以先从会议纪要、周报生成、内容改写等简单场景开始;如果你是团队或企业,可以进一步把 DeepSeek 接入客服系统、研发流程、知识库和项目管理工具中。

本文提供的配置文件、Python 示例、n8n 配置和 Docker Compose 示例,已经覆盖了从原型到部署的关键环节。你可以在此基础上根据自己的业务需求扩展更多工作流,例如合同摘要、日报生成、销售线索分析、舆情监控、代码审查等。

真正高效的 AI 使用方式,不是让人不断适应工具,而是让工具主动进入流程。把 DeepSeek 接入自动化工作流,正是从“使用 AI”走向“让 AI 参与工作”的关键一步。

目录结构
全文