需配置deepseek模型并构建双阶段扫描工作流:先在dify中添加具备model:read权限的api密钥并测试连接,再创建「codesec-scan-and-refactor」工作流,含文本输入、llm调用(执行owasp漏洞识别与修复建议)、条件分支及代码节点生成patch,支持手动、gitlab webhook或ci自动触发,最终返回json结果。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让程序员在提交代码前自动识别潜在安全漏洞并获得可落地的重构建议,而不是等测试阶段才暴露问题。
准备DeepSeek模型接入与权限配置
登录 Dify 云端控制台(https://cloud.dify.ai/signin)或私有化部署实例,进入「模型配置」页面。
在「大模型供应商」列表中选择 DeepSeek,点击「添加 API Key」,粘贴你从 DeepSeek 官方平台获取的 【有效且未过期的 sk-xxx 私钥】。注意:该密钥必须拥有 model:read 权限,否则后续节点将无法调用推理能力。
保存后点击「测试连接」,看到返回 status: ok 才表示模型通道已就绪。若提示 401 错误,请立即检查密钥是否复制完整、是否被空格截断。
构建双阶段扫描工作流
新建工作流 → 选择「空白工作流」→ 命名为「CodeSec-Scan-and-Refactor」。
第一步:拖入一个「文本输入」节点,命名为「Raw Code Input」,设置其为必填项,用于接收待检测的源代码片段或 Git Diff 内容。
第二步:添加一个「LLM 节点」,选择刚配置好的 DeepSeek 模型,将「Raw Code Input」的输出作为该节点的输入变量。
第三步:在 LLM 节点中写入精准提示词(Prompt),内容如下:
你是一个专注代码安全的资深 SAST 工具工程师。请严格按以下顺序执行:
① 识别代码中所有符合 OWASP Top 10 的漏洞类型(如 SQL 注入、硬编码密钥、XSS、反序列化等),逐条列出位置(行号+函数名)和风险等级(高/中/低);
② 对每个高危漏洞,提供一行可直接替换的修复代码;
③ 若无高危漏洞,仅输出「SAFE」,禁止添加任何解释性文字。
第四步:添加一个「条件分支」节点,判断上一步输出是否包含「SAFE」字符串。若为真,走「安全路径」;若为假,走「修复路径」。
第五步:在「修复路径」末端接入一个「代码节点」,使用 Python3 编写轻量逻辑——将 LLM 输出中所有「修复代码」行提取出来,按原始文件结构拼接成 patch 格式,并包裹在 ```diff 块中,确保能被 git apply 直接消费。
绑定触发方式与交付出口
方法一:手动触发
保留默认「手动运行」开关,在工作流右上角点击「发布」,生成专属 URL。程序员可将此链接嵌入 IDE 插件侧边栏,粘贴代码后一键扫描。
方法二:GitLab Webhook 自动触发
在工作流设置中开启「Webhook 触发」,复制生成的 endpoint 地址 → 登录 GitLab 项目 Settings → Webhooks → 粘贴地址,勾选「Push events」和「Merge request events」→ 添加。此时每次 push 或 MR 提交都会自动携带 diff 内容触发扫描。
方法三:CI 集成(推荐)
在 Jenkins 或 GitHub Actions 中,于 build 步骤后插入 curl 命令:curl -X POST $DIFY_WEBHOOK_URL -H "Content-Type: application/json" -d '{"inputs":{"raw_code_input":"'"$(git diff HEAD~1)"'}}'。这一步必须放在单元测试之后、部署之前,确保只对实际变更代码做审计。
所有路径最终都连接到一个「HTTP 输出」节点,返回 JSON 格式结果:{ "status": "VULNERABLE", "findings": [...], "patch": "..." } 或 { "status": "SAFE" }。










