边缘智能-大模型架构初探

R2Cloud接口

机器人注册

请求和应答

注册是一个简单的 HTTP 接口,根据机器人/用户信息注册,创建一个新机器人。

请求 URL

URL http://ip/robot/reg
Type POST
HTTP Version 1.1
Content-Type application/json

请求参数

Param 含义 Rule 是否必须 缺省
robotid 机器人唯一 ID md 5 加密后的值 必填 NULL
robotPwd 机器人密码 md 5 加密后的值 必填 NULL
nickName 昵称 不超过 32 个字符 可选 NULL
email 邮箱 符合 email 规范 可选 NULL
userName 用户名称 不超过 32 个字符 可选 NULL
服务示例

返回结果参数

名称 含义 规则说明
code 结果值 0:成功 1:失败 2:机器人存在

调用接口

json 复制代码
{
    "robotid":"ced165163e51e06e01dc44c35fea3eaf",
    "robotPwd":"3687f20fbdfab8dd7e645f1e2f95268b",
    "nickName":"jarvis",
    "email":"Jarvis@joysonrobot.com",
    "userName":"gv"
}

返回值

json 复制代码
{
    "code":0
}
处理逻辑

客户端提交的密码需要使用 md5 加密,不能提供明文的密码。

机器人上线(登录)

请求和应答

登录,根据机器人的登录信息,连接到云平台。

请求URL
URL http://ip/robot/login
Type POST
HTTP Version 1.1
Content-Type application/json
请求参数
Param 含义 Rule 是否必须 缺省
robotid 机器人唯一 ID md 5 加密后的值 必填 NULL
robotPwd 机器人密码 md 5 加密后的值 必填 NULL
服务示例

返回结果参数说明

名称 含义 规则说明
code 结果值 0:成功 1:失败
token 令牌 每次上线后,生成的token不一样,后续请求需要带上token

调用接口

json 复制代码
http://ip/robot/login
参数
{
    "robotid":"ced165163e51e06e01dc44c35fea3eaf",
    "robotPwd":"3687f20fbdfab8dd7e645f1e2f95268b"
}
返回结果
{
    "code":0,
    "token":"3a58ca22317e637797f8bcad5c047446"
}
处理逻辑
Token验证

Token 的中文有人翻译成 "令牌",意思就是,你拿着这个令牌,才能过一些关卡。

Token 是一个用户自定义的任意字符串。在成功提交了开发者自定义的这个字符串之后,Token 的值 会保存到服务器后台。只有服务器和客户端前端知道这个字符串,于是 Token 就成了这两者之间的 密钥,它可以让服务器确认请求是来自客户端还是恶意的第三方。

使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录。大概的流程是这样的:

  1. 客户端使用用户名和密码请求登录;
  2. 服务器收到请求,验证用户名和密码;
  3. 验证成功后,服务端生成一个Token,这个Token可以存储在内存、磁盘、或者数据库里,再把这个Token发送给客户端;
  4. 客户端收到Token以后可以存储起来,比如放在Cookie或者Local Storage;
  5. 客户端每次向服务器请求资源时必须带着服务器签发的Token;
  6. 服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回 请求的数据。

私有文件1

请求URL
URL http://ip/file/ownfile?cmd=count
Type POST
HTTP Version 1.1
Content-Type application/json
请求参数
Param 含义 Rule 是否必须 缺省
token token 同上 必填 NULL
robotid 机器人唯一 ID 不超过32个字符 必填 NULL
服务示例

返回结果参数说明

名称 含义 规则说明
code 结果值 0:验证成功 1:验证失败
total 文件数量

调用接口

json 复制代码
http://ip/file/ownfile?cmd=count
参数
{
    "token":"3a58ca22317e637797f8bcad5c047446",
    "robotid":"ced165163e51e06e01dc44c35fea3eaf"
}
返回结果
{
    "total":1,
    "code":0
}
没有文件返回
{
    "total":0,
    "code":0
}
处理逻辑

私有文件2

