Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
FastAPI 部署 Ollama 可视化对话界面_创想鸟

FastAPI 部署 Ollama 可视化对话界面

一、目录结构

仓库 notebook 的 c6 文件夹下:

fastapi_chat_app/│├── app.py├── websocket_handler.py├── static/│   └── index.html└── requirements.txt

app.py FastAPI 应用程序的主要设置和路由。websocket_handler.py 处理 WebSocket 连接和消息流。static/index.html HTML页面。requirements.txt 所需依赖,通过 pip install -r requirements.txt 安装。

 

二、克隆本仓库

git clone https://github.com/AXYZdong/handy-ollama

 

三、安装依赖

pip install -r requirements.txt

 

四、核心代码

app.py 文件中的核心代码如下:

import ollamafrom fastapi import WebSocketasync def websocket_endpoint(websocket: WebSocket):await websocket.accept()  # 接受WebSocket连接user_input = await websocket.receive_text()  # 接收用户输入的文本消息stream = ollama.chat(  # 使用ollama库与指定模型进行对话model='llama3.1',  # 指定使用的模型为llama3.1messages=[{'role': 'user', 'content': user_input}],  # 传入用户的输入消息stream=True  # 启用流式传输)try:for chunk in stream:  # 遍历流式传输的结果model_output = chunk['message']['content']  # 获取模型输出的内容await websocket.send_text(model_output)  # 通过WebSocket发送模型输出的内容except Exception as e:  # 捕获异常await websocket.send_text(f"Error: {e}")  # 通过WebSocket发送错误信息finally:await websocket.close()  # 关闭WebSocket连接

接受 WebSocket 连接:

await websocket.accept():首先,函数接受来自客户端的 WebSocket 连接请求,建立与客户端的通信通道。

接收用户输入:

user_input = await websocket.receive_text():通过 WebSocket 从客户端接收一条文本消息,获取用户输入的内容。

初始化对话流:

stream = ollama.chat(...):调用 ollama 库中的 chat 方法,指定使用的模型为 llama3.1。将用户的输入作为消息传递给模型,并启用流式传输(stream=True),以便逐步获取模型生成的回复。

处理模型输出:

千面视频动捕 千面视频动捕

千面视频动捕是一个AI视频动捕解决方案,专注于将视频中的人体关节二维信息转化为三维模型动作。

千面视频动捕 27 查看详情 千面视频动捕 for chunk in stream:遍历从模型中流式传输过来的数据块。model_output = chunk['message']['content']:从每个数据块中提取出模型生成的文本内容。await websocket.send_text(model_output):通过 WebSocket 将提取出的模型回复发送回客户端,实现实时对话。

异常处理:

except Exception as e:如果在处理过程中出现任何异常(例如,网络问题、模型错误等),捕获异常并通过 WebSocket 发送一条错误信息,告知客户端发生了错误。

关闭 WebSocket 连接:

finally:无论是否发生异常,最终都确保关闭 WebSocket 连接,以释放资源并结束会话。

 

五、运行app

在目录下 (fastapi_chat_app/);运行 app.py 文件。

uvicorn app:app --reload

打开页面。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

FastAPI 部署 Ollama 可视化对话界面

后台显示的正常输出。

FastAPI 部署 Ollama 可视化对话界面

以上就是FastAPI 部署 Ollama 可视化对话界面的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/351244.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
RuoYi框架中出现循环依赖,如何排查并解决dynamicDataSource Bean的问题?
上一篇 2025年11月5日 22:23:46
win10虚拟内存怎么设置最合理_win10虚拟内存最佳设置方法
下一篇 2025年11月5日 22:23:59

相关推荐

发表回复

登录后才能评论
关注微信