偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

一文帶你看懂并優(yōu)化AI應(yīng)用的架構(gòu)設(shè)計(jì)

云計(jì)算
本文將告訴大家如何在Akamai云計(jì)算平臺(tái)上優(yōu)化一個(gè)基于Qwik和OpenAI服務(wù)的Web項(xiàng)目。具體來(lái)說(shuō),我們將通過(guò)本文詳細(xì)剖析項(xiàng)目的整體架構(gòu)和優(yōu)化方式,從而為廣大開(kāi)發(fā)者帶來(lái)啟發(fā)。

AI技術(shù)現(xiàn)在很火,各大公司都開(kāi)始朝著這個(gè)領(lǐng)域發(fā)力。他們不僅創(chuàng)建出很多出色成果,還通過(guò)一系列技術(shù)、工具和服務(wù),幫助普通開(kāi)發(fā)者也能輕而易舉地開(kāi)發(fā)出新穎的AI應(yīng)用。

延伸閱讀,點(diǎn)擊鏈接了解 Akamai cloud-computing

本文將告訴大家如何在Akamai云計(jì)算平臺(tái)上優(yōu)化一個(gè)基于QwikOpenAI服務(wù)的Web項(xiàng)目。具體來(lái)說(shuō),我們將通過(guò)本文詳細(xì)剖析項(xiàng)目的整體架構(gòu)和優(yōu)化方式,從而為廣大開(kāi)發(fā)者帶來(lái)啟發(fā)。

基本架構(gòu)

假設(shè)有這樣的一個(gè)Web應(yīng)用


在兩個(gè)文本框中輸入兩個(gè)對(duì)手,隨后由AI來(lái)決定在戰(zhàn)斗中誰(shuí)會(huì)獲勝。該應(yīng)用還提供了一些解釋決策原因以及創(chuàng)建圖像的選項(xiàng)。該應(yīng)用相當(dāng)基礎(chǔ),用戶(hù)提交兩個(gè)對(duì)手,然后應(yīng)用程序即時(shí)返回一個(gè)由AI生成的響應(yīng),從中得知哪個(gè)對(duì)手會(huì)在戰(zhàn)斗中獲勝

架構(gòu)也很簡(jiǎn)單

  1. 客戶(hù)端向服務(wù)器發(fā)送請(qǐng)求。
  2. 服務(wù)器構(gòu)造提示并將提示轉(zhuǎn)發(fā)給OpenAI。
  3. OpenAI向服務(wù)器返回一個(gè)流式響應(yīng)
  4. 服務(wù)器對(duì)流式響應(yīng)進(jìn)行任何必要的調(diào)整,并將其轉(zhuǎn)發(fā)給客戶(hù)端。

該應(yīng)用搭建在Akamai的云計(jì)算服務(wù)(以前的Linode)上,不過(guò)下文將要介紹的內(nèi)容對(duì)任何云平臺(tái)應(yīng)該都適用。


看起來(lái)像是高級(jí)餐廳里的服務(wù)員, ? ?則是一只眼睛,或者說(shuō)是AI

從技術(shù)上講,這是完全可行的,但存在一些問(wèn)題,特別是當(dāng)用戶(hù)提交重復(fù)請(qǐng)求時(shí)。將響應(yīng)存儲(chǔ)在我們自己的服務(wù)器上,并且只針對(duì)唯一請(qǐng)求訪(fǎng)問(wèn)OpenAI,可能會(huì)讓整個(gè)過(guò)程更快速,更具成本效益

這就需要假設(shè)我們不需要每個(gè)請(qǐng)求都是非確定性的(即相同的輸入產(chǎn)生不同的輸出)。我們可以假設(shè)相同的輸入產(chǎn)生相同的輸出是可接受的。畢竟,誰(shuí)會(huì)贏得一場(chǎng)戰(zhàn)斗的預(yù)測(cè)結(jié)果可能并不會(huì)改變

添加數(shù)據(jù)庫(kù)架構(gòu)

