Streamlit大模型复现实战
目录
前言
近年来,大模型(Large Language Model,LLM)正在深刻改变我们与计算机交互的方式。然而,对于很多开发者来说,如何将这些强大的模型快速落地为可用的应用,仍然是一个不小的挑战。
Streamlit应运而生。它是一个开源的Python框架,能够帮助开发者以极少的代码将脚本转化为交互式Web应用,开发者可以在几分钟内搭建一个功能完备的聊天机器人界面。
本文以GitHub上的Streamlit官方大模型示例库(streamlit/llm-examples)为基础,完成了从代码克隆、环境配置到二次开发的全流程实践。重点记录实践过程中遇到的各类报错及解决方案,希望能为同样在学习大模型应用开发的读者提供参考。
一、工具说明
| 编程语言 | Python |
| 环境管理 | Conda(创建独立虚拟环境) |
| Web框架 | Streamlit(开箱即用的聊天组件) |
| 大模型API | DeepSeek API(以此为例) |
| 辅助工具 | Cursor IDE(代码修改与调试)Git(代码克隆)Watt Toolkit(加速器) |
二、实战演练
1.代码克隆
打开Windows的命令提示符/PowerShell(Win+R输入cmd回车),cd切换到想要存放的目录,执行代码:
# 使用 kkgithub 镜像防止报错
git clone https://kkgithub.com/streamlit/llm-examples.git
下载完成后进入项目目录:
cd llm-examples

易错分析
- 踩坑:GitHub 连接失败
·解读:执行 git clone https://github.com/streamlit/llm-examples.git 时连接超时,长时间无响应。
·出错原因:GitHub 在国内访问不稳定,网络环境受限导致无法正常克隆。
·解决方案:使用 Watt Toolkit(原 Steam++) 加速,替代方案还包括 hub.fastgit.org、gitclone.com 等镜像站点。
2.创建环境
下载Miniconda(推荐)或 Anaconda:用于创建独立的 Python 环境。
具体下载步骤参考anaconda安装教程
创建环境时推荐 Python 3.10 版本:
conda create -n st_llm python=3.10 -y
· -n st_llm:给环境起名为 st_llm
· python=3.10:指定 Python 版本
· -y:自动确认,省去手动输入 yes 的步骤
激活创建好的虚拟环境:
conda activate st_llm
激活后,终端命令行的最左边显示(st_llm) 字样,表示当前已在该环境中。
易错分析
-
踩坑 :‘conda’ 不是内部或外部命令
·解读:在 Windows 系统上首次使用 Conda 时,执行 conda --version 报错:“‘conda’ 不是内部或外部命令,也不是可运行的程序或批处理文件”。
· 出错原因:安装 Anaconda 时未勾选“添加到 PATH”选项,或者终端未重启,导致系统无法定位 conda 可执行文件。
· 解决方案:手动将 Anaconda 的安装路径(如 C:\Users\用户名\Anaconda3 和 C:\Users\用户名\Anaconda3\Scripts)添加到系统环境变量 Path 中,然后重启终端。 -
踩坑 :环境冲突与残留
·解读:在学习阶段,曾因反复创建和删除环境导致 conda env list 显示的路径混乱。
· 出错原因:Conda 环境在文件系统中保留,仅用 conda remove -n env_name 未清理干净,残留的 .conda 目录和 pip 安装的包冲突。
· 解决方案:彻底清理——先执行 conda env remove -n 旧环境名,再手动删除对应的环境文件夹(通常在Anaconda3/envs/ 目录下),然后重新创建。
3.依赖安装
使用 pip 配合国内清华镜像源安装requirements.txt 中列出的所有依赖包,下载速度快且稳定:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

