首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

基于 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/

结语

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

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O1NT671QiJOLxU8KFfFMWziQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券