🚀 基于 Streamlit 构建一个支持 DeepSeek API、文件上传的AI应用

本文将手把手带你构建一个具有登录鉴权、上下文记忆、多模型支持、文件读取等功能的 DeepSeek AI Web 助手。只需使用 Python 和 Streamlit 即可完成,无需前端开发经验。

🧠 背景介绍

DeepSeek 是一个开源通用大模型服务,具备强大的语言理解与推理能力,支持多种推理模型,如 deepseek-chatdeepseek-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 抽取 ✅ 可自定义系统提示词与模型

💡 示例效果图

🔑 登录界面

img

🧠 主界面(带侧边栏)

img

🤖 DeepSeek 回复内容展示

img

📌 总结

本文通过 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

  1. 登录 GitHub,新建一个仓库(比如:deepseek-assistant
  2. 然后在本地终端执行:
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 并部署
  1. 打开 Streamlit Cloud
  2. 点击右上角 Sign in with GitHub,授权登录
  3. 进入控制台后点击 “New app”
  4. 选择你刚刚上传的 GitHub 仓库
  5. 指定主脚本路径为:main.py
  6. 点击 Deploy

几秒后你的应用就上线了 🎉

💡 高级配置建议

  • Secrets:如需安全存储 API Key,可使用 st.secrets 功能
  • 自定义域名:支持绑定自己的域名
  • 自动部署:仓库更新后可自动重新部署

✅ 示例部署地址

如果你部署成功了,可以把你的地址放在这里展示,例如:

🔗 在线体验: DeepSeek API 登录 · Streamlit

📣 结语

如果你觉得这篇文章对你有帮助,欢迎 👍点赞、⭐收藏、📝评论!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