基于 Streamlit 构建一个支持 DeepSeek API、文件上传的AI应用
本文介绍如何基于Streamlit框架和DeepSeek API构建一个功能完善的AI助手应用。该应用支持登录鉴权、多模型选择、上下文记忆、文件上传(PDF/文本)等功能,无需前端开发经验。文章详细讲解了项目结构、核心模块实现(包括日志系统、上下文管理、文件解析等),并提供了完整的部署指南,包括GitHub托管和Streamlit Cloud部署方案。通过Python+Streamlit的组合,开
🚀 基于 Streamlit 构建一个支持 DeepSeek API、文件上传的AI应用
本文将手把手带你构建一个具有登录鉴权、上下文记忆、多模型支持、文件读取等功能的 DeepSeek AI Web 助手。只需使用 Python 和 Streamlit 即可完成,无需前端开发经验。
🧠 背景介绍
DeepSeek 是一个开源通用大模型服务,具备强大的语言理解与推理能力,支持多种推理模型,如 deepseek-chat
和 deepseek-reasoner
。
我们将使用 Python 的 Streamlit 框架,构建一个网页端 AI 助手工具,具备以下亮点功能:
- ✅ 登录鉴权(支持 API 密钥)
- ✅ 多模型选择与温度调节
- ✅ 聊天上下文记忆(限制上下文长度)
- ✅ 支持文件上传(PDF、文本等)
- ✅ 接入 DeepSeek API 实时响应
- ✅ 日志记录 & 错误处理
🔧 环境准备
请确保安装以下依赖:
pip install streamlit requests pdfplumber chardet
🗂️ 项目结构概览
项目中主要包含如下模块:
📁 deepseek_dashboard/
│
├── main.py # 主程序入口
├── deepseek_dashboard.log # 日志输出文件(自动生成)
🧱 主要功能模块解析
1️⃣ 日志系统配置
def configure_logging():
...
logging.basicConfig(level=logging.INFO, handlers=[file_handler, console_handler])
我们使用 Python 标准库 logging
对用户行为、API 状态进行记录,方便排查问题。
2️⃣ 上下文记忆管理类
class ChatMemory:
def __init__(self, max_messages=8):
...
该类用于维护会话历史,可限制最多记录 N
条对话上下文,保证对话连贯性。
3️⃣ 文件上传与解析
def process_uploaded_files(files) -> str:
...
支持上传 PDF 和 TXT 文件,PDF 使用 pdfplumber
提取文本,其他文件自动识别编码(通过 chardet
),截断长度防止超长上下文。
4️⃣ 调用 DeepSeek 接口
def query_deepseek(prompt, system_prompt, memory, model="deepseek-chat", temperature=0.7) -> Dict:
...
关键参数说明:
prompt
:用户问题system_prompt
:系统角色设定(如“你是专业文档助手”)memory
:上下文历史model
:选择模型(支持 deepseek-chat / deepseek-reasoner)temperature
:控制回复的创造性
5️⃣ 登录页面
def login_page():
...
提供 API Key 的输入框,用户需输入有效 DeepSeek API Key 才可使用主界面。
6️⃣ 主界面逻辑
def main_interface():
...
功能包括:
- 左侧栏模型选择、系统角色设置、文件上传
- 展示历史对话
- 用户输入提问
- 自动携带上传文件内容进行问答
- 返回助手回答
🎬 运行项目
streamlit run main.py
运行效果:
- 登录页面输入 API 密钥
- 进入主界面,上传文件、输入问题
- 获取 DeepSeek 回复
✅ 支持中英文 ✅ 支持 PDF 抽取 ✅ 可自定义系统提示词与模型
💡 示例效果图
🔑 登录界面
🧠 主界面(带侧边栏)
🤖 DeepSeek 回复内容展示
📌 总结
本文通过 Streamlit + DeepSeek API 快速构建了一个多功能 AI 助手应用,非常适合:
- 日常对话问答
- 法律、金融、教育领域的问答机器人
- 语义搜索或智能文档助手
📁 源码获取
如果你想获取完整代码并持续跟进更新,可以访问:
💻 GitHub 地址:https://github.com/ghostgorge/DeepSeek-AI-Assistant2.0/tree/master
📫 如有疑问欢迎评论交流!
🚀 将项目部署到 GitHub
将你的项目托管到 GitHub 是部署前的第一步。假设你已经有了一个本地项目文件夹,比如 deepseek_dashboard/
,你可以按照以下步骤上传:
📌 Step 1:初始化 Git 仓库
cd deepseek_dashboard
git init
git add .
git commit -m "initial commit"
📌 Step 2:推送到 GitHub
- 登录 GitHub,新建一个仓库(比如:
deepseek-assistant
) - 然后在本地终端执行:
git remote add origin https://github.com/ghostgorge/DeepSeek-AI-Assistant2.0
git branch -M main
git push -u origin main
完成后你的项目就已经上传到 GitHub,可以用于云端部署了。
🌐 部署到 Streamlit Cloud
Streamlit Cloud 是 Streamlit 官方提供的免费托管平台,适合快速部署你的 AI 应用。
🚀 快速部署步骤
✅ Step 1:准备代码仓库
确保你的 GitHub 仓库中包含以下文件:
main.py
(主程序)requirements.txt
(依赖文件)
✍ 创建 requirements.txt
(示例)
streamlit
requests
pdfplumber
chardet
🔥 注意:Streamlit 会自动识别
main.py
,你无需设置额外入口。
✅ Step 2:登录 Streamlit Cloud 并部署
- 打开 Streamlit Cloud
- 点击右上角
Sign in with GitHub
,授权登录 - 进入控制台后点击 “New app”
- 选择你刚刚上传的 GitHub 仓库
- 指定主脚本路径为:
main.py
- 点击
Deploy
几秒后你的应用就上线了 🎉
💡 高级配置建议
- Secrets:如需安全存储 API Key,可使用
st.secrets
功能 - 自定义域名:支持绑定自己的域名
- 自动部署:仓库更新后可自动重新部署
✅ 示例部署地址
如果你部署成功了,可以把你的地址放在这里展示,例如:
🔗 在线体验: DeepSeek API 登录 · Streamlit
📣 结语
如果你觉得这篇文章对你有帮助,欢迎 👍点赞、⭐收藏、📝评论!
更多推荐
所有评论(0)