请求URL
URL http://ip/file/ownfile?cmd=normal
Type POST
HTTP Version 1.1
Content-Type application/json
请求参数
Param 含义 Rule 是否必须 缺省
token token 同上 必填 NULL
robotid 机器人唯一 ID 不超过32个字符 必填 NULL
count 文件个数 私有文件数量>0 必填 NULL
start 开始位置 必填 NULL
服务示例

返回结果参数说明

名称 含义 规则说明
files 文件结果集 "code":0正常,1失败, "count":当前文件数量, "total":私有文件数量, "robotid":机器人唯一ID, "md5":md5的值, "create_time":创建时间, "file_name":文件名, "share_status":共享状态, "pv":使用次数, "url":URL, "size":文件大小, "type":文件类型

调用接口

json 复制代码
http://ip/file/ownfile?cmd=normal
参数
{
    "count":2,
    "start":0,
    "token":"3a58ca22317e637797f8bcad5c047446",
    "robotid":"ced165163e51e06e01dc44c35fea3eaf"
}
返回结果
{
    "code":0,
    "total":2,
    "files":[
        {
            "robotid":"ced165163e51e06e01dc44c35fea3eaf",
            "md5":"6c5fa2864bb264c91167258b3e478fa0",
            "create_time":"2024-01-01 11:11:00",
            "file_name":"111.jpg",
            "share_status":0,
            "pv":1,
            "url":"http://ip/group1/M00/00/00/eBuDxWCfQHSATopyAAV8AJV_1mw866.111",
            "size":"1024",
            "type":"jpg"
        }
    ]
}
处理逻辑

私有文件3

请求URL
URL http://ip/file/ownfile?cmd=pvasc
Type POST
HTTP Version 1.1
Content-Type application/json
请求参数
Param 含义 Rule 是否必须 缺省
token token 同上 必填 NULL
robotid 机器人唯一 ID 不超过32个字符 必填 NULL
count 文件个数 私有文件数量>0 必填 NULL
start 开始位置 必填 NULL
服务示例

返回结果参数说明

名称 含义 规则说明
files 文件结果集 "code":0正常,1失败, "count":当前文件数量, "total":私有文件数量, "robotid":机器人唯一ID, "md5":md5的值, "create_time":创建时间, "file_name":文件名, "share_status":共享状态, "pv":使用次数, "url":URL, "size":文件大小, "type":文件类型

调用接口

json 复制代码
http://ip/file/ownfile?cmd=normal
参数
{
    "count":2,
    "start":0,
    "token":"3a58ca22317e637797f8bcad5c047446",
    "robotid":"ced165163e51e06e01dc44c35fea3eaf"
}
返回结果
{
    "code":0,
    "total":2,
    "files":[
        {
            "robotid":"ced165163e51e06e01dc44c35fea3eaf",
            "md5":"6c5fa2864bb264c91167258b3e478fa0",
            "create_time":"2024-01-01 11:11:00",
            "file_name":"111.jpg",
            "share_status":0,
            "pv":1,
            "url":"http://ip/group1/M00/00/00/eBuDxWCfQHSATopyAAV8AJV_1mw866.111",
            "size":"1024",
            "type":"jpg"
        }
    ]
}
处理逻辑

私有文件4

请求URL
URL http://ip/file/ownfile?cmd=pvdesc
Type POST
HTTP Version 1.1
Content-Type application/json
请求参数
Param 含义 Rule 是否必须 缺省
token token 同上 必填 NULL
robotid 机器人唯一 ID 不超过32个字符 必填 NULL
count 文件个数 私有文件数量>0 必填 NULL
start 开始位置 必填 NULL
服务示例

返回结果参数说明

名称 含义 规则说明
files 文件结果集 "code":0正常,1失败, "count":当前文件数量, "total":私有文件数量, "robotid":机器人唯一ID, "md5":md5的值, "create_time":创建时间, "file_name":文件名, "share_status":共享状态, "pv":使用次数, "url":URL, "size":文件大小, "type":文件类型

调用接口

