DAY4 基于 OpenClaw + 飞书开放平台实现 AI 新闻推送机器人

DAY4 基于 OpenClaw + 飞书开放平台实现 AI 新闻推送机器人

DAY4 基于 OpenClaw + 飞书开放平台实现 AI 新闻推送机器人

目录

DAY4 基于 OpenClaw + 飞书开放平台实现 AI 新闻推送机器人

前  言

1 环境准备

1.1 华为云开发环境

1.2 ModelArts 代金券与模型服务

1.3 启动 OpenClaw 网关

2 飞书开放平台配置

2.1 创建企业自建应用

2.2 添加机器人能力

2.3 配置应用权限

2.4 发布应用版本

3 OpenClaw 与飞书集成

3.1 配置 OpenClaw 的飞书凭证

3.2 创建 Python 项目与长连接

3.3 配置飞书事件订阅

4 功能测试

5 收尾工作

6 总结与扩展


前  言

        在日常工作中,我们常常需要关注科技领域的最新动态,但手动浏览多个网站效率低下。本文将详细介绍如何利用 OpenClaw(一个开源的 AI 自动化框架)结合 飞书开放平台,快速搭建一个 AI 新闻推送机器人。该机器人可以自动访问指定网站,抓取科技新闻摘要,并通过飞书机器人实时推送给用户,让你不错过任何重要资讯。

1 环境准备

1.1 华为云开发环境

我们选择华为云开发者空间作为开发环境,它提供了预装的开发工具和依赖,能极大简化配置流程。

  1. 登录华为云,进入 开发者空间,创建一个新的云开发环境(在华为开发者空间中,点击菜单开发平台 —— 云开发环境 —— 开发桌面,创建云开发环境 —— 开发桌面。)。
  2. 进入环境后,桌面会预装 CodeArts IDE for PythonGitCode 等工具,我们后续将使用这些工具进行开发。

创建完成后,操作开发桌面开机,然后进入远程桌面。

1.2 ModelArts 代金券与模型服务

为了使用 OpenClaw 的 AI 能力,我们需要先开通 ModelArts 的模型服务:

  1. 在华为云控制台,进入 ModelArts > 在线推理
  2. 在 “非计划权益” 中领取 ModelArts 代金券(如截图所示,本次领取了 7 元代金券)。
  3. 点击 预置服务,选择 DeepSeek-V3.2 等模型,勾选 “我已阅读并同意”,然后点击 一键开通

开通成功后,在 “调用说明” 中获取 API 地址模型参数,并点击 “API Key 管理” 创建一个新的 API Key。

⚠️ 注意:API Key 只会显示一次,请务必复制并妥善保存,后续配置 OpenClaw 时会用到。
⚠️ 注意:API Key 只会显示一次,请务必复制并妥善保存,后续配置 OpenClaw 时会用到。

