cloudflare worker 输出chatgpt api流式eventsource推送
先利用cloudfare的worker实现一个eventsource服务端推送
addEventListener('fetch', (event) => { event.respondWith(handle_request(event.request)); }); async function handle_request(request) { if (request.method === 'GET' && request.url.endsWith('/test')) { return new Response(` <!DOCTYPE html> <html> <head> <title>Chat with GPT-3</title> </head> <body> <div id="output"></div> <script> const output = document.getElementById('output'); const source = new EventSource('/stream'); source.onmessage = (event) => { output.innerHTML += '<p>' + event.data + '</p>'; }; </script> </body> </html> `, { headers: { 'Content-Type': 'text/html' }, }); } if (request.method === 'GET' && request.url.endsWith('/stream')) { const { readable, writable } = new TransformStream(); // 将数据逐步写入可写流中 const writer = writable.getWriter(); setInterval(() => { writer.write(new TextEncoder().encode('Hello, world!\n')); }, 1000); // 返回可读流作为响应主体 return new Response(readable, { headers: { 'Content-Type': 'text/event-stream', 'Cache-Control': 'no-cache', 'Connection': 'keep-alive', }, }); } return ...
点击查看剩余70%
网友评论