如何做一款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交互邏輯、校驗細節等!
本文由 @Eric_d 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自Unsplash,基于CC0協議
請問離線sdk是把模型下載下來嗎
15235937625 微信請教一下
13072659880 微信請教一下
小白路過 可不可以只開放sdk的更新通道 也叫api?這樣綜合優點了
SDK其實只是個工具包,它對外的形式也是接口,只是要根據需求確定開放的程度
itboyhp,請教一下,感謝
已加~
請問您說的設備指紋信息 是否就是 imei號
你好,還包括Android ID、MAC、CPU信息,設備序列號等;一般可以是幾種的組合生成的串號,最后再做一次加密就好了
明白了 謝謝
sup441473497
好的,已加
可以請教一下嗎?
好的,已加
WTS12054127
好的,已加
一些問題方便加您wx溝通請教一下,看方便嗎?
感謝內容翔實的分享,我個人也在看 AI SDK PM 方向。不知道是否可以加微信 BinaryHB 交流謝謝~
好的
您好,我的微信是18510275267,能交流一下嗎?
好的,我加您
你好,可以相互交流一下嗎,請教一個問題,我的wx是13545383222
你好,想詳細請教一個問題,我加你微信
嗯嗯,您的wx是?
你好,能私聊一下嗎~~
嗯嗯好的,您的聯系是?
wdy362691604 這是VS號
wdy362691604 W X號
寫的很好
贊