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

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

R2Cloud接口

机器人注册

请求和应答

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

请求 URL

URLhttp://ip/robot/reg
TypePOST
HTTP Version1.1
Content-Typeapplication/json

请求参数

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

返回结果参数

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

调用接口

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

返回值

{"code":0
}
处理逻辑

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

机器人上线(登录)

请求和应答

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

请求URL
URLhttp://ip/robot/login
TypePOST
HTTP Version1.1
Content-Typeapplication/json
请求参数
Param含义Rule是否必须缺省
robotid机器人唯一 IDmd 5 加密后的值必填NULL
robotPwd机器人密码md 5 加密后的值必填NULL
服务示例

返回结果参数说明

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

调用接口

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
URLhttp://ip/file/ownfile?cmd=count
TypePOST
HTTP Version1.1
Content-Typeapplication/json
请求参数
Param含义Rule是否必须缺省
tokentoken同上必填NULL
robotid机器人唯一 ID不超过32个字符必填NULL
服务示例

返回结果参数说明

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

调用接口

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

私有文件2

请求URL
URLhttp://ip/file/ownfile?cmd=normal
TypePOST
HTTP Version1.1
Content-Typeapplication/json
请求参数
Param含义Rule是否必须缺省
tokentoken同上必填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”:文件类型

调用接口

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
URLhttp://ip/file/ownfile?cmd=pvasc
TypePOST
HTTP Version1.1
Content-Typeapplication/json
请求参数
Param含义Rule是否必须缺省
tokentoken同上必填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”:文件类型

调用接口

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
URLhttp://ip/file/ownfile?cmd=pvdesc
TypePOST
HTTP Version1.1
Content-Typeapplication/json
请求参数
Param含义Rule是否必须缺省
tokentoken同上必填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”:文件类型

调用接口

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
URLhttp://ip/file/md5
TypePOST
HTTP Version1.1
Content-Typeapplication/json
请求参数
Param含义Rule是否必须缺省
tokentoken同上必填NULL
robotid机器人唯一 ID不超过32个字符必填NULL
md5md5值不超过32个字符必填NULL
filename文件名称不超过128个字符必填NULL
服务示例

返回结果参数说明

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

调用接口

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
URLhttp://ip/file/upload
TypePOST
HTTP Version1.1
Content-Typeapplication/json
返回结果参数说明
名称含义规则说明
code结果值0: 秒传成功
1: 上传失败
处理逻辑

共享/删除1

请求 URL
URLhttp://ip/file/dealfile?cmd=share
TypePOST
HTTP Version1.1
Content-Typeapplication/json
请求参数
Param含义Rule是否必须缺省
tokentoken同上必填NULL
robotid机器人唯一 ID不超过32个字符必填NULL
md5md5值不超过32个字符必填NULL
filename文件名称不超过128个字符必填NULL
服务示例

返回结果参数说明

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

调用接口

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

image.png

共享/删除文件2

请求URL
URLhttp://ip/file/dealfile?cmd=del
TypePOST
HTTP Version1.1
Content-Typeapplication/json
请求参数
Param含义Rule是否必须缺省
tokentoken同上必填NULL
robotid机器人唯一 ID不超过32个字符必填NULL
md5md5值不超过32个字符必填NULL
filename文件名称不超过128个字符必填NULL
服务示例

返回结果参数说明

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

调用接口

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
URLhttp://ip/file/dealsharefile?cmd=cancel
TypePOST
HTTP Version1.1
Content-Typeapplication/json
请求参数
Param含义Rule是否必须缺省
robotid机器人唯一 ID不超过32个字符必填NULL
md5md5值不超过32个字符必填NULL
filename文件名称不超过128个字符必填NULL
服务示例

返回结果参数说明

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

调用接口

http://ip/file/dealsharefile?cmd=cancel
参数
{"filename":"ui_buttongroup.h""md5":"a89390d867d5da18c8b1a95908d7c653","robotid":"ced165163e51e06e01dc44c35fea3eaf"
}
返回结果
{"code":0
}
处理逻辑

  • 查询共享文件的数量;
  • 如果共享文件数量为1则删除共享文件数量对应的行
  • 如果共享文件数量>1,则更新共享数量文件-1。