如果我們想要存儲(chǔ)來(lái)自OpenAI的響應(yīng),一種實(shí)際的放置地點(diǎn)是某種類(lèi)型的數(shù)據(jù)庫(kù),這種數(shù)據(jù)庫(kù)應(yīng)該能讓我們圍繞兩個(gè)對(duì)手進(jìn)行快速、簡(jiǎn)單的查找。這樣,在收到請(qǐng)求時(shí),就可以首先檢查數(shù)據(jù)庫(kù)

  1. 客戶(hù)端向服務(wù)器發(fā)送請(qǐng)求。
  2. 服務(wù)器檢查數(shù)據(jù)庫(kù)中是否存在與用戶(hù)輸入相匹配的條目。
  3. 如果存在匹配的記錄,服務(wù)器使用該數(shù)據(jù)回復(fù)并完成請(qǐng)求。跳過(guò)后續(xù)步驟。
  4. 如果不存在匹配的記錄,則服務(wù)器繼續(xù)執(zhí)行上一小節(jié)中流程的第三步(聯(lián)系OpenAI
  5. 在關(guān)閉響應(yīng)前,服務(wù)器將OpenAI的結(jié)果存儲(chǔ)在數(shù)據(jù)庫(kù)中。

虛線(xiàn)代表可選請(qǐng)求,而 看起來(lái)像是一個(gè)硬盤(pán)

有了這樣的設(shè)置,任何重復(fù)的請(qǐng)求都將由數(shù)據(jù)庫(kù)直接處理。通過(guò)將一些OpenAI請(qǐng)求設(shè)置為可選,我們還有可能降低用戶(hù)體驗(yàn)的延遲,同時(shí)通過(guò)減少API請(qǐng)求的數(shù)量來(lái)節(jié)省費(fèi)用

這是一個(gè)很好的開(kāi)始,特別是如果服務(wù)器和數(shù)據(jù)庫(kù)位于同一個(gè)地區(qū)。這將比訪(fǎng)問(wèn)OpenAI的服務(wù)器快得多。

然而,隨著應(yīng)用程序變得更加受歡迎,我們可能會(huì)開(kāi)始吸引來(lái)自世界各地的用戶(hù)。數(shù)據(jù)庫(kù)查詢(xún)的速度自然是越快越好,但往返傳輸數(shù)據(jù)造成的延遲又該如何消除?

我們可以通過(guò)將應(yīng)用移動(dòng)到距離用戶(hù)更近的地方來(lái)解決這個(gè)問(wèn)題

引入邊緣計(jì)

邊緣(Edge)指一種讓內(nèi)容盡可能接近用戶(hù)的方式。對(duì)一些應(yīng)用場(chǎng)景來(lái)說(shuō),邊緣可能意味著物聯(lián)網(wǎng)設(shè)備或手機(jī)基站,但在Web應(yīng)用之類(lèi)的場(chǎng)景中,最典型的邊緣往往是內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN

CDN是一種全球分布的計(jì)算機(jī)網(wǎng)絡(luò),可以從網(wǎng)絡(luò)中最近的節(jié)點(diǎn)響應(yīng)用戶(hù)請(qǐng)求。傳統(tǒng)的CDN是為靜態(tài)資產(chǎn)設(shè)計(jì)的,但近年來(lái),CDN開(kāi)始支持邊緣計(jì)算。

有了邊緣計(jì)算,我們可以將很多后端邏輯移動(dòng)到距離用戶(hù)非常近的地方,而且不僅限于計(jì)算!大多數(shù)邊緣計(jì)算提供商還在同一邊緣節(jié)點(diǎn)上提供某種最終一致的鍵值存儲(chǔ)服務(wù)

這會(huì)對(duì)我們的應(yīng)用程序產(chǎn)生什么影響?

  1. 客戶(hù)端向我們的后端發(fā)送請(qǐng)求
  2. 邊緣計(jì)算網(wǎng)絡(luò)將請(qǐng)求路由到最近的邊緣節(jié)點(diǎn)。
  3. 邊緣節(jié)點(diǎn)檢查與用戶(hù)輸入匹配的鍵值存儲(chǔ)中是否存在現(xiàn)有記錄。
  4. 如果存在匹配的記錄,邊緣節(jié)點(diǎn)將使用該數(shù)據(jù)回復(fù),完成請(qǐng)求。跳過(guò)后續(xù)步驟。
  5. 如果不存在匹配的記錄,則邊緣節(jié)點(diǎn)將請(qǐng)求轉(zhuǎn)發(fā)到源服務(wù)器,源服務(wù)器再將其傳遞給OpenAI……
  6. 在關(guān)閉響應(yīng)前,服務(wù)器將OpenAI的結(jié)果存儲(chǔ)在邊緣鍵值存儲(chǔ)中


邊緣節(jié)點(diǎn)是藍(lán)色方框,用 表示;EdgeWorkerAkamai的邊緣計(jì)算產(chǎn)品,用 表示;EdgeKVAkamai的鍵值存儲(chǔ)服務(wù),用 表示。從物理距離來(lái)說(shuō),邊緣節(jié)點(diǎn)比云中的源服務(wù)器更接近客戶(hù)

源服務(wù)器在這里可能并非絕對(duì)必要,但我們認(rèn)為它的存在有一定必要性?;跀?shù)據(jù)、計(jì)算和邏輯流程考慮,這與先前的架構(gòu)基本相同。主要區(qū)別在于先前存儲(chǔ)的結(jié)果現(xiàn)在更接近用戶(hù),幾乎可以立即返回