json 复制代码
http://ip/file/ownfile?cmd=normal
参数
{
    "count":2,
    "start":0,
    "token":"3a58ca22317e637797f8bcad5c047446",
    "robotid":"ced165163e51e06e01dc44c35fea3eaf"
}
返回结果
{
    "code":0,
    "total":2,
    "files":[
        {
            "robotid":"ced165163e51e06e01dc44c35fea3eaf",
            "md5":"6c5fa2864bb264c91167258b3e478fa0",
            "create_time":"2024-01-01 11:11:00",
            "file_name":"111.jpg",
            "share_status":0,
            "pv":1,
            "url":"http://ip/group1/M00/00/00/eBuDxWCfQHSATopyAAV8AJV_1mw866.111",
            "size":"1024",
            "type":"jpg"
        }
    ]
}
处理逻辑

上传文件md5

用于秒传文件的请求。

文件上传的时候:

  • 先调用md5接口判断服务器是否有该文件,如果md5成功则说明服务器有该文件,不需要upload;
  • 如果不成功则调用upload。
请求URL
URL http://ip/file/md5
Type POST
HTTP Version 1.1
Content-Type application/json
请求参数
Param 含义 Rule 是否必须 缺省
token token 同上 必填 NULL
robotid 机器人唯一 ID 不超过32个字符 必填 NULL
md5 md5值 不超过32个字符 必填 NULL
filename 文件名称 不超过128个字符 必填 NULL
服务示例

返回结果参数说明

名称 含义 规则说明
code 结果值 0: 秒传成功 1: 秒传失败 4: token 校验失败 5:文件已存在

调用接口

json 复制代码
http://ip/file/md5
参数
{
    "filename":"ui_bottongroup.h",
    "md5":"a89390d867d5da18c8b1a95908d7c653",
    "token":"3a58ca22317e637797f8bcad5c047446",
    "robotid":"ced165163e51e06e01dc44c35fea3eaf"
}
返回结果
{
    "code":0
}
处理逻辑

每个文件都有一个唯一的 MD5 值(比如 2bf8170b42cc7124b04a8886c83a9c6f),就好比每个人的指 纹都是唯一的一样,效验 MD5 就是用来确保文件在传输过程中未被修改过。

  • 客户端在上传文件之前先将文件的md5码上传到服务器;
  • 服务器判断是否存在这个md5码,如果存在,说明文件存在,则此文件无需再次上传,在此文件的计数器上加1,说明文件多了一个用户共用;
  • 如果服务器没有这个md5码,则说明。传的是新文件,需要上传

上传文件upload

请求URL
URL http://ip/file/upload
Type POST
HTTP Version 1.1
Content-Type application/json
返回结果参数说明
名称 含义 规则说明
code 结果值 0: 秒传成功 1: 上传失败
处理逻辑

共享/删除1

请求 URL
URL http://ip/file/dealfile?cmd=share
Type POST
HTTP Version 1.1
Content-Type application/json
请求参数
Param 含义 Rule 是否必须 缺省
token token 同上 必填 NULL
robotid 机器人唯一 ID 不超过32个字符 必填 NULL
md5 md5值 不超过32个字符 必填 NULL
filename 文件名称 不超过128个字符 必填 NULL
服务示例

返回结果参数说明

名称 含义 规则说明
code 结果值 0: 成功 1: 失败 3: 另外的机器人已经共享 4: token 验证失败

调用接口

json 复制代码
http://ip/file/dealfile?cmd=pv
参数
{
	"filename":"Makefile",
	"md5":"602fdf30db2aacf517badf4565124f51",
	"token":"3a58ca22317e637797f8bcad5c047446",
	"robotid":"ced165163e51e06e01dc44c35fea3eaf"
}
返回结果
{
	"code":0
}
处理逻辑

共享/删除文件2

请求URL
URL http://ip/file/dealfile?cmd=del
Type POST
HTTP Version 1.1
Content-Type application/json
请求参数
Param 含义 Rule 是否必须 缺省
token token 同上 必填 NULL
robotid 机器人唯一 ID 不超过32个字符 必填 NULL
md5 md5值 不超过32个字符 必填 NULL
filename 文件名称 不超过128个字符 必填 NULL
服务示例