易错分析
- 找不到 requirements.txt 文件:先确认当前在 llm-examples 目录下,用 dir命令查看该文件是否存在。
- 网络超时或连接失败:重新执行上述命令,国内镜像源通常能解决此类问题。如果仍然超时,可临时换成阿里云镜像:-ihttp://mirrors.aliyun.com/pypi/simple/。
- 版本冲突:确保已在 st_llm 虚拟环境中(命令行前缀有 (st_llm)),并且 Python 版本是 3.10。如果冲突仍然存在,可以尝试先升级 pip:pip install --upgrade pip,再重新安装依赖。
- 权限不足(Permission Denied):Windows 用户可以尝试以管理员身份运行终端。
4.启动Demo
在CMD执行以下命令启动 Streamlit 应用:
streamlit run Chatbot.py
Streamlit 会启动一个本地 Web 服务器,CMD中会显示类似如下的信息:
You can now view your Streamlit app in your browser.
Local URL: http://localhost:8501
Network URL: http://xxx.xxx.x.xxx:8501
自动打开的浏览器页面中出现聊天界面。如果没有自动打开,手动复制 Local URL(通常是 http://localhost:8501)到浏览器地址栏回车即可。

至此,基础复现已完成,但由于原项目默认未接入大模型API,无法对话。接下来将模型接口适配为DeepSeek API。
易错分析
- 踩坑:ModuleNotFoundError: No module named ‘openai’
·解读:安装完 requirements.txt 后运行 Chatbot.py,报错找不到 openai 模块。
· 出错原因:原项目 requirements.txt 中可能未包含 openai 库,或因版本兼容性导致安装失败。
· 解决方案:在 Conda 环境中手动执行 pip install openai。为确保版本兼容性,建议在 requirements.txt 中锁定版本号(如 openai==1.12.0),避免自动升级带来的 API 变更问题。同时,确保安装命令在正确的 Conda 环境中执行,可用 pip show openai 验证。
5.适配API
(1)注册并获取APIkey
访问 DeepSeek 开发者平台:platform.deepseek.com 并注册账号,获取免费token额度的API,(演示的是硅基流动(SiliconFlow)提供的 DeepSeek 兼容 API,阿里云百炼也OK)。
登录后导航到APIkeys,创建新的密钥并复制保存。
(2)将 API Key 配置到系统环境变量
这里有两个方法可以实现:
①在设置中搜索系统环境变量,新建一个变量并为其命名如DEEPSEEK_API_KEY,变量值即为你获取的密钥,完成后点击“确定”三次保存。
②Windows用户可以在CMD执行以下代码临时配置(仅当前CMD窗口生效):
$env:DEEPSEEK_API_KEY="sk-你的密钥"
如需APIKey永久生效可以执行以下代码:
setx DEEPSEEK_API_KEY "你的密钥"
显示“成功:指定的值已得到保存。”即可关闭当前CMD。
在新的CMD中验证环境变量是否配置成功如下(请务必重新打开CMD窗口):
echo %DEEPSEEK_API_KEY%
正确显示你的密钥则配置成功。
(3)Cursor协助修改代码
打开已下载的cursor→在文件中打开llm-examples→找到Chatbot.py并打开查看代码
·api_key(确保从环境变量DEEPSEEK_API_KEY 读取)
·base_url(修改为获取到APIKey的网址,如硅基流动的是https://api.siliconflow.cn/v1)
·model(修改为你需要的大模型,如"deepseek-ai/DeepSeek-V3.2")
更保险更直接的操作是Ctrl+A选中所有代码,Ctrl+L调出对话框,把需求喂给cursor修改并调试,完成后保存文件。
(4)运行效果
首先切换目录
#放置正确的llm-examples路径
cd ······\Desktop\llm_project\llm-examples
然后激活环境
conda activate st_llm
最后启动应用
streamlit run Chatbot.py


易错分析
-
踩坑:DeepSeek API 余额不足
·解读:配置好 API Key 后调用失败,提示余额不足(作者本来使用的也是DeepSeek开放平台,后来发现余额不足才改用了硅基流动)。
·出错原因:DeepSeek 新用户赠送额度有限,测试消耗完毕后无法继续调用。
·解决方案:改用 硅基流动(SiliconFlow) 平台或者阿里云百炼获取免费token额度。 -
踩坑:运行时发现路径错误
·解读:在 Chatbot.py 中修改代码后运行时提示 FileNotFoundError 或 No such file or directory。
·出错原因:代码中使用了路径错误,Streamlit 运行时的当前工作目录与预期不符。
·解决方案:使用 os.path.dirname(file) 动态获取当前脚本所在目录,再拼接相对路径,避免路径硬编码。
6.增添实用/趣味小功能
把需求给cursor即可,想要更详细的指令可以先用大模型生成再交给cursor,下面是一些可以参考的创意小功能:
· 对话导出按钮:一键导出用户和助手的对话记录
· 赋予人物设定:给机器人一个温柔专业的成长顾问设定
· 动态 emoji 头像:根据用户情绪显示 🥳 / 🤗 / 😇 / 🤔 / 😞
· 颜文字反馈:回复末尾附加●° ^ °●等颜文字
· 成长能量条:侧边栏显示 🌱 成长能量:█████░░░░░ 50%

总结
本实验基于 Streamlit 官方示例库,成功复现并二次开发了一个具备情感交互能力的智能聊天机器人。通过 Conda 隔离环境、清华镜像加速依赖安装,解决了网络与版本冲突问题;将模型接口适配为 DeepSeek API,采用环境变量保护密钥。在功能上,完成了界面中文化、实时字数统计,并创新性地增加了情绪分析系统(动态 emoji 头像、颜文字反馈、成长能量条)。整体开发过程中,借助 AI 辅助生成精确指令,高效迭代代码。最终应用运行稳定,能根据用户情绪智能切换回复风格与视觉反馈,兼顾实用性与趣味性,为后续接入更复杂的情感模型打下了良好基础。通过本次项目,可以深刻体会到“AI辅助编程的精髓”。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)