自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何兩天時(shí)間上線一款A(yù)I應(yīng)用?

人工智能 前端
本文讓我們看看一位國(guó)外老哥是如何用一個(gè)周末時(shí)間開發(fā)一款A(yù)I應(yīng)用。該應(yīng)用上線僅40天,就獲得了20wUV。

大家好,我卡頌。

最近幾個(gè)月,??AI???相關(guān)新聞不斷搶占大家的注意力。逞著這波熱度,各路開發(fā)者都投入到??AI??應(yīng)用的開發(fā)。

比如,15歲的開發(fā)者saviomartin7[1]開發(fā)的IconifyAI[2]可以根據(jù)文字描述生成應(yīng)用??Logo??。網(wǎng)頁上線5天就賺到了接近1.5k刀。

圖片

這波機(jī)遇對(duì)前端同學(xué)有很大利好,因?yàn)楦鞣N基礎(chǔ)服務(wù)(比如各種存儲(chǔ)服務(wù)、AI服務(wù)、部署)都有成熟的解決方案可以直接使用,前端同學(xué)只需專注業(yè)務(wù)邏輯的實(shí)現(xiàn)即可。

本文讓我們看看一位國(guó)外老哥是如何用一個(gè)周末時(shí)間開發(fā)一款A(yù)I應(yīng)用。該應(yīng)用上線僅40天,就獲得了20wUV。

圖片

應(yīng)用架構(gòu)

首先介紹下這款應(yīng)用,應(yīng)用名叫restorephotos[3],用戶上傳模糊的老照片后,??AI??會(huì)修復(fù)照片,并返回更清晰的版本。應(yīng)用的完整代碼已開源。

應(yīng)用開源代碼地址[4]?

圖片

整個(gè)應(yīng)用的架構(gòu)分為4部分:

  1. 前端(Next.js)
  2. 圖片存儲(chǔ)服務(wù)
  3. Next.js服務(wù)端
  4. AI API

圖片

完整工作流程如下:

  1. 用戶在前端上傳老照片
  2. 前端調(diào)用圖片存儲(chǔ)服務(wù),返回圖片存儲(chǔ)地址給前端
  3. 前端將圖片存儲(chǔ)地址發(fā)送給后端
  4. 后端調(diào)用AI API處理圖片
  5. AI API返回處理后的圖片給后端,后端返回給前端
  6. 前端展示處理后的效果

前端部分

整個(gè)前后端的實(shí)現(xiàn)使用Next.js,前端主要包括兩部分:

  • 圖片上傳
  • AI處理后的圖片展示

所有主要功能均使用開源庫實(shí)現(xiàn)。其中,圖片上傳功能使用react-uploader[5]實(shí)現(xiàn):

<UploadDropzone
uploader={uploader}
options={options}
width="670px"
height="250px"
onUpdate={(file) => {
// ...圖片上傳成功后的邏輯
}}
/>;

處理后的圖片展示效果使用react-compare-slider[6]:

圖片

PS:這里用的是我祖父的老照片 ?ˉ?ˉ?

后端部分

后端核心邏輯包括兩部分:

  1. 用Redis做接口調(diào)用頻率限制。

Redis?使用@upstash-redis[7],這是一款基于HTTP?的Redis?客戶端。在線創(chuàng)建Redis?數(shù)據(jù)庫后,我們可以在服務(wù)端通過HTTP請(qǐng)求的方式調(diào)用它。

  1. 用replicate提供的swinir模型處理圖片。

replicate是一家機(jī)器學(xué)習(xí)的云服務(wù)商,我們可以根據(jù)業(yè)務(wù)需要選擇不同機(jī)器學(xué)習(xí)模型,比如:

  • 處理圖片清晰度
  • 破碎照片修復(fù)
  • 文字轉(zhuǎn)圖片
  • ...

圖片

在Next.js服務(wù)端,我們通過HTTP的形式調(diào)用模型API:

// 我們上傳的圖片地址
const imageUrl = req.body.imageUrl;
// 請(qǐng)求模型接口
const startResponse = await fetch('https://api.replicate.com/v1/predictions', {
method: 'POST',
// ...省略代碼
body: JSON.stringify({
// 我們需要的模型對(duì)應(yīng)的版本
version: '9283608cc6b7be6b65a8e44983db012355fde4132009bf99d976b2f0896856a3',
input: { img: imageUrl, version: 'v1.4', scale: 2 }
})
});

值得注意的是,模型計(jì)算需要時(shí)間,所以在服務(wù)端,我們每秒輪詢一次結(jié)果,如果模型返回處理后的圖片,我們就將圖片返回給前端:

// 保存模型處理后的結(jié)果
let restoredImage: string | null = null;
while (!restoredImage) {
// 請(qǐng)求模型API
let finalResponse = await fetch(endpointUrl, {
method: "GET",
// ...省略代碼
});
let jsonFinalResponse = await finalResponse.json();

if (jsonFinalResponse.status === "succeeded") {
// 模型返回圖片成功
restoredImage = jsonFinalResponse.output;
} else if (jsonFinalResponse.status === "failed") {
// 模型返回圖片失敗
break;
} else {
// 模型還未返回圖片,1s后輪詢
await new Promise((resolve) => setTimeout(resolve, 1000));
}
}

總結(jié)

可以發(fā)現(xiàn),所有基礎(chǔ)服務(wù)均有現(xiàn)成產(chǎn)品可供使用,這極大加快了前端的開發(fā)效率,降低了開發(fā)成本。

作者運(yùn)行這個(gè)應(yīng)用的成本是多少呢?其中:

  • 圖片存儲(chǔ)使用的是upload.io[8]提供的存儲(chǔ)服務(wù)。這里作者使用的是35刀/月的基礎(chǔ)付費(fèi)版本,每月有50GB的上傳空間。
  • Redis云服務(wù)考慮到僅用來做接口調(diào)用頻率限制,使用免費(fèi)版就好。
  • 整個(gè)應(yīng)用使用Vercel部署,Vercel Pro每月20刀。
  • 20wUV的模型API調(diào)用費(fèi)用,大概是900刀。

對(duì)于想構(gòu)建自己的AI應(yīng)用的朋友,可以參考本文的實(shí)現(xiàn)與成本,行動(dòng)起來吧。

參考資料

[1]saviomartin7:https://twitter.com/saviomartin7

[2]IconifyAI:http://IconifyAI.com

[3]restorephotos:https://www.restorephotos.io/

[4]應(yīng)用開源代碼地址:https://github.com/Nutlope/restorePhotos

[5]react-uploader:https://www.npmjs.com/package/react-uploader

[6]react-compare-slider:https://www.npmjs.com/package/react-compare-slider

[7]@upstash-redis:https://docs.upstash.com/redis/overall/pricing

[8]upload.io:https://upload.io/pricing

責(zé)任編輯:姜華 來源: 魔術(shù)師卡頌
相關(guān)推薦

2011-12-08 21:04:15

應(yīng)用

2025-02-19 10:48:15

2020-07-23 08:17:47

代碼開發(fā)人員用戶

2011-09-26 10:22:01

工程師爸爸兒童應(yīng)用

2015-11-27 09:18:11

AngularJSWeb應(yīng)用

2019-12-10 14:35:40

Web 開發(fā)代碼

2024-06-24 09:44:08

AI社交應(yīng)用項(xiàng)目

2012-04-28 10:57:27

Metro UI

2017-03-06 11:02:59

產(chǎn)品軟件Power Desig

2011-09-16 17:00:19

iOS應(yīng)用Camera Geni

2025-01-22 16:13:07

2023-07-03 08:25:54

2014-12-16 10:11:22

2011-09-19 10:56:21

IOS應(yīng)用Frenzapp Mu音樂

2011-09-16 15:05:26

IOS應(yīng)用Trover定位發(fā)現(xiàn)

2011-09-19 13:58:55

iPhone應(yīng)用軟件Mobli照片共享

2014-06-27 14:53:06

應(yīng)用App產(chǎn)品

2014-06-27 14:52:12

應(yīng)用App產(chǎn)品

2011-12-02 09:04:59

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)