当前位置: 首页 > news >正文

LangChain+Ollama实现自动通过企业微信发消息:零成本响应快(未认证企业也可用)

前言

以“给妈妈自动发暖心问候语的本地Agent”为案例,最终成功用企业微信的API来实现消息推送。本以为很简单,结果踩了一路的坑。特别是对于未认证的个人组织企业,企业微信的种种限制让人抓狂。本文将详细记录整个过程,重点介绍接收消息服务器URL的概念,以及如何避开cpolar、路由侠等工具被识别为第三方服务商的坑。

一、本地部署方案

云端大模型(GPT / 通义 / 智谱)要 API Key、要计费、要联网。玩个小项目,奔着0成本去,就装了个Ollama,拉了个Qwen2.5:7b(通义千问的中文版,大概4.7G),本地跑起来,完全免费,断网也能用,我16G内存的笔记本CPU跑,一秒能吐五六个字,生成一句30字的问候语也就五六秒,完全够用。要是你有显卡,RTX 3060以上跑14B版本,那叫一个丝滑。

本地方案

  • 模型:Qwen2.5(7B 量化版约 4.7GB,中文能力强,通义出品)
  • 推理:Ollama 本地服务
  • 框架:LangChainChatOllama
  • 成本:0 元,断网也能跑
  • 速度:
    • 16G 内存 + CPU 跑qwen2.5:7b≈ 5 token/s(开流式可接受)
    • RTX 3060 级别显卡跑 14B ≈ 15 token/s(丝滑)
    • streaming=True逐字吐字,体感比等整段生成快很多
