跳到主要内容

AI Chat 对话

AI Chat 是 NeoMind 的会话式接口——你用自然语言告诉它想做什么,LLM 理解意图、调用工具、返回结果。它既能查询设备状态,也能创建规则、搭建仪表板、触发通知。

它解决的问题是:你不需要记住任何 CLI 命令、API 路径或界面操作路径。「查一下机房温度、超过 35 度建个告警规则」这样的需求,过去要分别去设备页、规则页操作,现在一句话即可——因为 Chat 背后接的是与 CLI、API 完全同一套工具体系(见内置工具一览)。

前置条件

  • 已配置至少一个 LLM 后端(Ollama 或云端)
  • 已接入至少一台 设备(否则 Chat 只能闲聊)

界面概览

点击左侧导航的 AI Chat(对话图标)进入会话界面:

AI Chat 主界面 — 会话列表、欢迎页、推荐问题、输入框

界面分为三个区域:

区域说明
左侧 · 会话列表管理多个会话(新建 / 切换 / 搜索 / 删除)。每个会话独立上下文
中间 · 对话区显示对话消息、工具调用过程、AI 回复
底部 · 输入区LLM 模型选择器、图片上传按钮、文本输入框、发送按钮

新会话初始页面会显示推荐问题(如"Check current online device status"),点击即可快速发起对话,无需手打。

工具调用机制

当你发送消息后,AI 不是直接回答——它会理解意图 → 选择工具 → 执行 → 整合结果。整个过程在对话中可见:

AI Chat 对话 — 工具调用过程可见

上图中用户问了「现在有几个设备在线?」,AI 的处理过程:

  1. 理解意图:识别出需要查询设备状态
  2. 调用工具:执行 device list 命令(绿色 ✓ 表示成功)
  3. 整合回答:基于工具返回的数据生成自然语言回复
思考过程展示

AI 回复上方会显示「Thinking process」摘要(轮次、字符数),让你了解 AI 推理了多少步。复杂请求可能涉及多轮工具调用(NeoMind 默认上限 30 轮,5 分钟超时)。

完整示例:一次工具调用的全过程

以「现在有几个设备在线?」为例,拆开看 AI 从接收问题到回答的每一步。理解这个流程,你就能看懂对话区里的每条记录,也知道该在什么时候追问。

第 1 步 · 用户发送问题

现在有几个设备在线?

第 2 步 · LLM 决定调用工具

LLM 不直接编答案,而是输出一个结构化的工具调用请求(对话区会显示工具名与参数,成功时带绿色 ✓)。LLM 只需要给出「简化名」——NeoMind 会自动把 devicelist_devices、甚至「设备列表」这类别名映射到真实工具,并把参数补齐(比如没写 action 时按参数自动推断为 list):

{
"name": "device",
"arguments": { "action": "list" }
}

第 3 步 · NeoMind 执行工具

device 属于领域工具,NeoMind 在内部把它转换为等价的 CLI 命令 neomind device list 执行,并拿到 JSON 结果(节选示意):

{
"success": true,
"data": {
"devices": [
{ "id": "sensor-01", "name": "客厅温湿度", "status": "online" },
{ "id": "sensor-02", "name": "机房温度", "status": "online" },
{ "id": "hvac-01", "name": "一号空调", "status": "offline" }
],
"total": 3
}
}

第 4 步 · LLM 整合结果生成回答

当前共有 3 台设备,其中 2 台在线(客厅温湿度、机房温度),1 台离线(一号空调 hvac-01)。

如果问题更复杂(比如「过去 24 小时湿度曲线」),LLM 会在同一轮对话里连续多次调用工具(先查设备、再拉历史、再生成图表),直到它认为可以回答为止——这些中间步骤都会依次显示在对话区。

内置工具一览

AI Chat 可调用的工具分三类:领域工具(覆盖 NeoMind 各功能模块)、通用内置工具(记忆 / 技能 / 视觉等)、扩展工具(由已安装的扩展注册)。常用工具如下:

工具类别能做什么典型调用参数
device领域工具设备列表、查最新遥测、查历史、下发控制指令、写指标{"action":"latest","device_id":"sensor-01"};控制 {"action":"control","device_id":"hvac-01","command":"on"};历史 {"action":"history","device_id":"sensor-01","hours":24}
rule领域工具创建 / 启用 / 禁用 / 删除自动化规则{"action":"create","json":"<规则 JSON>"}
agent领域工具创建 / 查看 / 触发 AI Agent{"action":"list"}{"action":"create","name":"...","prompt":"..."}
message领域工具发送站内消息 / 告警、读取消息列表{"action":"send","title":"高温告警","content":"3号机 38°C"}
transform领域工具创建 / 管理数据转换{"action":"list"}{"action":"create","js_code":"..."}
push / dashboard / extension / system领域工具数据推送、仪表板组件、扩展管理、系统信息等按 action + 参数
shell内置工具直接执行任意 neomind <域> <动作> CLI 命令{"command":"neomind device list"}
skill内置工具按需搜索 / 加载操作指南(多步骤复杂操作前先查指南){"action":"search","query":"创建规则"}
memory内置工具读写跨会话记忆(见 会话管理{"action":"add","target":"user","content":"偏好摄氏度"}
vision内置工具分析图片(需视觉模型,见多模态随图片上传自动触发
web_fetch内置工具抓取网页内容作为回答依据URL 参数
扩展工具(如 yolo-video:detect扩展注册调用扩展命令(YOLO 检测、OCR、人脸识别等)按扩展定义
领域工具与 shell 的关系

领域工具(device / rule / agent 等)并不是独立实现——NeoMind 会把它们转换成对应的 neomind <域> <动作> CLI 命令交给 shell 工具执行。所以「AI 会调用的能力」与「CLI 能做的事」完全一致;反过来,如果 LLM 拿不准参数,你也可以让它直接执行某条 CLI 命令。

常见坑(工具调用)

  • 只查不做:小模型有时「谨慎过头」——你让它建规则,它只列出了现有规则。直接追问「帮我创建」即可(见下文 使用技巧
  • LLM 自行动作推断:调用 device 时不写 action,NeoMind 会按参数推断(带 command → 控制;带 device_id → 查最新值;都不带 → 列表)。如果推断结果不是你要的,明确说「查询」还是「控制」
  • 30 轮上限:单次请求最多 30 轮工具调用、5 分钟超时。超限后 AI 会基于已拿到的结果作答,可能显得「没做完」——把任务拆成两句话问更稳
  • 同名设备:LLM 按名称模糊匹配设备,同名设备多时会拿错,此时用设备 ID 提问

你可以问什么

AI Chat 内置工具覆盖几乎所有 NeoMind 能力。以下是典型问法(中英不限):

设备查询与控制

  • 「客厅现在多少度?」→ 查询最新遥测
  • 「把空调调到 26 度制冷模式」→ 下发设备指令
  • 「过去 24 小时湿度曲线」→ 拉取历史并生成图表
  • 「现在有几个设备在线?」→ 查询设备状态

仪表板与可视化

  • 「帮我建一个仪表板,显示所有温湿度传感器的实时数值」→ 创建仪表板 + 自动加组件
  • 「把这个图表时间范围改成 7 天」

自动化规则

  • 「温度超过 30 度时给我发邮件」→ 创建 自动化规则 + 绑定通知渠道
  • 「每天早上 8 点播报昨天的能耗」

通知

  • 「发一条 Telegram 消息告诉运维组 3 号机离线了」

扩展与数据

  • 「调用天气扩展,查一下上海明天会下雨吗?」
  • 「最近一次人脸识别的结果是什么?」

系统与诊断

  • 「为什么 sensor-03 两小时没有数据?」→ 触发诊断流程
提示

LLM 会自己决定调用哪些工具、按什么顺序调用。如果 AI 只执行了查询操作但没完成你的实际请求(比如你让它建规则但它只是查了查),直接追问「帮我创建」即可。

切换 LLM 后端

输入框左侧的下拉菜单可以切换当前会话使用的 LLM 后端:

  • Ollama 本地模型:如 qwen3.5:4b(默认)、granite4.1:3b
  • 云端模型:如 DeepSeek、Qwen 云、GPT-4o 等(需在 LLM 后端配置 中添加)

不同后端的能力不同(推理质量、速度、多模态支持),根据任务选择:

  • 简单查询 → 轻量模型(快)
  • 复杂分析/创建规则 → 更强模型(准)

多模态(图像分析)

如果 LLM 后端支持视觉(见 配置 LLM 后端 — 多模态),你可以在 Chat 中上传图片提问:

点击输入框右侧的 图片上传 按钮上传。支持 PNG / JPG / JPEG / WebP。

典型用法:

上传内容问法背后调用
现场照片「这张图里有什么物体?」视觉模型或 YOLO 扩展
相机截图「帮我读出表盘上的数字」OCR 扩展
监控帧「识别画面中的人脸」人脸识别扩展
Ollama 用户需先拉取视觉模型

需要拉取视觉模型(如 qwen3.5:4b-vl / llava),否则上传图片会被静默忽略。NeoMind 会自动探测后端能力。纯文本模型(如 qwen3.5:4b、DeepSeek-V3)无法处理图片。

Chat vs Agent:两种模式

NeoMind 的 AI 有两种运行形态,初学者容易混淆:

维度AI Chat(本文档)AI Agent(自主智能体)
触发方式你发消息,实时交互按计划 / 事件自动触发
上下文会话历史记忆系统(journal + knowledge)
适用场景临时查询、探索、调试长期监控、定时巡检、事件响应
配置入口直接进 Chat 页Agents 页签新建

举例:

  • Chat:「现在 3 号机温度是多少?」← 一次性查询
  • Agent:创建一个 Agent,每小时检查 3 号机温度,超过阈值就发通知 ← 长期自动化

Agent 的详细配置见 AI Agent,自动化规则见 规则引擎

会话管理

  • 多会话:每个会话独立上下文,互不干扰。左侧会话列表可切换 / 重命名 / 删除

  • 跨会话记忆:每轮实质性对话(回复达到一定长度,寒暄不算)结束后,NeoMind 会在后台用 LLM 抽取最多 3 条可复用的事实,分两类写入磁盘上的记忆文件,重启不丢失:

    • [user] 用户画像类(偏好、习惯、身份)→ data/memory/USER.md(默认上限 2000 字符)
    • [knowledge] 领域知识类(设备别名、位置、命名约定)→ data/memory/KNOWLEDGE.md(默认上限 3000 字符)

    例如你说过「3 号机就是车间东边的空压机」,之后的任何新会话里 AI 都会记得这个别名。记忆文件也可以在系统设置中查看与清理

  • IM 桥接(0.9.14+):除网页端外,还可以在 Telegram / 飞书 里直接和同一个 Agent 对话(在系统内配置 IM Bridge 后);这与通知渠道中的 Telegram/飞书是两个独立功能——通知是单向告警推送,IM 桥接是双向对话

  • 历史回溯:会话内容持久化在 sessions.redb,重启服务不丢失

  • 自动标题:新会话的第一条消息会自动成为会话标题,方便在列表中识别

移动端

AI Chat 移动端 — 全屏对话

移动端自动切换为全屏对话模式,会话列表通过左上角菜单展开。

使用技巧

  • 明确设备标识:用设备名或 ID(如「客厅的温湿度传感器」),LLM 会做模糊匹配;同名设备多时请用 ID
  • 复杂任务拆步:「先查湿度,如果低于 40% 就打开加湿器」比一次性长指令更可靠
  • 纠错:如果 LLM 误解了,直接说「不对,我说的是 2 号机」即可,无需重开会话
  • 工具反馈:LLM 调用工具失败时会返回错误与建议,按提示修正即可
  • 推荐问题:新会话页面显示的推荐问题可以直接点击使用,也适合用来探索 AI 能力

从 Telegram / 飞书对话(IM 桥接)

除了网页端,还可以把 NeoMind 接入 Telegram飞书,在熟悉的 IM 里直接和 AI 对话——查询设备、执行控制都和网页端一致。

第一步:创建机器人凭据

  • Telegram:在 Telegram 中找 @BotFather/newbot → 获取 Bot Token(形如 123456789:AAxxx…
  • 飞书:在飞书开放平台创建企业自建应用,获取 App IDApp Secret,并开启「接收消息」能力

第二步:在 NeoMind 中添加桥接

进入 设置 → IM Channels,选择平台并填写凭据:

平台必填字段
TelegramBot Token(可选自定义 API Base,用于代理/私有网关)
飞书App ID + App Secret(国际版 Lark 需切换 domain 为 open.larksuite.com

保存后桥接自动启动并监听消息。

第三步:邀请配对

IM 桥接采用邀请制——在 Telegram/飞书里对你的机器人发送 /start <配对令牌>(令牌来自 IM Channels 管理界面),该聊天即被加入白名单并绑定会话。此后在这个聊天里说的每一句话,都由 NeoMind 直接回答。

管理

  • 白名单查看 / 移除聊天:IM Channels 的桥接详情
  • 重置某个聊天的会话上下文:会话重置按钮(或 POST /api/im-bridges/:id/sessions/:chat_id/reset
与通知渠道的区别

通知渠道里的 Telegram / 飞书是单向告警推送(规则触发时通知你);IM 桥接是双向对话(你发指令,AI 执行并回复)。两者相互独立、可同时使用。

下一步


最后更新: 2026-09-09