注意:盡管數(shù)據(jù)被緩存在邊緣,但響應(yīng)仍然是動(dòng)態(tài)構(gòu)建的。如果不需要?jiǎng)討B(tài)響應(yīng),將CDN放置在源服務(wù)器前并設(shè)置正確的HTTP頭來(lái)緩存響應(yīng),可能是一種更簡(jiǎn)單的做法。

這樣就完成了!任何重復(fù)請(qǐng)求幾乎會(huì)立即得到響應(yīng),同時(shí)也節(jié)省了不必要的API請(qǐng)求。文本響應(yīng)的架構(gòu)問(wèn)題順利解決,但是別忘了,還有AI圖像生成功能呢

緩存圖

處理圖片時(shí),我們需要考慮內(nèi)容的交付和存儲(chǔ)。相信OpenAI有自己的解決方案,但一些企業(yè)出于安全、合規(guī)性或可靠性等原因的考慮,可能希望與圖片交付和存儲(chǔ)有關(guān)的整個(gè)基礎(chǔ)設(shè)施都完全由自己掌控。一些情況下,企業(yè)甚至可能寧愿運(yùn)行自己的圖像生成服務(wù),而不是使用OpenAI。

在當(dāng)前的工作流程中,用戶(hù)發(fā)出請(qǐng)求,最終請(qǐng)求傳遞到OpenAI。OpenAI生成圖像,但不返回圖像,而是返回一個(gè)JSON響應(yīng),其中包含圖像的URL,該URL托管在OpenAI的基礎(chǔ)設(shè)施上。使用此響應(yīng)時(shí),可以用URL<img>標(biāo)簽添加到頁(yè)面,從而啟動(dòng)另一個(gè)請(qǐng)求來(lái)獲取對(duì)應(yīng)的圖像。

如果要將圖像托管在自己的基礎(chǔ)設(shè)施上,需要一個(gè)存儲(chǔ)圖像的地方。我們可以將圖像寫(xiě)入源服務(wù)器的磁盤(pán),但這可能會(huì)快速使用大量磁盤(pán)空間,并且必須升級(jí)服務(wù)器,這可能會(huì)很昂貴。對(duì)象存儲(chǔ)是一種更便宜的解決方案,我們可以將圖像上傳到自己的對(duì)象存儲(chǔ)實(shí)例,并使用該實(shí)例對(duì)應(yīng)的URL

這解決了存儲(chǔ)問(wèn)題,但對(duì)象存儲(chǔ)桶通常都部署在單個(gè)區(qū)域,這與我們?cè)跀?shù)據(jù)庫(kù)中存儲(chǔ)文本時(shí)遇到的問(wèn)題類(lèi)似。單個(gè)區(qū)域可能距離用戶(hù)很遠(yuǎn),這可能會(huì)導(dǎo)致很高的延遲。

又到了邊緣的用武之地了。為純靜態(tài)資產(chǎn)添加CDN功能其實(shí)非常簡(jiǎn)單。一旦配置完成,CDN將在初始請(qǐng)求時(shí)從對(duì)象存儲(chǔ)中拉取圖像,并將其緩存以供來(lái)自同一區(qū)域的后續(xù)訪(fǎng)問(wèn)者直接交付