1.3 启动 OpenClaw 网关

  1. 在桌面双击运行 Moltbot(OpenClaw 的启动器)。
  2. 在弹出的终端中,输入之前创建的 API Key,然后回车。
  3. 系统会自动在后台启动 OpenClaw 网关,并在浏览器中打开控制面板(http://127.0.0.1:18789)。
  4. 在控制面板的 “Chat” 页面,你可以发送消息测试 OpenClaw 是否正常工作,例如:“请向我介绍下你自己?”。

2 飞书开放平台配置

首先,可以在华为云开发环境终端中安装飞书插件,实现OpenClaw与飞书的配置链接。

输入以下命令:

openclaw plugins install @m1heng-clawd/feishu

2.1 创建企业自建应用

  1. 访问 飞书开放平台,登录后点击 创建企业自建应用
  2. 填写应用名称(如 OpenClaw_test)和描述,选择图标后点击 创建

2.2 添加机器人能力

  1. 在应用左侧菜单,进入 应用能力 > 添加应用能力
  2. 选择 机器人 能力,点击 “添加”。

2.3 配置应用权限

为了让机器人能够接收和发送消息,我们需要配置相应的权限:

1. 进入 开发配置 > 权限管理

2. 点击 批量导入 / 导出权限,将以下 JSON 粘贴到输入框中:

{ "scopes": { "tenant": [ "contact:contact.base:readonly", "contact:user.base:readonly", "im:message", "im:message.group_at_msg:readonly", "im:message.p2p_msg:readonly", "im:message:send_as_bot", "im:resource" ], "user": [] } }

3. 点击 下一步,确认新增权限,然后点击 申请开通

4. 在弹出的 “应用身份权限可访问的数据范围” 窗口中,点击 确认

2.4 发布应用版本

1. 点击顶部创建版本,进入 应用发布 > 版本管理与发布

2. 进入 创建版本 界面,填写版本号(如 1.0.0)和更新说明,移动端和桌面端的默认能力都选择 “机器人”。

3. 点击 保存,然后 确认发布。发布成功后,应用状态会变为 “已启用”。

4. 进入 基础信息 > 凭证与基础信息,复制 App IDApp Secret,后续配置 OpenClaw 时会用到。

3 OpenClaw 与飞书集成

3.1 配置 OpenClaw 的飞书凭证

1. 在华为云环境的终端中,执行以下命令,将飞书的 App ID 和 App Secret 配置到 OpenClaw 中:

openclaw config set channels.feishu.appId "YOUR_APP_ID" openclaw config set channels.feishu.appSecret "YOUR_APP_SECRET"

2. 重启 OpenClaw 网关使配置生效:

openclaw gateway restart

3.2 创建 Python 项目与长连接

为了让飞书能实时接收 OpenClaw 的消息,我们需要建立一个长连接:

1. 打开桌面的 CodeArts IDE for Python,点击 新建工程,选择 Python,命名为 openClaw_test

2. 打开 IDE 底部的 “终端”,激活虚拟环境并安装飞书 Python SDK:

pip install lark-oapi -U

3. 验证安装:

pip show lark-oapi

4. main.py 文件中的代码替换为飞书官方提供的长连接示例代码,并将其中的 YOUR_APP_IDYOUR_APP_SECRET 替换为我们之前复制的值。

import lark_oapi as lark ## P2ImMessageReceiveV1 为接收消息 v2.0;CustomizedEvent 内的 message 为接收消息 v1.0。 def do_p2_im_message_receive_v1(data: lark.im.v1.P2ImMessageReceiveV1) -> None: print(f'[ do_p2_im_message_receive_v1 access ], data: {lark.JSON.marshal(data, indent=4)}') def do_message_event(data: lark.CustomizedEvent) -> None: print(f'[ do_customized_event access ], type: message, data: {lark.JSON.marshal(data, indent=4)}') event_handler = lark.EventDispatcherHandler.builder("", "") \ .register_p2_im_message_receive_v1(do_p2_im_message_receive_v1) \ .register_p1_customized_event("这里填入你要自定义订阅的 event 的 key,例如 out_approval", do_message_event) \ .build() def main(): cli = lark.ws.Client("YOUR_APP_ID", "YOUR_APP_SECRET", event_handler=event_handler, log_level=lark.LogLevel.DEBUG) cli.start() if __name__ == "__main__": main()

5. 点击右上角的 “运行” 按钮,启动长连接。控制台显示 connected to wss://... 即表示连接成功。

⚠️ 注意:长连接程序必须保持运行,否则飞书无法接收事件推送。

3.3 配置飞书事件订阅

1. 回到飞书开放平台,进入 开发配置 > 事件与回调

2. 在 “事件配置” 中,订阅方式选择 使用长连接接收事件,点击 保存

3. 点击 添加事件,在 “应用身份订阅” 下找到 “消息与群组”,勾选 接收消息 v2.0,然后点击 “确认添加”。

4. 再次进入 版本管理与发布,创建新版本(如 2.0.0)并发布,使事件订阅配置生效。

4 功能测试

一切配置就绪后,我们来测试新闻推送功能:

1. 打开飞书客户端,找到我们创建的机器人 OpenClaw_test

2. 发送指令:@OpenClaw_test 去访问以下两个网站 (https://www.leikeji.com/)、(https://tech.gmw.cn),有任何关于"科技"领域的新闻,立刻把最新的摘要推送给我。

3. 稍等片刻,机器人就会自动抓取新闻并推送回来,效果如下:

发送后可同时在华为云开发者空间OpenClaw客户端查看到返回信息。

5 收尾工作

测试完成后,你可以通过以下命令停止 OpenClaw 网关服务:

openclaw gateway stop

6 总结与扩展

        通过本文的实践,我们成功搭建了一个基于 OpenClaw 和飞书的 AI 新闻推送机器人。这个项目不仅展示了如何将 AI 自动化能力与企业 IM 工具无缝集成,也为我们提供了一个可扩展的框架。

Read more

从零开始:用Retinaface+CurricularFace做身份核验系统

从零开始:用Retinaface+CurricularFace做身份核验系统 你有没有遇到过这样的场景:公司前台需要快速核验访客身份,但人工登记慢、易出错;校园闸机高峰期排长队,学生刷脸进校却频频失败;或者考勤系统总把戴眼镜的同事识别成别人?这些问题背后,其实不是技术不行,而是人脸识别系统没选对——检测不准、特征不稳、部署太重。 今天要介绍的这套方案,不用从头搭环境、不用调参拼模型、不用写几百行胶水代码。它已经把RetinaFace人脸检测和CurricularFace高精度识别打包进一个镜像里,开箱就能跑通“上传照片→自动找脸→比对身份”全流程。哪怕你只懂基础Linux命令,10分钟内也能让自己的电脑变成一台专业级身份核验终端。 这不是概念演示,而是真实可交付的轻量级解决方案。它不依赖云API、不上传数据到第三方、所有计算都在本地完成,特别适合对隐私和响应速度有要求的中小场景——比如社区门禁、企业访客管理、考场身份确认、小型园区通行等。 下面我们就从最基础的操作开始,手把手带你跑通整个流程。不需要提前安装CUDA,不用查PyTorch版本兼容表,更不用在GitHub上翻三天i

30.数电设计步骤与FPGA设计的区别

30.数电设计步骤与FPGA设计的区别

数电的真值表→逻辑函数→化简→电路图,是FPGA实现的「逻辑设计层」,LUT是FPGA底层「物理实现层」的载体。 数电设计流程和FPGA的实际工作方式对比: 一、先回顾数电的经典设计流程(以2输入与非门为例) 1. 设计真值表:定义输入(A/B)和输出(Y)的逻辑关系 A B Y 0 0 1 0 1 1 1 0 1 1 1 0 1. 写逻辑函数: 2. 化简:这个函数已经最简,无需化简 3. 画电路图:用与门+非门拼接出与非门电路 二、FPGA实现同一功能的流程(LUT的角色) * 保留核心步骤:

再谈Xilinx FPGA开发的Vivado流和Vitis流

前景提要:FPGA加速计算生态系统:从Vivado到Vitis AI的全面解析 在 AMD (Xilinx) 最新的 Vitis 统一软件平台架构下,FPGA 的开发被清晰地划分为两个世界。理解这两个世界的区别,是看懂现代 FPGA 论文和技术文档的关键。 逻辑一:自底向上的“硬件构建”逻辑 (Vivado Flow) ——“我是芯片设计师,我在造一台电脑。” 这是经典的、传统的 FPGA 开发方式。 1. 核心思维 * 关注点:时钟周期、复位信号、状态机翻转、AXI 总线位宽、时序收敛 (Timing Closure)。 * 目标:生成一个 .bit 文件(Bitstream),控制 FPGA 上的每一个查找表 (LUT) 和触发器 (FF)

2026年RAG技术路线图:基于DeepSeek与Neo4j知识图谱构建企业智能体系

RAG的演进:为何图检索增强生成(GraphRAG)将主导2026年 检索增强生成(RAG)自问世以来经历了深刻变革,2026年标志着其向图检索增强生成(GraphRAG)范式的关键性转变。这一演进源于传统平面向量型RAG在满足企业级复杂推理和可靠决策支持需求方面日益凸显的局限性。 这一转型的核心驱动力是从平面向量相似性向复杂关系推理的跨越。传统RAG依赖向量嵌入来衡量查询与文档片段的语义相似性,但这种方法无法捕捉企业决策至关重要的实体、概念与事件间的复杂关联。相比之下,GraphRAG将信息构建为包含节点(实体)和边(关系)的知识图谱,使模型能够遍历并推理这些关联——解锁了平面向量RAG无法实现的多跳推理和上下文关系理解能力。 GraphRAG还解决了传统RAG的两大长期痛点:上下文窗口限制和“中间信息丢失”问题。随着企业查询日益复杂,需要更大的上下文窗口来整合相关信息,但即便是最先进的大语言模型(LLM)也存在有限的上下文容量。GraphRAG通过将结构化知识存储在外部图数据库中解决了这一问题,允许模型按需检索最相关的节点和关系,而非将大量文本塞入上下文窗口。此外,“中间信息