转存文件

请求URL
URLhttp://ip/file/dealsharefile?cmd=save
TypePOST
HTTP Version1.1
Content-Typeapplication/json
请求参数
Param含义Rule是否必须缺省
robotid机器人唯一 ID不超过32个字符必填NULL
md5md5值不超过32个字符必填NULL
filename文件名称不超过128个字符必填NULL
服务示例

返回结果参数说明

名称含义规则说明
code结果值0: 成功
1: 失败
5: 文件存在
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
URLhttp://ip/file/dealsharefile?cmd=save
TypePOST
HTTP Version1.1
Content-Typeapplication/json
请求参数
Param含义Rule是否必须缺省
robotid机器人唯一 ID不超过32个字符必填NULL
md5md5值不超过32个字符必填NULL
filename文件名称不超过128个字符必填NULL
服务示例

返回结果参数说明

名称含义规则说明
code结果值0: 成功
1: 失败
5: 文件存在
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
URLhttp://ip/file/sharefile?cmd=share
TypePOST
HTTP Version1.1
Content-Typeapplication/json
请求参数
Param含义Rule是否必须缺省
tokentoken同上必填NULL
robotid机器人唯一 ID不超过32个字符必填NULL
md5md5值不超过32个字符必填NULL
filename文件名称不超过128个字符必填NULL
服务示例

返回结果参数说明

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

调用接口

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

新建分组

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

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

返回结果参数说明

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

调用接口

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

image.png

释放分组

请求 URL
URLhttp://ip/msg/freegroup
TypePOST
HTTP Version1.1
Content-Typeapplication/json
请求参数
Param含义Rule是否必须缺省
tokentoken同上必填NULL
robotid机器人唯一 ID不超过32个字符必填NULL
topic加密后的topic不超过32个字符必填NULL
服务示例

返回结果参数说明

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

调用接口

http://ip/file/msg/freegroup
参数
{"token":"3a58ca22317e637797f8bcad5c047446","robotid":"ced165163e51e06e01dc44c35fea3eaf","topic":"614b0c23f5f4cd3a68ba5581e2169df3"
}
返回结果
{"code":0,
}
处理逻辑

image.png

http://www.lryc.cn/news/443585.html

相关文章:

  • 《python语言程序设计》2018版第8章18题几何circle2D类(上部)
  • nginx upstream转发连接错误情况研究
  • alias 后门从入门到应急响应
  • 【远程调用PythonAPI-flask】
  • [今日Arxiv] 思维迭代:利用内心对话进行自主大型语言模型推理
  • glTF格式:WebGL应用的3D资产优化解决方案
  • Unity3D入门(一) : 第一个Unity3D项目,实现矩形自动旋转,并导出到Android运行
  • 数据结构与算法——Java实现 8.习题——移除链表元素(值)
  • 如何理解MVCC
  • 在 Qt 中使用 QLabel 设置 GIF 动态背景
  • Flyway 数据库差异处理
  • CSS 选择器的分类与使用要点一
  • 无人机集群路径规划:麻雀搜索算法(Sparrow Search Algorithm, SSA)​求解无人机集群路径规划,提供MATLAB代码
  • harbor集成trivy镜像扫描工具
  • DMA学习
  • C语言18--头文件
  • vscode软件在 C发中常用插件
  • 【C++ Primer Plus习题】17.2
  • Vue Props传值
  • FreeSWITCH event_socket 配置从其他地址连接
  • 信息安全数学基础(19)同余式的基本概念及一次同余式
  • 网关过滤器:Spring Cloud Gateway
  • 力扣最热一百题——除自身以外数组的乘积
  • 监控易监测对象及指标之:全面监控SQL Server数据库
  • 计算机视觉的应用34-基于CV领域的人脸关键点特征智能提取的技术方法
  • What is new in .NET 8 and C#12
  • 基于R语言的统计分析基础:使用键盘输入数据
  • unity3d入门教程九
  • 着色器 简介
  • redis单点、主从、哨兵、集群的不同