企业微信+Dify=Chatops?


1.背景与目标

1.1 需求背景

作为DevOps工程师面临的效率困境:

  1. 权限集中导致的流程阻塞

  • 生产环境发布权限需严格管控,所有正式版本发布需经本人手动操作
  • 日均处理发布请求20+次,单次人工操作耗时3-5分钟
  • 传统操作平台体验短板
    企业微信+Dify=Chatops?

  • 1.2 核心目标

    • 实现自动化人机协作,用聊天的方式实现自动化运维

    2. 环境准备

    2.1 企业微信配置

    企业微信文档地址:https://developer.work.weixin.qq.com/document/path/90238

    • 应用创建与权限配置

      企业微信+Dify=Chatops?
      企业微信+Dify=Chatops?

    • 消息接口配置
      企业微信+Dify=Chatops?
    • 回调服务部署 
      企业微信文档地址:https://developer.work.weixin.qq.com/tutorial/detail/38
      python加解密库下载: https://developer.work.weixin.qq.com/devtool/introduce?id=10128

    本文代码链接: https://github.com/AYYQ127/wecome-dify-chatops

    • 启动服务(启动前需要安装requirements.txt内容)
      企业微信+Dify=Chatops?
    只有在启动服务成功后,才能保存企业微信的内容,因为企微自己会验证接口状态,当然中间还需要nginx代理,将域名代理到对应的回调服务的端口。
    server {    listen 443 ssl http2;    server_name chatops.aaa.bbb;
        error_log /data2/www/log/nginx/chatops.aaa.bbb-443.error.log;
        location / {        proxy_pass http://10.37.2.152:9000;        include proxy.conf;    }
    }

    2.2 Dify工作流设置

    工作流创建

    企业微信+Dify=Chatops?


    代码执行1

        脚本工作原理:通过判断输入变量是否合法,匹配到相应的流程,分别执行代码2和代码3,或直接结束。

    代码执行2

        脚本工作原理:通过prometheus接口,查询pod监控数据,返回结果

    代码执行3

        脚本工作原理:通过jenkins接口,触发构建任务执行。

    接口对接

    企业微信+Dify=Chatops?


    企业微信+Dify=Chatops?

    3. 应用消息发送

    这里需要用到企业ID和应用的secret还有应用的agentID。
    企业微信文档地址:https://developer.work.weixin.qq.com/document/path/90236 分为两步,第一步获取accresstoken;第二步构建消息体,并发送消息。
    企业微信服务器在五秒内收不到响应会断掉连接,如果dify后面接入LLM,需要启用异步的方式处理,否则不会返回消息。

    async def _process_and_send_msg(user, wecomtextContent):
        """真正的异步任务"""
        try:
            # 调用 Dify 工作流
            content = await asyncio.to_thread(dify.run_workflow, 'difyuser', wecomtextContent)

            # 调试信息
            print("Content:", content)

            # 获取并清理文本内容
            text_content = content['data']['outputs']['text']
            text_content = text_content.replace("```""").strip()
            # 调试信息
            print(text_content)

            # 异步发送企业微信应用消息
            await asyncio.to_thread(wecom_send_msg.send_app_msg, user, text_content)

        except Exception as e:
            print(f"异步处理消息出错: {e}")

    在dify中有自己的消息返回格式,需要严格遵守这种格式,修改脚本中函数返回方式

    def main(arg1: str, arg2: str) -> dict:
        return {
            "result": arg1 + arg2,
        }

    4. 典型场景实现

    4.1 智能运维场景

    • 服务器状态监控

      企业微信+Dify=Chatops?
    • 自动构建发版处理

      企业微信+Dify=Chatops?

    5. 接入Deepseek

    • 工作流变化
      企业微信+Dify=Chatops?
    • 发送消息
      企业微信+Dify=Chatops?

      前沿技术大模型技术新闻资讯

      刚刚!小米手机可以养小龙虾🦞了

      2026-4-27 4:27:16

      企业落地新闻资讯智能营销

      荣耀3天发了1.4万条视频,微博被AI“霸屏”了?

      2026-4-27 4:29:23

      0 条回复 A文章作者 M管理员
        暂无讨论,说说你的看法吧
      购物车
      优惠劵
      搜索