本文档说明人机交互向大模型发送请求、接收大模型结果的 MQTT 接口。
MQTT账号密码:
账号:work 密码:Bjhmdys@202010
Topic
| 方向 | Topic | 说明 |
|---|---|---|
| 发送请求 | ls/llm/req/xxx | 人机交互请求 |
| 接收响应 | ls/llm/resp/xxx | 人机交互响应 |
说明:配置文件中通配请求 Topic 为
ls/llm/req/+,响应基准 Topic 为ls/llm/resp。例如请求发送到ls/llm/req/chat后,响应会自动发布到ls/llm/resp/chat。
编码与 MQTT 参数
- 载荷格式:
MessagePack字节串。 - 发送前需要先按下方 JSON 结构组装数据,再编码为 MessagePack。
- 时间格式:
YYYY-MM-DD HH:MM:SS.ffffff。
发送人机交互请求(目前只支持jpg,jpeg)
请求结构
{
"msg_id": "request_id",
"msg_type": "llm_req",
"time": "2026-05-18 14:30:00.123456",
"data": {
"id": "request_id",
"urgent": true,
"content": [
{
"text": "向大模型提问的文本内容",
"image": "base64编码的图片数据"
}
],
"reserved_data": {
"task_type": "llm_chat",
"custom_key": "custom_value"
}
}
}
字段说明
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
msg_id | string | 是 | MQTT 消息 ID,建议使用 UUID 或系统生成的唯一 ID;响应会原样带回。 |
msg_type | string | 是 | 固定为 llm_req。 |
time | string | 是 | 请求发送时间。 |
data.id | string | 是 | 业务请求 ID,同msg_id值。 |
data.urgent | boolean | 是 | 是否紧急。true 会进入高优先级队列,false 进入普通队列。 |
data.content | array | 是 | 推理输入。 |
data.content[].text | string | 是 | 输入文本。 |
data.content[].image | string | 是 | 图片的 Base64 字符串。 |
data.reserved_data.task_type | string | 是 | 人机交互固定为 llm_chat。 |
data.reserved_data.* | any | 否 | 自定义透传字段。响应会原样返回,可用于业务匹配、正则匹配或上下文关联。 |
接收人机交互响应
响应载荷是 MessagePack 字节串,解码后的结构如下:
{
"msg_id": "uuid",
"msg_type": "llm_resp",
"time": "2026-05-18 14:30:01.234567",
"data": {
"id": "request_id",
"urgent": true,
"content": [
"大模型输出内容。"
],
"reserved_data": {
"task_type": "llm_chat",
"custom_key": "custom_value"
},
"reval_time": 1779095401.234
}
}
字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
msg_id | string | 与请求中的 msg_id 一致。 |
msg_type | string | 固定为 llm_resp。 |
time | string | 响应发送时间。 |
data.id | string | 与请求中的 data.id 一致。 |
data.urgent | boolean | 与请求中的 data.urgent 一致。 |
data.content | array | 大模型输出结果列表,与请求 data.content 一一对应。人机交互场景通常读取 data.content[0]。 |
data.reserved_data | object | 请求中的 reserved_data 原样返回。 |
data.reval_time | number | Unix 时间戳,单位秒 |
注意事项
- 请求和响应都不是普通 JSON 字符串,而是 MessagePack 编码后的字节串。
msg_type必须分别使用llm_req和llm_resp。- 人机交互必须在
reserved_data.task_type中传入llm_chat。
回复