如何做一款SDK产品?

30 评论 25306 浏览 176 收藏 9 分钟

为什么要做SDK产品?SDK产品需要提供哪些能力?如何提供SDK?

众所周知,基于深度学习的计算机视觉在近两年几乎成为了所有互联网公司的一个战略发展,大到有BAT、科大讯飞、网易等一线互联网公司还有旷视、商汤等独角兽企业,小到有数不清的A轮、B轮的创业公司,大家都在致力于研究自己的AI产品。

在AI领域内,有很多的公司对外均提供SDK产品,今天主要分析下如何做一个SDK产品。

第一、为什么要做SDK产品?

目前各个公司对外提供的AI产品包括以下几种方式:

(1)整套的行业产品解决方案,有智慧零售、智能安防等;做这样一套解决方案,不仅对产品经理要求很高,如果是自研团队来开发,那么对算法团队,对工程化团队均有很高的要求,所以很多公司都会跟产业链上的众多专业性的公司合作,构建解决方案的同时还搭建属于自己的产业生态链。

比如百度提供智慧零售方案,其合作的有开为科技、惠合科技、灵友科技等一系列公司,百度通过为这些公司提供AI技术,一方面有了自己的解决方案,另一方面还可以通过这类公司延伸到各个行业领域,获得重要的数据。

(2)基于SaaS平台的api接口服务,这类服务对于多数公司的要求较高,需要构建自有的云平台,用户根据自己的需求,在平台上调用不同的接口,主要按照调用次数付费。

缺点是必须联外网且外网带宽如果过低服务容易中断,同时用户相应的数据也会被传输到服务方的SaaS平台上,对于数据隐私性要求高得公司,这个方式显然存在隐患;

(3)离线SDK,用户按照授权设备购买服务方离线的SDK产品和正式授权证书,一旦部署到设备上将永久使用且无法更换设备。

优点;属于买断产品。

  • 第一、用户一般只需要在第一次部署时候连接外网使用证书激活即可离线使用,不用担心数据被服务方获取;
  • 第二、对外网带宽无要求;

缺点

  • 第一、SDK产品对于用户来说可扩展性不够,用户只能使用当前SDK所提供的能力;
  • 第二、各个厂家的SDK产品几乎都是跟硬件设备绑定的,用户按照设备数付费,且一旦跟当前设备绑定则无法更换设备;
  • 第三、一般SDK产品对于硬件设备性能都有一定的要求,过低的硬件性能无法承载。

对于产品经理来说,API服务和SDK服务均可以实现产品目标,那需要弄明白为什么需要提供离线的SDK产品;

第一、时间问题:提供API服务,对于产品提供方来说就需要服务端资源,首先要考虑的是服务端的硬件资源、其次要考虑服务端的架构,对外提供的接口形式等问题,耗时周期往往较长;如果采用SDK形式一般只需要算法提供好模型和配置文件,由研发同事进行接口封装就可以对外提供服务了。

第二、数据隐私:很多公司对于数据资源有自己的隐私政策,一般是不愿意将数据上传到第三方平台处理的。对于非常关注以上两点的用户,产品经理就需要好好考虑是否要采用SDK的形式对外提供技术服务了。

第二、提供什么样的SDK?

这点我认为产品经理需要弄清楚SDK需要提供哪些能力,由于SDK多数是离线形式提供出去,对于业务方和产品方来说,后期修改起来都是很麻烦的一件事情,所以产品经理需要调查清楚业务方到底有哪些需求,说到底就是产品经理的需求梳理能力了。

作一个AI产品经理,为什么需要懂一些AI相关的技术呢?

在梳理完需求后就可以体现出来了,产品经理需要根据这些需求,理解需要哪些算法技术,才能更好的跟算法同事对接,目前计算机视觉技术是存在很多的瓶颈的,如果作为一个AI产品经理不能很好的将需求梳理成算法需求,很容易给后期的算法研究带来不必要的麻烦。

梳理清楚需求,弄明白需要使用哪些算法技术,产品经理对内就需要跟算法同事提SDK需求了,告诉算法同事,SDK需要具备什么样的能力,对外需要跟业务方确认使用硬件设备的性能,让后期研发出来的SDK有更好的承载平台。

