日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

一個SSE(流式)接口引發(fā)的問題

來源: 責(zé)編: 時間:2024-02-29 14:41:37 220觀看
導(dǎo)讀前言最近我們公司也是在做認(rèn)知助手,大模型相關(guān)的功能,正在做提示詞,機器人對話相關(guān)功能。想要提高用戶體驗,使用SSE請求模式,在不等數(shù)據(jù)完全拿到的情況下邊拿邊返回。之前做過一版,但不是流式返回,是等待全部結(jié)果再返回,不得

前言

最近我們公司也是在做認(rèn)知助手,大模型相關(guān)的功能,正在做提示詞,機器人對話相關(guān)功能。想要提高用戶體驗,使用SSE請求模式,在不等數(shù)據(jù)完全拿到的情況下邊拿邊返回。cFQ28資訊網(wǎng)——每日最新資訊28at.com

之前做過一版,但不是流式返回,是等待全部結(jié)果再返回,不得不說確實等待過程挺長,然后就有了現(xiàn)在的優(yōu)化。想著功能都寫好了,只是改一下接口,應(yīng)該是個簡單的需求。cFQ28資訊網(wǎng)——每日最新資訊28at.com

后端使用的post接口,經(jīng)過一番搜索,最后使用的fetch。經(jīng)過短短幾個小時,配置寫好,準(zhǔn)備聯(lián)調(diào),以為需求就順利完工了。奈何就這流式聯(lián)調(diào),還耗了兩天。只因為后端在postman上測試時正常的,然后前端在本地連調(diào)就是無法獲取分段式數(shù)據(jù),拿到的總是一整塊數(shù)據(jù)。表現(xiàn)成這樣,我們就開始糾結(jié)前端配置是否有誤,網(wǎng)關(guān)轉(zhuǎn)發(fā)是否有誤。cFQ28資訊網(wǎng)——每日最新資訊28at.com

就這樣前端也試了好幾種方式去發(fā)請求,奈何結(jié)果都一樣。想著先測其他部分,這個接口最后測試。意外的是部署在線上的環(huán)境竟然能正常接收流式接口!!!那問題可能就是本地與部署線上的區(qū)別了,今天主要記錄一下使用的配置。cFQ28資訊網(wǎng)——每日最新資訊28at.com

EventSource

創(chuàng)建EventSource對象:首先,使用new EventSource()構(gòu)造函數(shù)創(chuàng)建一個EventSource對象。該對象將用于與服務(wù)器建立連接并接收服務(wù)器發(fā)送的事件流。cFQ28資訊網(wǎng)——每日最新資訊28at.com

var eventSource = new EventSource('sse_url');

在上面的代碼中,將'sse_url'替換為實際的SSE請求URL。2. 監(jiān)聽事件:使用EventSource對象的onmessage事件監(jiān)聽器來接收服務(wù)器發(fā)送的事件數(shù)據(jù)。當(dāng)接收到數(shù)據(jù)時,事件處理函數(shù)將被調(diào)用,并可以通過事件對象的data屬性訪問數(shù)據(jù)。cFQ28資訊網(wǎng)——每日最新資訊28at.com

eventSource.onmessage = function(event) {    console.log('Received data:', event.data);  };

錯誤處理:為了處理可能發(fā)生的錯誤,可以使用EventSource對象的onerror事件監(jiān)聽器。當(dāng)發(fā)生錯誤時,可以在事件處理函數(shù)中進行處理。cFQ28資訊網(wǎng)——每日最新資訊28at.com

eventSource.onerror = function(error) {    console.error('SSE error:', error);  };

關(guān)閉連接:當(dāng)不再需要接收事件流時,可以使用EventSource對象的close方法關(guān)閉連接。cFQ28資訊網(wǎng)——每日最新資訊28at.com

eventSource.close();

完整的示例代碼如下所示:cFQ28資訊網(wǎng)——每日最新資訊28at.com

var eventSource = new EventSource('sse_url');    eventSource.onmessage = function(event) {    console.log('Received data:', event.data);  };    eventSource.onerror = function(error) {    console.error('SSE error:', error);  };

但是EventSource只支持get請求,配置請求頭也不太友好。cFQ28資訊網(wǎng)——每日最新資訊28at.com

fetch

async function getStream() {  try {    let response = await fetch('url');    if (!response.ok) {      throw new Error('Network response was not ok');    }       const reader = response.body.getReader();    const textDecoder = new TextDecoder();    let result = true;    let output = ''    while (result) {        const { done, value } = await reader.read();      if (done) {        console.log('Stream ended');       result = false;       break;      }      const chunkText = textDecoder.decode(value);      output += chunkText;      console.log('Received chunk:', chunkText);    }  } catch (e) {    console.log(e); }}

插件

