基于 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 api key后登录,上传文档,不一会就可以得到分析结果,我以随意的一个文本为例:
总结
本文通过 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 ***替换为你的github项目网站连接***
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 并部署
打开 https://streamlit.io/cloud
进入控制台后点击“New app”
选择你刚刚上传的 GitHub 仓库
指定主脚本路径为:main.py
点击Deploy
几秒后你的应用就上线了
高级配置建议
Secrets
:如需安全存储 API Key,可使用st.secrets功能
自定义域名
:支持绑定自己的域名
自动部署
:仓库更新后可自动重新部署
示例部署地址
如果你部署成功了,可以把你的地址放在这里展示,例如:
在线体验:https://deepseek-ai-assistant2.streamlit.app/
结语
如果你觉得这篇文章对你有帮助,欢迎 点赞、⭐收藏、评论!
领取专属 10元无门槛券
私享最新 技术干货