使用 WebSocket 和耐用物件進行大規模即時 AI 推理
2024 年 10 月,我們討論了使用 AI Gateway 儲存來自 AI 應用程式的數十億條日誌,以及我們如何使用 Cloudflare 的開發者平台來實現此目的。
2024 年 10 月,我們介紹瞭如何使用 AI Gateway 儲存來自 AI 應用程式的數十億條日誌,以及如何使用 Cloudflare 的開發者平台來執行此操作。
AI Gateway 已處理超過 30 億筆日誌,且成長迅速,平台連線數持續穩定成長。為了幫助開發人員更有效地管理這種規模,我們希望提供一種替代方案來實現HTTP/2 keep-alive 來維持持久的HTTP(S) 連接,從而避免與AI Gateway 的每個新HTTP 連接重複握手和TLS 協商的開銷。我們知道實作 HTTP/2 可能會帶來挑戰,特別是當許多程式庫和工具預設可能不支援它並且大多數現代程式語言都有完善的 WebSocket 程式庫可用時。
考慮到這一點,我們使用 Cloudflare 的開發者平台和 Durable Objects(是的,再次!)來建立 WebSockets API,該 API 建立單一持久連接,從而實現持續通訊。
透過此 API,AI 網關支援的所有 AI 提供者都可以透過 WebSocket 進行訪問,從而允許您在客戶端或伺服器應用程式與 AI 網關之間維護單一 TCP 連線。最好的部分?即使您選擇的提供者不支援 WebSockets,我們也會為您處理,管理對您首選 AI 提供者的請求。
透過 WebSocket 連接到 AI Gateway,我們使用提供者支援的協定(HTTPS、WebSocket 等)為您向推理服務發出請求,您可以保持連線開啟以執行盡可能多的推理請求想要。
為了讓您與AI網關的連線更加安全,我們也引入了AI網關的身份驗證。新的 WebSockets API 將需要身份驗證。您所需要做的就是建立一個具有「AI Gateway: Run」權限的 Cloudflare API 令牌,並將其傳送到 cf-aig-authorization 標頭中。
在上面的流程圖:
1.當啟用身份驗證網關並包含有效令牌時,請求將成功通過。
2.如果啟用了驗證網關,但請求不包含具有有效令牌的所需 cf-aig-authorization 標頭,則請求將失敗。這可確保只有經過驗證的請求才能通過網關。
3.停用經過驗證的閘道時,將完全繞過 cf-aig-authorization 標頭,並且任何令牌(無論有效或無效)都會被忽略。
我們如何建構它
我們最近使用持久性物件 (DO) 來擴展 AI 網關的日誌記錄解決方案,因此在同一 DO 中使用 WebSocket 是很自然的選擇。
當我們的 Cloudflare Workers 收到新的 WebSocket 連線時,我們以兩種方式實作身份驗證,以支援 WebSocket 用戶端的不同功能。主要方法涉及透過 cf-aig-authorization 標頭驗證 Cloudflare API 令牌,確保令牌對於連接帳戶和網關有效。
但是,由於瀏覽器 WebSocket 實現的限制,我們也支援透過「sec-websocket-protocol」標頭進行驗證。瀏覽器 WebSocket 用戶端不允許在其標準 API 中使用自訂標頭,這使得在請求中新增身份驗證令牌變得複雜。雖然我們不建議您在瀏覽器中儲存 API 金鑰,但我們決定新增此方法,以便為所有 WebSocket 用戶端增加更多靈活性。
在這個初步驗證步驟之後,我們將連線升級到持久對象,這意味著它現在將處理該連線的所有訊息。在新連線被完全接受之前,我們會產生一個隨機的 UUID,因此該連線在持久性物件接收到的所有訊息中都是可識別的。在開放連線期間,透過標頭傳遞的任何 AI 閘道設定(例如 cf-aig-skip-cache(設定為 true 時繞過快取))都會被儲存並套用於會話中的所有請求。但是,這些標頭仍然可以根據每個請求進行覆蓋,就像今天的通用端點一樣。
如何運作
連線建立後,持久性物件開始偵聽傳入訊息。從現在起,使用者可以透過 WebSocket 以 AI Gateway 通用格式發送訊息,從而簡化應用程式從現有 HTTP 設定到基於 WebSockets 通訊的轉換。
當新訊息到達持久性物件時,它會使用支援 HTTP 通用端點的相同程式碼進行處理,從而實現跨 Workers 和持久物件的無縫程式碼重用 - 這是在 Cloudflare 上建置的主要優勢之一。
對於非串流請求,回應會封裝在 JSON 信封中,使我們能夠包含 AI 推理本身之外的其他信息,例如該請求的 AI 網關日誌 ID。
以下是上述請求的回應範例:
對於串流請求,AI Gateway 會發送一條帶有請求元資料的初始訊息,告訴開發人員流正在開始。
在此初始訊息之後,所有流塊在從推理提供者到達時都會即時中繼到 WebSocket 連線。請注意,這些流塊的元資料中僅包含 eventId 欄位(有關此新欄位的詳細資訊如下)。
這種方法有兩個目的:
以上是使用 WebSocket 和耐用物件進行大規模即時 AI 推理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

比特幣(BTC)週二飆升了91,000美元,在投資者的樂觀情緒和對美國 - 中國貿易緊張局勢解凍的新希望中攀升了近5%,

隨著XRP似乎獲得了更清晰的聯邦地位,針對加密交易所Coinbase的新的俄勒岡州訴訟引起了人們對潛在的州級壓制的新擔憂。

Cardano使用了銷售證明(POS)系統。以太坊最初使用工作證明,並在幾年後轉為POS。

蘇黎世,2025年4月22日(Globe Newswire) - 期待已久的$ XPL代幣發行已正式開始,這表明了Xploradex之旅中的關鍵時刻

Uxlink很高興宣布其與SOLV協議的戰略合作夥伴關係,以團結分散技術和傳統財務。

貝萊德的現貨比特幣ETF IBIT錄製了42億美元的交易量,因為自3月初以來,比特幣的價格首次飆升至90,000美元以上

CoinSwitch是印度最大的加密貨幣貿易平台,它發布了對印度加密投資者在2025年第1季度的投資和交易行為的新見解。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)