微信公众号:leetcode_algos_life,代码随想随记
小红书:412408155
CSDN:https://blog.csdn.net/woai8339?type=blog ,代码随想随记
GitHub: https://github.com/riverind
抖音【暂未开始,计划开始】:tian72530,代码随想随记
知乎【暂未开始,计划开始】:happy001

大模型POST服务流式返回

问题

POST请求,llm预测,流式返回。

解决方案

解决方案分两种,一种是加异步,一种是不加异步,其实两者差异性不大。

异步

# uvicorn起服务
@app.post('/url')
async def get_result(params: Params):
    prompt = "输入{query}的提示词"
    parser = StrOutputParser()
    chain = prompt | llm模型 | parser

    result = chain.astream({"query": query})

    async def generate():
         async for chunk in result:
            yield f"data: {chunk}\n\n"

    return StreamingResponse(generate(), media_type='text/event-stream')

同步

同步的时候,去除async就好。

# uvicorn起服务
@app.post('/url')
async def get_result(params: Params):
    prompt = "输入{query}的提示词"
    parser = StrOutputParser()
    chain = prompt | llm模型 | parser

    result = chain.astream({"query": query})

    def generate():
         for chunk in result:
            yield f"data: {chunk}\n\n"

    return StreamingResponse(generate(), media_type='text/event-stream')
Logo

一站式 AI 云服务平台

更多推荐