type
Post
status
Published
date
May 7, 2026
slug
summary
tags
category
网页项目
password
这里写文章的前言:
教你如何在10分钟搭建基于 Ollama 本地大模型、带上下文记忆的 Web 版智能聊天机器人。
1. 必须先做的 3 件事(缺一不可)
① 下载安装 Ollama 客户端
官网:
支持 Windows / Mac / Linux
安装完后,Ollama 会自动在后台运行。

② 下载安装符合你要求的大模型
建议使用Qwen2.5:7b的模型,具备在本地基本上能适配个人项目的能力
模型地址:

打开 命令行(CMD / PowerShell / 终端),运行:
这一步是下载模型到本地,必须做,否则代码会报错。
③ 确认 Ollama 服务正常运行
命令行输入:
如果能看到对应的模型,说明环境没问题。


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,传入完整的聊天历史(实现上下文记忆),而非单条输入; - 显示模型回复,并将回复添加到聊天历史,保证后续对话能关联前文。

整体流程总结
- 运行
run.py→ 启动 Streamlit Web 服务,加载main.py;
- 用户在
main.py的 Web 界面输入问题 → 界面记录用户输入并调用ollama_utils.py的模型接口;
ollama_utils.py向 Ollama 服务发送包含上下文的对话请求 → 获取 AI 回复并返回给main.py;
main.py将 AI 回复展示在界面上,并更新聊天历史 → 实现带上下文记忆的智能聊天。
简单来说,这三个文件协作实现了一个基于 Ollama 本地大模型、带上下文记忆的 Web 版智能聊天机器人。
- Author:Ashland
- URL:http://preview.tangly1024.com/article/359cccc0-3782-8098-9e42-cce175045845
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!




