sdk是什么
为什么要做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交互逻辑、校验细节等!
题图来自Unsplash,基于CC0协议
相关阅读
数据观:产品经理要重视数据,根据数据做决策,用数据说话。格局观:学会换个角度,从战略层面去考虑问题,格局有多大,世界就有多大。细节观:细
笔者以安卓系统手机端用户的身份通过使用、体验和分析等方式来倒推“小红书”APP,并生成产品需求文档PRD。小红书app是以用户分享
所谓革命,是那些颠覆式的创新,而不是微创新。15年初,一个大胡子的兄弟本来还坐在阿里巴巴西溪园区的办公桌前,带着他标志性的黑色鸭舌
产品设计的本源是让用户更容易、更愉快地使用产品。因此,去亲身体验去思考用户使用的真实场景,多为此优化才能吸引用户使用,方便用户
现在是一个电商时代,很多人开网店,但是这很多人当中又有很多人不会开网店。开网店并不是有一台电脑,淘宝注册好店铺,把产品上架,然后就