返回结果参数说明

名称 含义 规则说明
code 结果值 0: 成功 1: 失败

调用接口

json 复制代码
http://ip/file/dealfile?cmd=del
参数
{
    "filename":"Makefile",
    "md5":"602fdf30db2aacf517badf4565124f51",
    "token":"3a58ca22317e637797f8bcad5c047446",
    "robotid":"ced165163e51e06e01dc44c35fea3eaf"
}
返回结果
{
    "code":0
}
处理逻辑
  • 先判断此文件是否已经分享
  • 判断集合有没有这个文件,如果有,说明别人已经分享此文件(RDS操作)
  • 如果集合没有此元素,可能因为 redis 中没有记录,再从 SQL中查询,如果 SQL也没有,说 明真没有(SQL操作)
  • 如果 SQL有记录,而 RDS没有记录,那么分享文件处理只需要处理 SQL(SQL操作)
  • 如果 RDS有记录,SQL和 RDS都需要处理,删除相关记录

取消共享

请求URL
URL http://ip/file/dealsharefile?cmd=cancel
Type POST
HTTP Version 1.1
Content-Type application/json
请求参数
Param 含义 Rule 是否必须 缺省
robotid 机器人唯一 ID 不超过32个字符 必填 NULL
md5 md5值 不超过32个字符 必填 NULL
filename 文件名称 不超过128个字符 必填 NULL
服务示例

返回结果参数说明

名称 含义 规则说明
code 结果值 0: 成功 1: 失败

调用接口

json 复制代码
http://ip/file/dealsharefile?cmd=cancel
参数
{
    "filename":"ui_buttongroup.h"
    "md5":"a89390d867d5da18c8b1a95908d7c653",
    "robotid":"ced165163e51e06e01dc44c35fea3eaf"
}
返回结果
{
    "code":0
}
处理逻辑
  • 查询共享文件的数量;
  • 如果共享文件数量为1则删除共享文件数量对应的行
  • 如果共享文件数量>1,则更新共享数量文件-1。

转存文件

请求URL
URL http://ip/file/dealsharefile?cmd=save
Type POST
HTTP Version 1.1
Content-Type application/json
请求参数
Param 含义 Rule 是否必须 缺省
robotid 机器人唯一 ID 不超过32个字符 必填 NULL
md5 md5值 不超过32个字符 必填 NULL
filename 文件名称 不超过128个字符 必填 NULL
服务示例

返回结果参数说明

名称 含义 规则说明
code 结果值 0: 成功 1: 失败 5: 文件存在
json 复制代码
http://ip/file/dealsharefile?cmd=save
参数
{
    "filename":"ui_buttongroup.h"
    "md5":"a89390d867d5da18c8b1a95908d7c653",
    "robotid":"ced165163e51e06e01dc44c35fea3eaf"
}
返回结果
{
    "code":0
}
处理逻辑
  • 先查询是个人文件列表是否已经存在该文件;
  • 增加 file_info 表的 count 计数,表是多一个人保存了该文件;
  • 个人的 user_file_list 增加一条文件记录;
  • 更新个人的 user_file_count。

更新共享文件下载计数

请求URL
URL http://ip/file/dealsharefile?cmd=save
Type POST
HTTP Version 1.1
Content-Type application/json
请求参数
Param 含义 Rule 是否必须 缺省
robotid 机器人唯一 ID 不超过32个字符 必填 NULL
md5 md5值 不超过32个字符 必填 NULL
filename 文件名称 不超过128个字符 必填 NULL
服务示例

返回结果参数说明

名称 含义 规则说明
code 结果值 0: 成功 1: 失败 5: 文件存在
json 复制代码
http://ip/file/dealsharefile?cmd=pv
参数
{
    "filename":"ui_buttongroup.h"
    "md5":"a89390d867d5da18c8b1a95908d7c653",
    "robotid":"ced165163e51e06e01dc44c35fea3eaf"
}
返回结果
{
    "code":0
}
处理逻辑
  • 更新share_file_list的pv值;
  • 更新RDS的FILE_PUBLIC_ZSET。