# 1. 装 Ollama 后拉模型ollama pull qwen2.5:7b# 2. Python 依赖pipinstalllangchain langchain-ollama requests python-dotenv
fromlangchain_ollamaimportChatOllama llm=ChatOllama(model="qwen2.5:7b",base_url="http://localhost:11434",temperature=0.7,streaming=True,# 本地模型提速关键)

💡 生成问候语这种短文本任务,7B 完全够用,别一上来就冲 32B,家用机跑不动。

二、企业微信发消息的两条路

通道是否需要 access_token未认证企业能否用限制
群机器人 Webhook❌ 不需要✅ 直接用只能发到群,不能私信
自建应用message/send✅ 需要⚠️ 能建但要可信 IP未认证企业卡死在 IP 白名单

我们的目标只是“给妈妈发句话”,我选用群机器人 Webhook 方案,简便快捷

三、未认证企业的「会触发60020报错 」(重点避坑)

不要选择自建应用:

{"errcode":60020,"errmsg":"not allow to access from your ip"}

含义:调用方公网 IP 不在「企业可信 IP」里。

未认证企业的输入框是灰的,你需要二选一完成以下信息,才能配置白名单IP:

  1. 配「可信域名」(要同主体备案域名 → 个人组织没有)
  2. 配「接收消息服务器 URL」解灰

接收消息服务器 URL 到底是什么?

不是你去访问企微,是企微反过来访问你

  • 方向:企微 Client → 你的 Flask Server
  • 场景归类:等价于「网站搭建 / 公网暴露本机 Web 路由」,不是远程桌面、不是游戏联机
  • 验证流程:
    1. 后台填http://公网/wecom/callback
    2. 企微发GET ?msg_signature=&timestamp=&nonce=&echostr=密文
    3. 你的服务验签、解密、原样返回明文 echostr(1 秒内)
    4. 验证通过 → 可信 IP 输入框解灰

我查了一些第三方工具生成可用的服务器IP,例如cpolar / 路由侠

它们给的共享二级域名:

  • *.cpolar.top
  • *.rXX.cpolar.top
  • *.luyouxia.net

企微在保存 URL 时会查域名备案主体,发现主体是「cpolar 公司 / 路由侠公司」,不是你的企业主体,直接拦截:

该域名主体为第三方服务商,请使用企业主体域名

实测结论(未认证个人组织):

  • cpolar 随机域名 → ❌ 被拦
  • 路由侠.net共享域名 → ❌ 被拦
  • ngrok-free → ❌ 被拦

四、成功方案:群消息 Webhook

企业微信建一个「你+妈妈」的内部群(必须是企业微信内部群,不是微信外部群)→ 群设置 → 群机器人 → 添加 → 复制 Webhook:

https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxx-xxxx-xxxx

如何获取Webhook:点击群聊界面,点击右上角三个点,进入“消息推送”,添加一条消息推送后自动生成Webhook地址。
无权限,网页端进入企业微信后台管理,点击“应用管理”,进入自建栏下的“消息推送”应用,在“可创建消息推送的成员”处添加目标用户即可。

因为是调用本地大模型,代码里就不需要连接大模型API的相关参数了( token / corp_id / 可信 IP):

importos,requestsfromdotenvimportload_dotenv load_dotenv()WECOM_WEBHOOK=os.environ["WECOM_WEBHOOK"]defpush_to_mom(text:str)->str:r=requests.post(WECOM_WEBHOOK,json={"msgtype":"text","text":{"content":text}},timeout=5).json()return"✅ 已发送"ifr.get("errcode")==0elsef"❌{r}"

五、LangChain 创建Agent (本地 Qwen2.5 驱动)

完整代码:

importosfromdatetimeimportdateimportdotenvimportrequests
http://www.cnnetsun.cn/news/3864271.html

相关文章:

  • Env Guard:让浏览器一眼分清生产、测试和开发环境
  • C语言网络爬虫实战:libcurl解析与免积分下载工具开发
  • 拒绝套路,重庆外贸网站建设公司揭秘如何用技术打通全球生意经
  • 如何判断一个SCI方向到底还能不能做
  • 新手必看的虚拟主机网站建设步骤详解:从域名注册到服务器配置全流程攻略
  • 华为、H3C、锐捷交换机配置命令大全:从基础到实战
  • Ansible密码登录失败排查指南:从SSH认证原理到实战解决
  • MyBatis源码深度解析:从动态代理到SQL执行链的完整Debug指南
  • 10个提升技术博客SEO流量的实战技巧
  • KKCE: 基于 HTTP 响应头反解的网站测速深度诊断法-快快测
  • 计算机毕业设计之东明中学实验仪器管理系统
  • C语言实战:从零构建控制台彩票与刮刮乐模拟器
  • 涪陵网站建设公司哪家靠谱?揭秘本地建站背后的真相与避坑指南
  • 揭开Claude Code的面纱
  • Office 2016纯净安装与KMS激活全攻略:从获取镜像到稳定部署
  • LaTeX数学公式排版全攻略:从基础语法到复杂结构实战
  • 2024年网站建设就业前景解析:小白如何入行并实现高薪逆袭?
  • RT-Thread Studio下STM32F4+LAN8720以太网驱动与TCP服务器实战指南
  • 好使的母排冲剪机哪个牌子公司好
  • 2026职业心理风险测评推荐排行:五大平台批量筛查效率与数据合规度测评
  • 科华UPS电源生产厂家核心竞争力及选型策略深度解析
  • 企业只说“想做一套系统”,技术团队如何把模糊需求转成可开发方案?
  • Python视频压缩实战:从码率计算到自动化批量处理
  • 深度解析重庆商城网站建设:从底层架构到运营增长的完整指南
  • 2026上海橡塑展怎么挑选展台设计搭建公司?认准高品质搭建服务商
  • 基于LLM Agent的智能告警排查:从人肉运维到自动化根因定位
  • 告别面子工程,做有温度的政务服务:2024年电子政务网站建设的深度思考与落地指南
  • 迪康U盘:企业数据安全的“电子警察”
  • 从零做一个自己的 CLI
  • 微信小游戏性能优化实战:从启动加速到内存管理的全链路指南