DeepSeek 自动化工作流实战:从 API 接入到配置文件落地指南
DeepSeek 工作流自动化教程|附配置文件
在大模型快速普及的今天,很多团队已经不再满足于“打开网页、输入提示词、复制结果”这种单点式使用方式,而是希望把 AI 能力真正嵌入到日常工作流中:自动总结会议纪要、自动撰写日报周报、自动分析客服工单、自动生成代码审查意见、自动归档知识库内容,甚至与企业内部系统联动,形成可持续运行的自动化流程。
DeepSeek 作为近年来非常受关注的大模型之一,具备较强的中文理解、推理、代码生成和文本处理能力。相比单纯把它当作聊天工具使用,将 DeepSeek 接入自动化工作流,才能真正释放它在企业办公、内容生产、研发协作和数据分析中的价值。
本文将以“从零搭建 DeepSeek 工作流自动化”为主题,系统介绍工作流设计思路、常见应用场景、接口调用方式、自动化编排方法,并附带可直接参考的配置文件示例,帮助你快速搭建属于自己的 AI 自动化系统。
一、什么是 DeepSeek 工作流自动化?
所谓 DeepSeek 工作流自动化,指的是将 DeepSeek 的大模型能力接入到一个自动化流程中,让它在特定触发条件下自动完成某些任务。
举个简单例子:
当团队成员在飞书、企业微信或钉钉中提交一段会议记录后,系统自动调用 DeepSeek,对会议内容进行总结,提取待办事项,并把结果发送到指定群聊或同步到项目管理工具中。
这个过程不需要人工反复复制粘贴,也不需要每次都重新设计提示词。只要流程配置完成,系统就可以按照预设规则持续运行。
一个典型的 DeepSeek 自动化工作流通常包括以下几个部分:
- 触发器:什么时候启动流程,例如收到一封邮件、提交一个表单、定时执行、代码仓库发生变更等。
- 数据输入:输入给 DeepSeek 的内容,例如文本、工单、会议记录、日志、代码片段等。
- 提示词模板:告诉模型要完成什么任务、以什么格式输出。
- 模型调用:通过 API 调用 DeepSeek。
- 结果处理:解析模型输出,提取字段,进行格式化。
- 后续动作:发送通知、写入数据库、生成文档、提交到系统等。
通过这种方式,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。一般流程为:
- 登录 DeepSeek 开放平台;
- 创建或进入 API 管理页面;
- 生成一个新的 API Key;
- 妥善保存,不要直接暴露在前端页面或公开仓库中。
建议将 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.6 或 0.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 参与工作”的关键一步。