chatgpt再封装中采用流式输出
服务器发SSE是基于HTTP的,所以我们可以用http的方式去和服务端建立通信,这样少了一些学习成本它是单向通信:即客户端向服务器建立连接后,服务器持续向客户端疯狂输出
这个和websocket不同,websocket是双向通信SSE返回的是事件流类型,事件流中包含标识符、类型、数据、注释,这些都是可选字段
FastAPI 是一个 Python 框架,可以轻松构建 API。
在本教程中,我们将使用 FastAPI 创建一个简单的 SSE 服务器,它将每秒发送一条消息。
Python sse-starlette包_程序模块 - PyPI - Python中文网
from fastapi import FastAPI
from fastapi.responses import HTMLResponse
import uvicorn
import time
from sse_starlette.sse import ServerSentEvent, EventSourceResponse
import jsonapp = FastAPI()def gen():for i in range(10):time.sleep(1)yield {"data":str(i)}@app.get("/items/")
async def read_items():html_content = """Some HTML in here Look ma! HTML!
"""return HTMLResponse(content=html_content, status_code=200)@app.get("/")
def main():def decorate(generator):for item in generator:yield ServerSentEvent(json.dumps(item, ensure_ascii=False), event='delta')return EventSourceResponse(decorate(gen()))
if __name__ == '__main__':uvicorn.run(app, host="0.0.0.0", port=9550)
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
