微信公众号:leetcode_algos_life,代码随想随记
小红书:412408155
CSDN:https://blog.csdn.net/woai8339?type=blog ,代码随想随记
GitHub: https://github.com/riverind
抖音【暂未开始,计划开始】:tian72530,代码随想随记
知乎【暂未开始,计划开始】:happy001
问题
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')