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

Arduino UNO Q 板载 Nanobot 自动化编程指南之五

介绍一下飞书和看图片识别功能,这是Nanobot原作没有的功能。本来笔者想让Nanobot可以看图纸识别管脚的接法,又想试试多模态大模型的能力就用识别甲骨文和古画的题跋来考试一下它的能力,功能实现之后,被它出色的表现叹服了。它也比手机中大多数的AI App要本领高强了,让普通人具有了古文字专家的能力。可以做到文科和理科双修。

一、飞书通道集成

(1)工作原理

nanobot 使用 WebSocket 长连接 与飞书通信,无需公网 IP 或 Webhook 配置。

飞书服务器 ←WebSocket长连接→ nanobot

(2)配置方法

在 ~/.nanobot/config.json 中配置:

{

"channels": {

"feishu": {

"enabled": true,

"appId": "cli_xxxxxxxxxxxx",

"appSecret": "xxxxxxxxxx",

"encryptKey": "",

"verificationToken": "",

"allowFrom": [],

"reactEmoji": "THUMBSUP"

}

}

}

(3)前置条件

1. 在 https://open.feishu.cn 创建企业自建应用

2. 启用机器人能力

3. 订阅事件:im.message.receive_v1

4. 获取 App ID 和 App Secret

(4)支持的消息类型

(5)功能特性

- 自动回复表情:收到消息后自动点赞确认

- Markdown 渲染:自动转换为飞书卡片

- 表格支持:Markdown 表格转为交互式表格

- 媒体文件:支持发送图片、文件

二、甲骨文/古画识别

介绍一下飞书和看图片识别功能,这是Nanobot原作没有的功能。

一、飞书通道集成

工作原理

nanobot 使用 WebSocket 长连接 与飞书通信,无需公网 IP 或 Webhook 配置。

飞书服务器 ←WebSocket长连接→ nanobot

配置方法

在 ~/.nanobot/config.json 中配置:

{

"channels": {

"feishu": {

"enabled": true,

"appId": "cli_xxxxxxxxxxxx",

"appSecret": "xxxxxxxxxx",

"encryptKey": "",

"verificationToken": "",

"allowFrom": [],

"reactEmoji": "THUMBSUP"

}

}

}

前置条件

1. 在 https://open.feishu.cn 创建企业自建应用

2. 启用机器人能力

3. 订阅事件:im.message.receive_v1

4. 获取 App ID 和 App Secret

支持的消息类型

功能特性

- 自动回复表情:收到消息后自动点赞确认

- Markdown 渲染:自动转换为飞书卡片

- 表格支持:Markdown 表格转为交互式表格

- 媒体文件:支持发送图片、文件

二、甲骨文/古画识别

(1)技术架构

功能特性

甲骨文识别:

- 逐字识别甲骨文字形

- 给出每个字的释读结果

- 看不清的字标注 "□"

古画/书法识别:

- 识别所有题跋文字

- 识别落款、印章文字

- 提取完整文字内容

金石铭文:

- 识别碑刻、铜器铭文

- 自动搜索权威资料进行解读

(2)使用方式

用户在飞书中发送图片后,nanobot 会:

1. 自动下载图片到本地 (~/.nanobot/media/)

2. 调用 recognize_image 工具识别

3. 使用网络搜索查询相关权威资料

4. 返回专业解读,然后把下载的图片删除

示例对话

用户:[发送一张甲骨文图片]

助手:【识别文字】

逐字释读:

1. 王 - 象形字,表示王权

2. 祀 - 祭祀之意

...

【权威解读】

这是一片商代卜辞,内容关于...

(3) 配置要求

阿里的这款kimi-k2.5可以完成识别要求,初期笔者调试时,visionTemperature设置为0.1,结果出来的结果全部方框,后来值调到0.3能够解析出文字。

{

"agents": {

"defaults": {

"visionModel": "dashscope_vision/kimi-k2.5",

"visionMaxTokens": 8192,

"visionTemperature": 0.3

}

},

"providers": {

"dashscope_vision": {

"apiKey": "sk-sp-xxxxxxxx",

"apiBase": "https://coding.dashscope.aliyuncs.com/v1"

}

}

}

(4) Nanobot 中看图识别甲骨文的核心实现。主要分为两部分:

1. 图像识别工具 (image_recognition.py) """Image recognition tool for ancient paintings and oracle bones. """ import base64 import httpx from nanobot.agent.tools.base import Tool # Use DashScope Kimi K2.5 for vision recognition DASHSCOPE_API_KEY = "sk-sp-*************" DASHSCOPE_API_BASE = "https://coding.dashscope.aliyuncs.com/v1" DASHSCOPE_VISION_MODEL = "kimi-k2.5" class ImageRecognitionTool(Tool): """Recognize text from ancient Chinese paintings or oracle bones.""" name = "recognize_image" description = "Recognize text from images of ancient Chinese paintings or oracle bones." async def execute(self, image_path: str, **kwargs) -> str: """Recognize text from image.""" # 读取并编码图片 image_data = Path(image_path).read_bytes() b64_image = base64.b64encode(image_data).decode() # 关键 Prompt:识别甲骨文/古画 prompt = """请识别这张图片中的所有文字内容。 如果是古画/书法: - 识别所有题跋、落款、印章文字 - 直接输出文字,不要分析 如果是甲骨文: - 逐字识别甲骨文字 - 给出每个字的释读 - 直接输出,不要分析 只输出识别到的文字,不要添加任何分析或推测。看不清的字标注"□"。""" result = await self._call_api(headers, b64_image, mime_type, prompt) return f"【图片路径】{image_path}\n\n【识别文字】\n{result}" --- 2. 主循环处理逻辑 (loop.py:684-731) # 检测到图片时,使用 Kimi API 识别 if msg.media: logger.info("Image detected, using Kimi K2.5 for recognition...") recognized_texts = [] for image_path in msg.media: if image_path.endswith(('.jpg', '.jpeg', '.png')): from nanobot.agent.tools.image_recognition import ImageRecognitionTool recognizer = ImageRecognitionTool() result = await recognizer.execute(image_path=image_path) recognized_texts.append(result) if recognized_texts: recognized_content = "\n\n".join(recognized_texts) # 构建带自动搜索的 Prompt current_message = ( f"{recognized_content}\n\n" "【任务】这是图片识别结果。请:\n" "1. 先展示识别的文字内容\n" "2. 根据识别内容提取关键词,搜索验证(甲骨文搜合集编号,古画搜作者作品)\n" "3. 对比官方内容,给出结论\n" "4. 格式:**原文** / **释读** / **主题** / **背景**\n\n" "最多搜索2次,给出完整答案。" ) --- 流程总结 用户发图片 → Kimi K2.5 识别文字 → 提取关键词 → 搜索验证 → 输出结论 特点: - 使用 Kimi K2.5 视觉模型(识别能力强) - 支持甲骨文和古画/书法两种模式 - 自动搜索验证(甲骨文搜合集编号) - 输出格式统一:原文/释读/主题/背景

三,给它看古画,展示出非常专业的效果

http://www.jsqmd.com/news/547492/

相关文章:

  • CASS10.1与鸿业软件协同处理道路平纵横数据实战指南
  • 基于cartographer算法的自主导航系统仿真设计 移动机器人系统具备定位、建图及路径规划功能
  • Windows系统实战:OpenClaw+Qwen3.5-9B自动化办公环境搭建
  • 新手零基础入门:跟着快马ai生成的centos7安装图文教程轻松搭建第一台linux服务器
  • Slurm集群搭建避坑指南:搞定Munge认证服务与MySQL的正确姿势
  • 别再折腾Hadoop了!Windows 11上用Anaconda+PySpark 3.5.1搞定本地数据分析(附避坑清单)
  • OpenClaw浏览器自动化:GLM-4.7-Flash驱动的智能搜索与数据采集
  • 我把OpenCode连上了微信ClawBot
  • LVGL图片加载优化:如何用缓存技术让JPG动画播放流畅度提升100%
  • Android Perfetto 系列 6:为什么是 120Hz?高刷新率的优势与挑战
  • Go语言中的Mutex:并发安全的守护者
  • ViGEmBus虚拟手柄驱动技术解析:解决PC游戏控制器兼容性问题的完整方案
  • python-flask-djangol框架的汽车维修保养管理系统
  • Python编译为WASM后内存暴涨8倍?:资深编译器工程师手把手教你用wasm-opt+custom allocator精准控损
  • 智谱AI创始人唐杰:通往无限机器的AGI之路
  • RC滤波器设计原理与嵌入式系统应用
  • 5G与TSN融合网络中的确定性通信:挑战与前沿调度算法解析
  • OpenClaw安全审计:Qwen3-32B镜像操作日志分析与可视化
  • OpenClaw调试技巧:nanobot任务失败排查
  • Hive与Ceph整合:分布式存储大数据方案
  • 想了解欧拉5参数配置?这篇文章给你讲得明明白白!
  • 深入解析GEM5 McPAT NoC功耗模型:从arbiter电容计算到微架构关联
  • GD32F307双CAN模块避坑手册:为什么初始化CAN1前必须配置CAN0?
  • 基于西门子PLC的矿井通风控制系统(含IO表、PLC引脚图、程序) PLC程序设计,价格便宜
  • OpenClaw跨平台同步:GLM-4.7-Flash配置在多设备复用
  • OpenClaw深度优化:Qwen3.5-4B-Claude模型参数调优实战
  • AI逆向|逆向反混淆练习平台第一题加密参数并获取数据
  • 低温质子交换膜燃料电池COMSOL冷启动仿真模型
  • KiCanvas免费在线KiCAD查看器:如何在浏览器中轻松查看电路设计文件
  • 出光 AP100 0W-20 机油核心技术解析 多维度性能升级的技术逻辑与实测验证