分享文件

请求URL
URL http://ip/file/sharefile?cmd=share
Type POST
HTTP Version 1.1
Content-Type application/json
请求参数
Param 含义 Rule 是否必须 缺省
token token 同上 必填 NULL
robotid 机器人唯一 ID 不超过32个字符 必填 NULL
md5 md5值 不超过32个字符 必填 NULL
filename 文件名称 不超过128个字符 必填 NULL
服务示例

返回结果参数说明

名称 含义 规则说明
code 结果值 0: 成功 1: 失败 4: token验证失败
urlmd5 分享文件标识 取消也要

调用接口

json 复制代码
http://ip/file/sharefile?cmd=share
参数
{
    "filename":"ui_buttongroup.h"
    "md5":"a89390d867d5da18c8b1a95908d7c653",
    "token":"3a58ca22317e637797f8bcad5c047446",
    "robotid":"ced165163e51e06e01dc44c35fea3eaf"
}
返回结果
{
    "code":0,
    "urlmd5":"602fdf30db2aacf517badf4565121234"
}
处理逻辑

新建分组

新建一个MQTT的Topic,用于协作。

请求URL
URL http://ip/msg/newgroup
Type POST
HTTP Version 1.1
Content-Type application/json
请求参数
Param 含义 Rule 是否必须 缺省
token token 同上 必填 NULL
robotid 机器人唯一 ID 不超过32个字符 必填 NULL
maxsize 同组最大数量 >=1 必填 NULL
服务示例

返回结果参数说明

名称 含义 规则说明
code 结果值 0: 成功 1: 失败 4: token验证失败
topic 加密后的topic 失败为空

调用接口

json 复制代码
http://ip/file/msg/newgroup
参数
{
    "token":"3a58ca22317e637797f8bcad5c047446",
    "robotid":"ced165163e51e06e01dc44c35fea3eaf",
    "maxsize":10
}
返回结果
{
    "code":0,
    "topic":"614b0c23f5f4cd3a68ba5581e2169df3"
}
处理逻辑

释放分组

请求 URL
URL http://ip/msg/freegroup
Type POST
HTTP Version 1.1
Content-Type application/json
请求参数
Param 含义 Rule 是否必须 缺省
token token 同上 必填 NULL
robotid 机器人唯一 ID 不超过32个字符 必填 NULL
topic 加密后的topic 不超过32个字符 必填 NULL
服务示例

返回结果参数说明

名称 含义 规则说明
code 结果值 0: 成功 1: 失败 4: token 验证失败 5: 非topic管理员

调用接口

json 复制代码
http://ip/file/msg/freegroup
参数
{
    "token":"3a58ca22317e637797f8bcad5c047446",
    "robotid":"ced165163e51e06e01dc44c35fea3eaf",
    "topic":"614b0c23f5f4cd3a68ba5581e2169df3"
}
返回结果
{
    "code":0,
}
处理逻辑
相关推荐
鹏大师运维1 分钟前
【功能介绍】信创终端系统上各WPS版本的授权差异
linux·wps·授权·麒麟·国产操作系统·1024程序员节·统信uos
筱源源3 分钟前
Elasticsearch-linux环境部署
linux·elasticsearch
龙哥说跨境26 分钟前
如何利用指纹浏览器爬虫绕过Cloudflare的防护?
服务器·网络·python·网络爬虫
懒大王就是我40 分钟前
C语言网络编程 -- TCP/iP协议
c语言·网络·tcp/ip
Elaine2023911 小时前
06 网络编程基础
java·网络
pk_xz1234562 小时前
Shell 脚本中变量和字符串的入门介绍
linux·运维·服务器
小珑也要变强2 小时前
Linux之sed命令详解
linux·运维·服务器
海绵波波1072 小时前
Webserver(4.3)TCP通信实现
服务器·网络·tcp/ip
Lary_Rock4 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
热爱跑步的恒川5 小时前
【论文复现】基于图卷积网络的轻量化推荐模型
网络·人工智能·开源·aigc·ai编程