当前位置: 首页 > wzjs >正文

青岛做网站建设的公司排名百度网址大全首页链接

青岛做网站建设的公司排名,百度网址大全首页链接,建立网站难吗,7k网站怎么做我们希望做一个流式输出的后端,然后让前端去捕获这个流式输出,并且在聊天界面中流式输出。 首先构造流式输出引擎。 # 构造流式输出引擎 query_engine index.as_query_engine(streamingTrue, similarity_top_k3,llmllm)然后生成response_stream&#x…

我们希望做一个流式输出的后端,然后让前端去捕获这个流式输出,并且在聊天界面中流式输出。
首先构造流式输出引擎。

# 构造流式输出引擎
query_engine = index.as_query_engine(streaming=True, similarity_top_k=3,llm=llm)

然后生成response_stream,这个response_stream里面有一个生成器,叫做response_gen。我们可以像列表一样去迭代这个生成器,然后取出生成的文本。

response_stream = query_engine.query("请写一篇1000字的文章论述法学专业就业前景") 
for text in response_stream.response_gen:print(text,end="")

在这里插入图片描述
在这里插入图片描述

这样我们就可以在Jupyter的界面看到流式输出了。

我们也可以做一个后端,可以用FastAPI来做。这是一个新的python web框架,性能很强悍。

我们先来安装一下这个框架:
在Jupyter的格子中输入以下内容。

%pip install fastapi
%pip install uvicorn

框架都很小,很快就安装好。

下面我们来改造一下,用fastapi做成http接口。
新建一个Jupyter notebook的格子,填入以下代码:

import uvicorn
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import StreamingResponse
app = FastAPI()
app.add_middleware(CORSMiddleware,allow_origins=["*"])
@app.get('/stream_chat')
async def stream_chat(param:str = "你好"):async def generate():  # 我们假设query_engine已经构建完成response_stream = query_engine.query(param) for text in response_stream.response_gen:yield textreturn StreamingResponse(generate(), media_type='text/event-stream')  
if __name__ == '__main__':config = uvicorn.Config(app, host='0.0.0.0', port=5000)server = uvicorn.Server(config)await server.serve()

可以看到,这里的关键的关键在于yield语句的使用以及用一个generate函数构建Response。

然后在前端我们就可以愉快地接收了。

当然也可以新建一个python文件,填入以下代码:

import uvicorn
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import StreamingResponse
app = FastAPI()
app.add_middleware(CORSMiddleware,allow_origins=["*"])
@app.get('/stream_chat')
async def stream_chat(param:str = "你好"):def generate():  # 我们假设query_engine已经构建完成response_stream = query_engine.query(param) for text in response_stream.response_gen:yield textreturn StreamingResponse(generate(), media_type='text/event-stream')  
if __name__ == '__main__':uvicorn.run(app, host='0.0.0.0', port=5000)

可以看到在jupyter的格子中运行的代码与在py文件中运行的代码的区别仅仅在于if __name__ == '__main__':之后的代码。这是因为Jupyter是一个交互式的环境,它会在每个单元格中运行代码,而不是在一个独立的程序中运行。因此,当我们在Jupyter中运行一个程序时,它会在一个新的进程中运行,而不是在当前进程中运行。这就是为什么我们在Jupyter中运行的代码需要在if __name__ == '__main__':之后的代码中用uvicorn.Server启动服务器。而在py文件中运行的代码则不需要。

我们甚至可以直接在浏览器地址栏里输入:
http://127.0.0.1:5000/stream_chat?param=你是谁?
然后浏览器页面就会出现流式输出。

我们也可以把它封装到一个js函数中

async function fetchStream(param) {  const url = `http://127.0.0.1:5000/stream_chat?param=${encodeURIComponent(param)}`;const response = await fetch(url);  const reader = response.body.getReader();  while (true) {  const { value, done } = await reader.read();  if (done) {  // 如果没有更多的数据可读,退出循环 statusvue.isTalking=false;  break; }  // 处理接收到的数据  const text = new TextDecoder("utf-8").decode(value);  console.log(text)}  
} 

然后我们就可以在想要用到地地方调用这个fetchStream函数了。这个函数需要一个参数,是字符串形式的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

http://www.dtcms.com/wzjs/29180.html

相关文章:

  • 宜春做网站的公司哪家好有效获客的六大渠道
  • 做网站软件admin5站长网
  • wordpress怎么解决后台编辑器卡顿优化外包服务公司
  • 做视频网站为什么费钱枫树seo网
  • 宝山做网站价格google google
  • 网站优化排名哪家性价比高专业seo外包
  • 青海网站开发 建设专业制作网页的公司
  • 自制网站地图怎么做网页设计与制作软件有哪些
  • 杭州网站建设电话百度网盘网页版
  • 一级a做爰片在线看免播放器网站交换链接营销成功案例
  • 射洪哪里可以做网站网络营销是什么?
  • 手机网站制作公司报价单木卢seo教程
  • 重庆网站建设行业新闻可以发外链的论坛有哪些
  • 网站建设公司售后客服人员要求南京seo
  • 池州网站建设公司域名查询万网
  • 专业做网站公司怎么收费经典软文案例分析
  • 自己怎么做网站建设建网站的公司
  • 专业做旅游网站的公司江苏泰州seo网络优化推广
  • 网站建设广东企业网站有什么
  • 网站建设湛江头条今日头条新闻头条
  • 地方门户信息网站建设方案公司网站推广怎么做
  • 做室内效果图的网站百度助手免费下载
  • 网站做视频监控方案电话营销系统
  • 英文b2b网站系统网络营销推广策划
  • 招聘网站怎么投自己做的简历最近实时热点新闻事件
  • 巴南网站建设地推放单平台
  • 淮北网站建设我要登录百度
  • 网站开发服务费分录关键字是什么意思
  • 小说网站需求分析百度云搜索引擎官网入口
  • 哈尔滨模版建站公司推荐北大青鸟职业技术学院简介