我們的圖片處理流程如下

  1. 客戶(hù)端發(fā)送請(qǐng)求,根據(jù)對(duì)手生成圖像
  2. 邊緣計(jì)算檢查該請(qǐng)求的圖像數(shù)據(jù)是否已存在。如果存在,則直接返回URL。
  3. 圖像與URL一起添加到頁(yè)面,并由瀏覽器請(qǐng)求圖像。
  4. 如果圖像已經(jīng)緩存在CDN中,則瀏覽器幾乎能立即加載。流程結(jié)束。
  5. 如果圖像尚未被緩存,CDN將從對(duì)象存儲(chǔ)位置拉取圖像,緩存一份副本供未來(lái)的請(qǐng)求使用,并將圖像返回給客戶(hù)端。這是流程的另一個(gè)結(jié)尾。
  6. 如果圖像數(shù)據(jù)不在邊緣鍵值存儲(chǔ)中,生成圖像的請(qǐng)求將發(fā)送到服務(wù)器,然后傳遞到OpenAI,后者生成圖像并返回URL信息。服務(wù)器啟動(dòng)任務(wù)將圖像保存在對(duì)象存儲(chǔ)桶中,將圖像數(shù)據(jù)存儲(chǔ)在邊緣鍵值存儲(chǔ)中,并將圖像數(shù)據(jù)返回給邊緣計(jì)算節(jié)點(diǎn)。
  7. 使用新的圖像數(shù)據(jù),客戶(hù)端創(chuàng)建圖像,生成新請(qǐng)求,并從步驟五繼續(xù)。


內(nèi)容交付網(wǎng)絡(luò)以交付卡車(chē)( )和網(wǎng)絡(luò)信號(hào)( )表示,對(duì)象存儲(chǔ)以盒子里的襪子( )或存儲(chǔ)中的對(duì)象表

誠(chéng)然,最后這種架構(gòu)稍微復(fù)雜了一些,但如果應(yīng)用程序要處理大量流量,這種架構(gòu)也是很有必要的

大功告

通過(guò)所有這些改變,我們已經(jīng)為唯一請(qǐng)求創(chuàng)建了AI生成的文本和圖像,并為重復(fù)請(qǐng)求提供了來(lái)自邊緣的緩存內(nèi)容。結(jié)果是更快的響應(yīng)時(shí)間和更好的用戶(hù)體驗(yàn)(當(dāng)然,API調(diào)用也更少)。

上述內(nèi)容完全以Akamai云計(jì)算平臺(tái)為例,但其實(shí)所涉及的各種數(shù)據(jù)庫(kù)、邊緣計(jì)算、對(duì)象存儲(chǔ)和CDN也適用于其他平臺(tái)。這是一個(gè)有著廣泛適用性的思路。只不過(guò)通過(guò)與Akamai的云計(jì)算和邊緣計(jì)算服務(wù)整合不僅僅能改善性能,還可以獲得很多非??岬陌踩δ?/span>。

例如,在Akamai的網(wǎng)絡(luò)上,我們可以使用諸如Web應(yīng)用程序防火墻(WAF)、分布式拒絕服務(wù)(DDoS)防護(hù)、智能爬蟲(chóng)檢測(cè)等功能,從而更好地保障應(yīng)用程序、數(shù)據(jù)、客戶(hù)信息的安全性。

這些額外的服務(wù)還能提供哪些好處?歡迎關(guān)注Akamai,我們回頭再細(xì)細(xì)道來(lái)。

如您所在的企業(yè)也在考慮采購(gòu)云服務(wù)或進(jìn)行云遷移,

點(diǎn)擊鏈接了解Akamai Linode的解決方案


責(zé)任編輯:張燕妮
相關(guān)推薦

2025-06-27 02:15:00

芯片流程數(shù)字芯片

2025-07-18 11:52:48

2019-03-19 16:15:10

區(qū)塊鏈架構(gòu)設(shè)計(jì)編程語(yǔ)言

2021-10-13 19:39:26

鴻蒙HarmonyOS應(yīng)用

2025-05-30 02:21:00

Dify人工智能LLMOps

2024-01-12 07:14:52

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

2020-01-03 09:00:00

數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)管理金融

2020-03-31 14:40:24

HashMap源碼Java

2016-12-23 14:08:30

物聯(lián)網(wǎng)操作系統(tǒng)開(kāi)源

2019-09-25 08:51:44

Python收藏算法

2023-03-31 08:16:53

Flutter優(yōu)化內(nèi)存管理

2016-08-18 00:21:12

網(wǎng)絡(luò)爬蟲(chóng)抓取網(wǎng)絡(luò)

2023-06-06 07:07:35

MicrosoftAI設(shè)計(jì)工具

2025-07-11 01:45:00

SIM卡模塊識(shí)別

2024-08-12 12:30:27

2022-09-05 09:25:53

KubernetesService

2020-12-18 11:54:22

Linux系統(tǒng)架構(gòu)

2021-06-04 09:35:05

Linux字符設(shè)備架構(gòu)

2021-02-22 09:05:59

Linux字符設(shè)備架構(gòu)

2023-07-14 08:00:00

ORMRust ORMSQL
點(diǎn)贊
收藏

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