通常要求的硬件性能一般是要高于SDK要去的硬件性能的,为什么呢?因为用户会基于你提供的SDK做其他相关的应用,这个对于硬件也是有性能要求的。

第三、如何提供SDK?

SDK封装完成,测试也没有问题,可以对外提供了,就需要考虑对外提供的形式了。俗称SDK激活,为什么需要激活呢?可以不激活直接提供给用户使用吗?

除非是公司内部使用,否则激活这步必不可少;如果不考虑激活,用户一旦拿到SDK就可以干任何想干的事情,也可以在任何一台设备上部署,产品方是没有办法控制SDK后续的使用情况的。

在第一点说过当前公司对外提供的SDK基本上都是跟硬件设备绑定的,通常采用的方式是第一次联网,SDK将用户申请的license信息和读取到的硬件指纹信息,一并传输到服务端,服务端校验license信息,校验成功,则将硬件指纹信息记录下来,返回激活成功的信息,校验失败,则返回错误信息。

为什么需要记录硬件指纹信息呢?记录硬件指纹信息是为了保障后续设备在激活后,即使卸载程序,重新安装再激活就不要授权了。否则用户在相同的设备上卸载程序再安装还要用户购买激活权限,显然用户是不会同意的。

在激活方案中,产品经理需要考虑的是SDK端和服务端校验的逻辑,当然还有服务端的功能原型;至于记录什么样的硬件指纹信息,在传输过程中采用什么样的信息加密方案则是技术同事需要考虑的了!!

事实上,虽然SDK产品看起来很简单,只是一个功能性的东西,也可以说是AI产品中最小的一个产品形式,但是同样需要产品经理考虑多个方面;比如业务需求梳理、算法需求、硬件性能、服务端和SDK交互逻辑、校验细节等!

 

本文由 @Eric_d 原创发布于人人都是产品经理。未经许可,禁止转载

题图来自Unsplash,基于CC0协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 请问离线sdk是把模型下载下来吗

    来自浙江 回复
  2. 15235937625 微信请教一下

    来自北京 回复
  3. 13072659880 微信请教一下

    来自上海 回复
  4. 小白路过 可不可以只开放sdk的更新通道 也叫api?这样综合优点了

    来自广东 回复
    1. SDK其实只是个工具包,它对外的形式也是接口,只是要根据需求确定开放的程度

      来自江苏 回复
  5. itboyhp,请教一下,感谢

    来自江苏 回复
    1. 已加~

      来自江苏 回复
  6. 请问您说的设备指纹信息 是否就是 imei号

    来自北京 回复
    1. 你好,还包括Android ID、MAC、CPU信息,设备序列号等;一般可以是几种的组合生成的串号,最后再做一次加密就好了

      来自江苏 回复
    2. 明白了 谢谢

      来自北京 回复
  7. sup441473497

    来自广东 回复
    1. 好的,已加

      来自江苏 回复
  8. 可以请教一下吗?

    来自广东 回复
  9. 好的,已加

    来自江苏 回复
  10. WTS12054127

    来自北京 回复
    1. 好的,已加

      来自江苏 回复
  11. 一些问题方便加您wx沟通请教一下,看方便吗?

    来自北京 回复
  12. 感谢内容翔实的分享,我个人也在看 AI SDK PM 方向。不知道是否可以加微信 BinaryHB 交流谢谢~

    来自台湾 回复
    1. 好的

      来自江苏 回复
  13. 您好,我的微信是18510275267,能交流一下吗?

    来自北京 回复
    1. 好的,我加您

      来自江苏 回复
  14. 你好,可以相互交流一下吗,请教一个问题,我的wx是13545383222

    来自广东 回复
  15. 你好,想详细请教一个问题,我加你微信

    来自北京 回复
    1. 嗯嗯,您的wx是?

      来自江苏 回复
  16. 你好,能私聊一下吗~~

    来自浙江 回复
    1. 嗯嗯好的,您的联系是?

      来自江苏 回复
    2. wdy362691604 这是VS号

      来自浙江 回复
    3. wdy362691604 W X号

      来自浙江 回复
  17. 写的很好

    回复
  18. 来自北京 回复