如何做一款SDK產(chǎn)品?
為什么要做SDK產(chǎn)品?SDK產(chǎn)品需要提供哪些能力?如何提供SDK?
眾所周知,基于深度學習的計算機視覺在近兩年幾乎成為了所有互聯(lián)網(wǎng)公司的一個戰(zhàn)略發(fā)展,大到有BAT、科大訊飛、網(wǎng)易等一線互聯(lián)網(wǎng)公司還有曠視、商湯等獨角獸企業(yè),小到有數(shù)不清的A輪、B輪的創(chuàng)業(yè)公司,大家都在致力于研究自己的AI產(chǎn)品。
在AI領域內(nèi),有很多的公司對外均提供SDK產(chǎn)品,今天主要分析下如何做一個SDK產(chǎn)品。
第一、為什么要做SDK產(chǎn)品?
目前各個公司對外提供的AI產(chǎn)品包括以下幾種方式:
(1)整套的行業(yè)產(chǎn)品解決方案,有智慧零售、智能安防等;做這樣一套解決方案,不僅對產(chǎn)品經(jīng)理要求很高,如果是自研團隊來開發(fā),那么對算法團隊,對工程化團隊均有很高的要求,所以很多公司都會跟產(chǎn)業(yè)鏈上的眾多專業(yè)性的公司合作,構(gòu)建解決方案的同時還搭建屬于自己的產(chǎn)業(yè)生態(tài)鏈。
比如百度提供智慧零售方案,其合作的有開為科技、惠合科技、靈友科技等一系列公司,百度通過為這些公司提供AI技術,一方面有了自己的解決方案,另一方面還可以通過這類公司延伸到各個行業(yè)領域,獲得重要的數(shù)據(jù)。
(2)基于SaaS平臺的api接口服務,這類服務對于多數(shù)公司的要求較高,需要構(gòu)建自有的云平臺,用戶根據(jù)自己的需求,在平臺上調(diào)用不同的接口,主要按照調(diào)用次數(shù)付費。
缺點是必須聯(lián)外網(wǎng)且外網(wǎng)帶寬如果過低服務容易中斷,同時用戶相應的數(shù)據(jù)也會被傳輸?shù)椒辗降腟aaS平臺上,對于數(shù)據(jù)隱私性要求高得公司,這個方式顯然存在隱患;
(3)離線SDK,用戶按照授權設備購買服務方離線的SDK產(chǎn)品和正式授權證書,一旦部署到設備上將永久使用且無法更換設備。
優(yōu)點;屬于買斷產(chǎn)品。
- 第一、用戶一般只需要在第一次部署時候連接外網(wǎng)使用證書激活即可離線使用,不用擔心數(shù)據(jù)被服務方獲??;
- 第二、對外網(wǎng)帶寬無要求;
缺點:
- 第一、SDK產(chǎn)品對于用戶來說可擴展性不夠,用戶只能使用當前SDK所提供的能力;
- 第二、各個廠家的SDK產(chǎn)品幾乎都是跟硬件設備綁定的,用戶按照設備數(shù)付費,且一旦跟當前設備綁定則無法更換設備;
- 第三、一般SDK產(chǎn)品對于硬件設備性能都有一定的要求,過低的硬件性能無法承載。
對于產(chǎn)品經(jīng)理來說,API服務和SDK服務均可以實現(xiàn)產(chǎn)品目標,那需要弄明白為什么需要提供離線的SDK產(chǎn)品;
第一、時間問題:提供API服務,對于產(chǎn)品提供方來說就需要服務端資源,首先要考慮的是服務端的硬件資源、其次要考慮服務端的架構(gòu),對外提供的接口形式等問題,耗時周期往往較長;如果采用SDK形式一般只需要算法提供好模型和配置文件,由研發(fā)同事進行接口封裝就可以對外提供服務了。
第二、數(shù)據(jù)隱私:很多公司對于數(shù)據(jù)資源有自己的隱私政策,一般是不愿意將數(shù)據(jù)上傳到第三方平臺處理的。對于非常關注以上兩點的用戶,產(chǎn)品經(jīng)理就需要好好考慮是否要采用SDK的形式對外提供技術服務了。
第二、提供什么樣的SDK?
這點我認為產(chǎn)品經(jīng)理需要弄清楚SDK需要提供哪些能力,由于SDK多數(shù)是離線形式提供出去,對于業(yè)務方和產(chǎn)品方來說,后期修改起來都是很麻煩的一件事情,所以產(chǎn)品經(jīng)理需要調(diào)查清楚業(yè)務方到底有哪些需求,說到底就是產(chǎn)品經(jīng)理的需求梳理能力了。
作一個AI產(chǎn)品經(jīng)理,為什么需要懂一些AI相關的技術呢?
在梳理完需求后就可以體現(xiàn)出來了,產(chǎn)品經(jīng)理需要根據(jù)這些需求,理解需要哪些算法技術,才能更好的跟算法同事對接,目前計算機視覺技術是存在很多的瓶頸的,如果作為一個AI產(chǎn)品經(jīng)理不能很好的將需求梳理成算法需求,很容易給后期的算法研究帶來不必要的麻煩。
梳理清楚需求,弄明白需要使用哪些算法技術,產(chǎn)品經(jīng)理對內(nèi)就需要跟算法同事提SDK需求了,告訴算法同事,SDK需要具備什么樣的能力,對外需要跟業(yè)務方確認使用硬件設備的性能,讓后期研發(fā)出來的SDK有更好的承載平臺。
通常要求的硬件性能一般是要高于SDK要去的硬件性能的,為什么呢?因為用戶會基于你提供的SDK做其他相關的應用,這個對于硬件也是有性能要求的。
第三、如何提供SDK?
SDK封裝完成,測試也沒有問題,可以對外提供了,就需要考慮對外提供的形式了。俗稱SDK激活,為什么需要激活呢?可以不激活直接提供給用戶使用嗎?
除非是公司內(nèi)部使用,否則激活這步必不可少;如果不考慮激活,用戶一旦拿到SDK就可以干任何想干的事情,也可以在任何一臺設備上部署,產(chǎn)品方是沒有辦法控制SDK后續(xù)的使用情況的。
在第一點說過當前公司對外提供的SDK基本上都是跟硬件設備綁定的,通常采用的方式是第一次聯(lián)網(wǎng),SDK將用戶申請的license信息和讀取到的硬件指紋信息,一并傳輸?shù)椒斩?,服務端校驗license信息,校驗成功,則將硬件指紋信息記錄下來,返回激活成功的信息,校驗失敗,則返回錯誤信息。
為什么需要記錄硬件指紋信息呢?記錄硬件指紋信息是為了保障后續(xù)設備在激活后,即使卸載程序,重新安裝再激活就不要授權了。否則用戶在相同的設備上卸載程序再安裝還要用戶購買激活權限,顯然用戶是不會同意的。
在激活方案中,產(chǎn)品經(jīng)理需要考慮的是SDK端和服務端校驗的邏輯,當然還有服務端的功能原型;至于記錄什么樣的硬件指紋信息,在傳輸過程中采用什么樣的信息加密方案則是技術同事需要考慮的了!!
事實上,雖然SDK產(chǎn)品看起來很簡單,只是一個功能性的東西,也可以說是AI產(chǎn)品中最小的一個產(chǎn)品形式,但是同樣需要產(chǎn)品經(jīng)理考慮多個方面;比如業(yè)務需求梳理、算法需求、硬件性能、服務端和SDK交互邏輯、校驗細節(jié)等!
本文由 @Eric_d 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
請問離線sdk是把模型下載下來嗎
15235937625 微信請教一下
13072659880 微信請教一下
小白路過 可不可以只開放sdk的更新通道 也叫api?這樣綜合優(yōu)點了
SDK其實只是個工具包,它對外的形式也是接口,只是要根據(jù)需求確定開放的程度
itboyhp,請教一下,感謝
已加~
請問您說的設備指紋信息 是否就是 imei號
你好,還包括Android ID、MAC、CPU信息,設備序列號等;一般可以是幾種的組合生成的串號,最后再做一次加密就好了
明白了 謝謝
sup441473497
好的,已加
可以請教一下嗎?
好的,已加
WTS12054127
好的,已加
一些問題方便加您wx溝通請教一下,看方便嗎?
感謝內(nèi)容翔實的分享,我個人也在看 AI SDK PM 方向。不知道是否可以加微信 BinaryHB 交流謝謝~
好的
您好,我的微信是18510275267,能交流一下嗎?
好的,我加您
你好,可以相互交流一下嗎,請教一個問題,我的wx是13545383222
你好,想詳細請教一個問題,我加你微信
嗯嗯,您的wx是?
你好,能私聊一下嗎~~
嗯嗯好的,您的聯(lián)系是?
wdy362691604 這是VS號
wdy362691604 W X號
寫的很好
贊