Lazy loaded image
网页项目
基于 Streamlit 构建可视化的聊天机器人 Web 界面
Words 1319Read Time 4 min
2026-5-7
2026-5-7
type
Post
status
Published
date
May 7, 2026
slug
summary
tags
category
网页项目
password
😀
这里写文章的前言: 教你如何在10分钟搭建基于 Ollama 本地大模型、带上下文记忆的 Web 版智能聊天机器人。
 

1. 必须先做的 3 件事(缺一不可)

① 下载安装 Ollama 客户端

官网:
支持 Windows / Mac / Linux
安装完后,Ollama 会自动在后台运行
notion image

② 下载安装符合你要求的大模型

建议使用Qwen2.5:7b的模型,具备在本地基本上能适配个人项目的能力
模型地址:
notion image
打开 命令行(CMD / PowerShell / 终端),运行:
这一步是下载模型到本地,必须做,否则代码会报错。

③ 确认 Ollama 服务正常运行

命令行输入:
如果能看到对应的模型,说明环境没问题。
notion image
notion image
 

2. 下载Streamlit插件

😀
一句话说清:Streamlit 是什么?
Streamlit 就是一个 Python 库,专门用来用几行代码快速做出网页版聊天界面、数据可视化、AI 机器人界面
代码里的聊天窗口、输入框、对话气泡
全是 Streamlit 做出来的!它不需要你懂 HTML / CSS / JS,纯 Python 就能写网页。
安装命令(打开 CMD / 终端 运行)
 

3. 编写代码

1.ollama_utils.py

核心作用:封装与 Ollama 大模型交互的工具函数,是实现 “调用 AI 模型获取回复” 的核心模块。
  • 导入ollama库并初始化客户端,指定 Ollama 服务的地址(http://127.0.0.1:11434/);
  • 定义get_ollama_response(prompt)函数:接收对话提示(prompt),调用deepseek-r1:1.5b模型的聊天接口(非流式响应),返回模型回复的文本内容;
  • 包含测试逻辑:直接运行该文件时,会向模型发送 “你是谁” 的提问,并打印回复结果,用于验证模型调用是否正常。

2.run.py

核心作用:作为启动脚本,一键启动 Streamlit 应用(无需手动输入命令)。
  • 导入os库,通过os.system执行 Streamlit 启动命令;
  • 启动参数说明:
    • python -m streamlit run main.py:运行main.py作为 Streamlit 应用入口;
    • -server.headless true:无头模式(适合服务器 / 后台运行,不弹出本地浏览器);
    • -browser.gatherUsageStats false:关闭 Streamlit 的使用统计收集,保护隐私。

3.main.py

核心作用:基于 Streamlit 构建可视化的聊天机器人 Web 界面,实现 “用户交互 + 上下文记忆 + AI 回复展示” 的完整流程。
  • 初始化与界面基础设置:
    • 设置页面标题 “智慧聊天机器人”,添加分割线;
    • 初始化session_state.messages(会话状态):存储聊天历史,默认添加机器人的开场白(“你好,我是机器人,你可以问我任何问题。”);
  • 聊天历史展示:遍历messages列表,以 “用户 / 助手” 的聊天气泡形式展示所有历史消息;
  • 用户输入处理:
    • 通过sl.chat_input获取用户输入的问题;
    • 将用户输入添加到聊天历史,并显示在界面上;
  • AI 回复调用与展示:
    • 以 “加载中” 的 Spinner 提示模型处理中;
    • 调用ollama_utils.get_ollama_response,传入完整的聊天历史(实现上下文记忆),而非单条输入;
    • 显示模型回复,并将回复添加到聊天历史,保证后续对话能关联前文。
 
notion image

整体流程总结

  1. 运行run.py → 启动 Streamlit Web 服务,加载main.py
  1. 用户在main.py的 Web 界面输入问题 → 界面记录用户输入并调用ollama_utils.py的模型接口;
  1. ollama_utils.py向 Ollama 服务发送包含上下文的对话请求 → 获取 AI 回复并返回给main.py
  1. main.py将 AI 回复展示在界面上,并更新聊天历史 → 实现带上下文记忆的智能聊天。
简单来说,这三个文件协作实现了一个基于 Ollama 本地大模型、带上下文记忆的 Web 版智能聊天机器人
上一篇
前端与产品审美提升资源库
下一篇
什么是LaunchPad?