@microsoft/fetch-event-source 使用方法我就 不放了,看了一下源碼也是基于fetch實現(xiàn)的,網(wǎng)上例子很多,可以看看。cFQ28資訊網(wǎng)——每日最新資訊28at.com

問題

本地運行的環(huán)境也是用的代理訪問的部署好的環(huán)境的接口。插件是 Node.js 的 HTTP 代理中間件http-proxy-middleware。所以為何同樣的配置,本地運行不行,而部署到環(huán)境上就正常了?有大佬遇到過嗎cFQ28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-75325-0.html一個SSE(流式)接口引發(fā)的問題

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 一次性學(xué)會Java中的日志

下一篇: 系統(tǒng)設(shè)計面試問題:如何設(shè)計 Spotify,一個音樂流媒體系統(tǒng)

標(biāo)簽:
  • 熱門焦點
  • 鴻蒙OS 4.0公測機型公布:甚至連nova6都支持

    華為全新的HarmonyOS 4.0操作系統(tǒng)將于今天下午正式登場,官方在發(fā)布會之前也已經(jīng)正式給出了可升級的機型產(chǎn)品,這意味著這些機型會率先支持升級享用。這次的HarmonyOS 4.0支持
  • K60 Pro官方停產(chǎn) 第三方瞬間漲價

    雖然沒有官方宣布,但Redmi的一些高管也已經(jīng)透露了,Redmi K60 Pro已經(jīng)停產(chǎn)且不會補貨,這一切都是為了即將到來的K60 Ultra鋪路,屬于廠家的正常操作。但有意思的是該機在停產(chǎn)之后
  • Redmi Buds 4開箱簡評:才199還有降噪 可以無腦入

    在上個月舉辦的Redmi Note11T Pro系列新機發(fā)布會上,除了兩款手機新品之外,Redmi還帶來了兩款TWS真無線藍牙耳機產(chǎn)品,Redmi Buds 4和Redmi Buds 4 Pro,此前我們在Redmi Note11T
  • Flowable工作流引擎的科普與實踐

    一.引言當(dāng)我們在日常工作和業(yè)務(wù)中需要進行各種審批流程時,可能會面臨一系列技術(shù)和業(yè)務(wù)上的挑戰(zhàn)。手動處理這些審批流程可能會導(dǎo)致開發(fā)成本的增加以及業(yè)務(wù)復(fù)雜度的上升。在這
  • 一篇文章帶你了解 CSS 屬性選擇器

    屬性選擇器對帶有指定屬性的 HTML 元素設(shè)置樣式。可以為擁有指定屬性的 HTML 元素設(shè)置樣式,而不僅限于 class 和 id 屬性。一、了解屬性選擇器CSS屬性選擇器提供了一種簡單而
  • 網(wǎng)紅炒股不為了賺錢,那就是耍流氓!

    來源:首席商業(yè)評論6月26日高調(diào)宣布入市,網(wǎng)絡(luò)名嘴大v胡錫進居然進軍了股市。在一次財經(jīng)媒體峰會上,幾個財經(jīng)圈媒體大佬就“胡錫進炒股是否知道認(rèn)真報道”展開討論。有
  • 小米公益基金會捐贈2500萬元馳援北京、河北暴雨救災(zāi)

    8月2日消息,今日小米科技創(chuàng)始人雷軍在其微博上發(fā)布消息稱,小米公益基金會宣布捐贈2500萬元馳援北京、河北暴雨救災(zāi)。攜手抗災(zāi),京冀安康!以下為公告原文
  • 到手價3099元起!iQOO Neo8 Pro今日首銷:安卓性能最強旗艦

    5月23日,iQOO如期舉行了新品發(fā)布會,全新的iQOO Neo8系列也正式與大家見面,包含iQOO Neo8和iQOO Neo8 Pro兩個版本,其中標(biāo)準(zhǔn)版搭載高通驍龍8+,而Pro版更
  • OPPO Reno10 Pro英雄聯(lián)盟定制禮盒公布:薩勒芬妮同款配色夢幻十足

    5月24日,OPPO推出了全新的OPPO Reno 10系列,包含OPPO Reno10、OPPO Reno10 Pro和OPPO Reno10 Pro+三款新機,全系標(biāo)配了超光影長焦鏡頭,是迄今為止拍照
Top 主站蜘蛛池模板: 察哈| 江油市| 科技| 安新县| 华阴市| 东海县| 茂名市| 志丹县| 绵竹市| 南川市| 正定县| 绥德县| 丰宁| 当阳市| 潢川县| 沽源县| 博爱县| 湘西| 盱眙县| 岳阳县| 大姚县| 新竹县| 抚州市| 南宫市| 湖州市| 诏安县| 江城| 保亭| 高阳县| 绥德县| 水城县| 梧州市| 保康县| 长宁区| 灵丘县| 常德市| 蛟河市| 余庆县| 菏泽市| 宁晋县| 察哈|