网站首页 全球最实用的IT互联网站!

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 人工智能 > 人形机器人 >

本篇承接上篇[入门实战|RTX3060本地私有化部署

时间:2026-03-22 21:00

人气:

作者:admin

标签:

导读:本篇承接上篇[入门实战|RTX3060本地私有化部署DeepSeek 7B聊天机器人(离线可用+GPU加速调优)](https://blog.csdn.net/Friend__AA/article/details/159167791?spm=1001.2014.3001.5501 quot;可选的鼠标悬停提示qu...

WSL2+Streamlit+Ollama实战:本地 + 云端双模式AI聊天机器人开发全攻略(避坑版)

前言:

本篇承接上篇入门实战|RTX3060本地私有化部署DeepSeek 7B聊天机器人(离线可用+GPU加速调优),聚焦Streamlit+Ollama本地大模型聊天机器人开发,全程基于WSL2环境实操,解决URL连接报错、会话丢失、服务无法访问等核心问题,搭建支持本地模型与云端API双调用的聊天机器人。

一、项目背景与开发思路

1.1 项目核心目标

基于WSL2环境,搭配Streamlit快速搭建Web可视化界面,直连本地Ollama部署的DeepSeek大模型,实现无云端API依赖、纯本地运行、多轮对话持久化的轻量AI聊天机器人,同时解决WSL2环境下模型连接、前端访问的各类实操bug,打造可直接落地的Demo项目。

1.2 技术栈选型

  • 运行环境:WSL2(Ubuntu),核心解决GPU支持与Linux环境适配,规避WSL1不兼容问题

  • 前端框架:Streamlit,零前端基础快速搭建可视化聊天界面,轻量化部署

  • 大模型管理:Ollama,本地快速部署DeepSeek-r1:7b模型,简化本地模型调用流程

  • 开发工具:VS Code+Remote-WSL插件,替代PyCharm社区版(不支持WSL远程解释器),无缝衔接WSL环境

1.3 整体开发流程

遵循迭代开发逻辑:环境预检查→基础界面搭建→会话历史解决→真实模型接入→报错调试→最终优化,从Demo到可运行项目逐步推进。

二、第二部分:轻量化聊天机器人搭建(LangChain+Streamlit)

在私有化部署基础上,基于WSL+Ubuntu搭建标准化Linux开发环境,依托LangChain实现模型统一调用封装,通过Streamlit快速搭建Web可视化聊天界面,实现本地Ollama模型+阿里云通义云端模型双模式切换,打造可自定义、可演示的完整聊天机器人。

2.1 WSL+Ubuntu环境搭建

Streamlit与LangChain在Linux环境下兼容性更佳,且便于后续扩展RAG、AI Agent功能,通过WSL快速部署Ubuntu子系统,无需双系统或虚拟机。

2.1.1 WSL安装与Ubuntu部署

  1. 打开Windows设置,依次进入应用-可选功能-更多Windows功能,勾选适用于Linux的Windows子系统虚拟机平台,点击确定并重启电脑;

踩坑点:勾选后默认是WSL1(无GPU支持导致推理卡慢/报错),还需升级为WSL2,并配置GPU驱动和适配GPU的python环境

# 一、升级 / 安装 WSL2
# 以管理员身份打开 Windows 终端,执行:
wsl --stop  # 停止现有 WSL 实例
wsl --set-default-version 2  # 设置默认 WSL 版本为 2
#  查看已安装的发行版版本,确认是 WSL2:
wsl --list --verbose
#  如果是 WSL1,执行升级:
wsl --set-version <你的发行版名称> 2  # 比如 Ubuntu-22.04
# 二、升级安装 GPU 驱动
# WSL2 中安装 CUDA Toolkit(以 NVIDIA 为例)
sudo apt update
sudo apt install nvidia-cuda-toolkit
# 验证 GPU 是否识别
nvidia-smi  # 能看到显卡信息就说明成功
# 三、WSL2 中配置 Python 环境(适配 GPU)
# 安装适配 WSL2 的 PyTorch(带 CUDA 支持)
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
# 验证 CUDA 是否可用
python -c "import torch; print(torch.cuda.is_available())"  # 输出 True 即成功
  1. 重启后打开Microsoft Store,搜索Ubuntu 22.04 LTS,点击获取并安装;

  2. 启动Ubuntu,按照提示设置用户名与密码,完成系统初始化,进入Linux终端界面。

2.1.2 VS Code连接WSL

在WSL里创建项目文件test.py,打开 Windows 终端 → 切换到 WSL 标签页(比如 Ubuntu),进入你的 test.py项目目录:

cd /home/你的用户名/你的项目文件夹  # 比如 cd /home/xxx/test.py
code .  # 关键!用 WSL 里的 code 命令打开当前目录

此时 VS Code 会自动弹出「正在连接 WSL」的提示,等几秒就会以 WSL 环境打开整个项目(标题栏会显示「WSL: Ubuntu」)。

踩坑点:入门初学者会选择PyCharm社区版,但其并不支持 WSL 作为 Python 解释器(2024.3.5号后有限支持,强行配置也会各种报错、不稳定)所以选择VS Code.

2.1.2 Ubuntu基础环境配置

  1. 更新Ubuntu系统软件源,安装Python3与pip包管理工具:
sudo apt update && sudo apt upgrade -y
sudo apt install python3 python3-pip -y
  1. 校验Python与pip安装状态:
python3 --version
pip3 --version

正常返回版本信息即配置完成。

2.2 核心依赖库安装

在Ubuntu终端中,依次安装项目所需Python库,涵盖Ollama调用、LangChain框架、Streamlit界面开发、阿里云模型对接模块:

踩坑点:新版 Ubuntu 为了避免破坏系统自带 Python,禁止直接用 pip install 安装全局包,所以需先构建虚拟环境。

python3 -m venv venv # 创建虚拟环境
source venv/bin/activate # 激活虚拟环境
# 安装Ollama Python SDK,实现代码调用本地模型
pip3 install ollama
# 安装Streamlit,快速开发Web界面
pip3 install streamlit

写个test.py测试一下(注运行前需要在后台新开个WSL终端里运行ollama serve,且不关闭):
在这里插入图片描述

2.3 Streamlit可视化聊天界面开发

2.3.1 本地模型验证(Ollama 纯 Python 测试)

对应文件:ollama_test.py功能:环境连通性测试。
逻辑:直接调用本地的 DeepSeek 模型。
作用:验证 WSL2 + Ollama 服务是否正常启动(端口 11434),验证模型加载是否成功(deepseek-r1:7b),证明你的本地环境能跑出 AI 回答,为后面封装 Streamlit 铺路。
在这里插入图片描述

2.3.2 基础 Streamlit 页面(Demo 测试)

对应文件:streamlit_test.py / streamlit_demo.py功能:前端页面搭建与基础组件演示。
逻辑:用 Streamlit 快速画一个网页。
组件演示:
st.title / st.write:渲染文字标题和内容。
st.chat_input:创建底部的输入框。
st.spinner:展示加载动画(“思考中…”)。
st.chat_message:展示左右对齐的气泡对话框(区分用户和 AI)。
核心价值:学习 Streamlit 的组件用法,解决 “怎么把后台代码展示到网页上” 的问题。
在Ubuntu终端中,激活虚拟环境,进入代码所在目录,执行启动命令:

streamlit run streamlit_test.py

启动成功后,终端会生成本地访问链接(默认http://localhost:8501),复制链接至浏览器打开,即可进入聊天机器人界面,选择对应模型,实现实时交互。

在这里插入图片描述

2.3.3 对话历史持久化(带历史记录的 Demo)

对应文件:streamlit_demo_with_history.py功能:解决上下文丢失问题。
核心痛点:Streamlit 每次刷新 / 输入,会话变量会重置,对话会断。
逻辑:
使用 st.session_state 保存 message 列表。
每次用户输入,先把问题存进 session_state。
循环遍历 session_state 里的历史消息,重新渲染到界面上。
核心价值:实现了多轮对话的基础骨架,这是做聊天机器人的必备前提。

在这里插入图片描述

2.3.4 真实模型落地:Ollama + Streamlit 完整聊天机器人(轻量无框架依赖)

在完成基础环境验证和 Streamlit 会话状态调试后,基于 Ollama 直接调用本地 DeepSeek-R1 模型,实现了无框架依赖的轻量版聊天机器人。(特点:直接调用本地 DeepSeek 模型,无需额外框架,适合快速验证、资源受限场景;但记忆逻辑需手动维护,扩展性弱。)
这个版本的核心价值是:快速验证本地模型的对话能力与 WSL2 环境的稳定性;完成了「用户输入 - 历史记录 - 模型调用 - 结果渲染」的完整交互闭环;后续引入 LangChain 做模块化封装、扩展记忆与工具调用能力,打下了清晰的原型基础。下图的Local URL即是通过streamlit做出的前端界面:
在这里插入图片描述

在这里插入图片描述

2.3.5 阿里云通义API配置

登录阿里云平台,进入通义千问控制台,申请API Access Key与Secret Key,入门阶段可使用免费额度模型,记录密钥信息备用。

2.3.6 LangChain 整合(项目工程化)

对应文件:langchain_util.py / ityoujian_chatbox.langchain.py功能:引入 LangChain 增强能力。
逻辑:langchain_util.py:封装了 ConversationBufferMemory(记忆缓冲)和 Tongyi(通义千问模型)。定义了 get_response 函数作为接口。ityoujian_chatbox.langchain.py:这是最终的主程序入口。它不再直接调用 Ollama,而是导入上面写好的 get_response 函数。结合 st.session_state 维护历史记录,调用 LangChain 的 Chain 链条完成推理。
核心价值:项目整合。把零散的 API 调用、页面展示、记忆管理整合成了一个完整的 Web 应用项目(适合复杂业务场景、后续扩展工具调用)。

在这里插入图片描述

在这里插入图片描述

最终代码如下:

    from langchain_util import get_response 
    import streamlit as st



# 初始化消息记录
if 'message' not in st.session_state:
    st.session_state['message'] = []

#添加标题
st.title('小J智聊机器人')
#添加分割线
st.divider()

#用户输入问题
prompt = st.chat_input('请输入你的问题')

#判断,如果用户输入内容则开始工作
if prompt:
    # 将用户提问添加到历史记录中
    st.session_state['message'].append({'role':'user','content':prompt})
    # for循环将历史消息全部输出到消息容器内
    for message in st.session_state['message']:
        st.chat_message(message['role']).markdown(message['content'])
    with st.spinner('AI思考中.'):
        response = get_response(prompt,api_key='你的api_key')

        # 从response里面取出来message和content两个key
        st.session_state['message'].append({'role':'assistant','content':response})
        # 在页面中渲染ai回答
        st.chat_message('assistant').markdown(response)

四、项目常见问题与避坑指南

常见问题汇总

  • Ollama服务需提前启动,且全程保持后台运行,不可关闭终端。
  • 在Windows设置,依次进入应用-可选功能-更多Windows功能,勾选适用于Linux的Windows子系统虚拟机平台,而勾选后默认是WSL1(无GPU支持导致推理卡慢/报错),还需升级为WSL2,并配置GPU驱动和适配GPU的python环境
  • 入门初学者会选择PyCharm社区版,但其并不支持 WSL 作为 Python 解释器(2024.3.5号后有限支持,强行配置也会各种报错、不稳定)所以选择VS Code.
  • 新版 Ubuntu 为了避免破坏系统自带 Python,禁止直接用 pip install 安装全局包,所以需先构建虚拟环境。
  • 需注意langchain版本适配问题,如langchain0.x版本和1.x版本代码会多处不兼容,需调整。

五、项目总结与扩展方向

本文完整实现了大模型私有化部署与轻量化聊天机器人搭建,从Ollama本地模型运行、Chatbox可视化对接,到LangChain模型封装、Streamlit界面开发,形成完整的入门级实战闭环,全程依托开源工具,可复现性强,适合作为大模型应用开发入门项目,也可直接整理至简历,体现实操落地能力。

后续可基于本项目进一步扩展,适配AI Agent与RAG岗位需求:

  • 集成RAG知识库,实现本地文档检索问答,打造专属问答机器人

  • 扩展Agent工具调用能力,实现简单的任务自动化

  • 优化模型参数与界面交互,提升响应速度与使用体验

  • 打包部署至云服务器,实现外网访问演示


项目源码获取

完整项目工程文件(含配置、依赖、工具类)已打包,可直接下载运行:

  • 百度网盘:streamlit聊天机器人项目代码
  • 提取码:[f0wu]
  • 说明:文章中展示的为核心实现代码,完整源码包含ityoujian_chatbox_langchain.pylangchain_util.py等文件,可直接部署运行。
温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信