如果json包含MCP则 按照MCP去解析
strcmp(type->valuestring, "llm") 是一个字符串比较函数调用,作用是判断 type->valuestring 指向的字符串是否否等于 "mcp"。
else if (strcmp(type->valuestring, "mcp") == 0) {
auto payload = cJSON_GetObjectItem(root, "payload");
if (cJSON_IsObject(payload)) {
McpServer::GetInstance().ParseMessage(payload);
}
大模型回复的function call json, 调节屏幕亮度
I (99214) Application: Incoming JSON:
{
"type": "mcp",
"payload": {
"jsonrpc": "2.0",
"method": "tools/call",
"id": 3,
"params": {
"name": "self.screen.set_brightness",
"arguments": {
"brightness": 75
}
}
},
"session_id": "d0ab4e24"
}
拍照
I (198434) Application: Incoming JSON:
{
"type": "mcp",
"payload": {
"jsonrpc": "2.0",
"method": "tools/call",
"id": 3,
"params": {
"name": "self.camera.take_photo",
"arguments": {
"question": "你看看这是什么"
}
}
},
"session_id": "12815b2b"
}
查询电量
I (233884) Application: Incoming JSON:
{
"type": "mcp",
"payload": {
"jsonrpc": "2.0",
"method": "tools/call",
"id": 4,
"params": {
"name": "self.get_device_status",
"arguments": {
}
}
},
"session_id": "12815b2b"
}
2983

被折叠的 条评论
为什么被折叠?



