MCPcopy Index your code
hub / github.com/GenerousMan/DeepSeek-Chat-UI

github.com/GenerousMan/DeepSeek-Chat-UI @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
27 symbols 132 edges 7 files 10 documented · 37%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

DeepSeek Chat-UI 🚀

Streamlit License

基于Streamlit构建的智能聊天助手,集成深度思考模型与多用户管理系统,支持文件分析、会话管理和API密钥控制,支持联网搜索功能。 本实现主要调用阿里云的deepseek服务,因此需要部署者提前申请好阿里云百炼的api key,格式为sk-xxxx。

📜 更新日志

  • 2025.02.14
  • 完善了历史会话的展示功能
  • 修复了多用户同时使用下的一些冲突问题
  • 2025.02.12
  • 新增多API源配置功能,支持在管理员面板动态切换不同服务提供商
  • 2025.02.11
  • 新增联网搜索功能,使用serper的api进行调用
  • 注意,开启联网搜索可能会消耗比较多token,请合理配置搜索条目数。

🌟 主要功能

  • 多用户认证系统
  • 用户注册/登录(支持密码哈希加密)
  • 管理员特权控制面板
  • 用户黑名单管理系统

  • 智能对话功能

  • 支持文件上传分析(TXT/DOC/DOCX/PDF)
  • 上下文感知对话,会在单个session内保留上下文记忆
  • 双阶段响应机制(思考过程可视化)
  • 支持联网功能,在侧边栏中可以勾选是否生效

  • API密钥管理

  • 密钥配额控制(基于token计数)
  • 使用情况跟踪
  • 密钥吊销功能

  • 其它特性

  • SQLite数据库存储
  • 会话自动保存与恢复
  • 文件内容去重校验(MD5哈希)
  • 中文优化token计数算法

🛠️ 安装指南

  1. 克隆仓库:
git clone https://github.com/GenerousMan/DeepSeek-Chat-UI.git
  1. 安装依赖: 需要python >= 3.9
pip install -r requirements.txt

🖥️ 使用说明

  1. 修改app.py中的变量,可以通过app.py中修改,也可以直接新建.env文件,变量包括:
  2. dirs, 上传路径,以路径分隔符结尾。
  3. admin_user,初始的管理员账户
  4. admin_pass,初始的管理员密码
  5. api_key,云服务的key,需要在百炼申请。
  6. search_key, 搜索引擎的key,serper可申请。

.env文件示例如下:

SEARCH_API_KEY=xxx-serper-key
CHAT_API_KEY=sk-xxx
ADMIN_USERNAME=admin
ADMIN_PASSWORD=admin
  1. 启动应用:
streamlit run app.py
  1. 访问路径:
  2. 普通用户http://localhost:8501
  3. 管理员面板:通过侧边栏设置按钮进入,登录管理员账户即可

  1. 初始化user key: 作为管理员登录后,需要创建user key,否则无法使用。 user key的作用是记录使用量,避免服务提供给他人使用后被恶意薅用量,请谨慎配置。 这个user key和api使用的key是不同的:
  2. user key: 可自定义,仅和user绑定。

  • api key: 云服务提供的,一般为sk-xxx格式。是整个项目和云服务的对接途径。

  1. 功能操作:
  2. 上传文件(单个文件最大1MB)
  3. 可点击创建新会话
  4. 可管理历史会话
  5. 普通用户可以登录后查看key的使用量
  6. 管理员可查看使用统计和密钥管理

📂 项目结构

├── app.py                 # 主应用逻辑
├── admin_utils.py         # 管理员相关逻辑
├── api_utils.py           # api相关逻辑
├── auth_utils.py          # 认证相关逻辑
├── db_utils.py            # 数据库相关逻辑
├── file_utils.py          # 文件上传、处理逻辑
├── helper_utils.py        # session管理相关逻辑
├── requirements.txt       # 依赖清单
├── uploads/               # 文件存储目录
├── app.db                 # 数据库文件
├── .env                   # 环境配置文件
└── public/                # 静态资源
    └── deep-seek.png      # logo

🔧 技术架构

核心组件: - Streamlit (Web框架) - SQLite (数据库) - bcrypt (密码哈希) - textract (文件解析) - DeepSeek API (AI模型)

关键技术: - 会话状态管理 - 文件内容哈希校验 - Token配额算法(中文优化) - 数据库事务处理 - 响应流式处理

🤝 贡献指南

欢迎通过以下方式参与贡献: 1. 提交Issue报告问题 2. 发起Pull Request改进代码 3. 完善项目文档

⚠️ 注意事项

  • 生产环境部署前需:
  • 替换默认管理员凭证
  • 配置HTTPS加密
  • 定期备份数据库
  • 文件解析功能依赖系统库: ```bash # Ubuntu系统需安装: sudo apt-get install -y poppler-utils tesseract-ocr

# MacOS安装: brew install tesseract poppler ```

📄 许可证

本项目采用 MIT License,保留署名权利。


本项目与DeepSeek品牌无官方关联,仅为技术演示用途。敏感操作前请做好数据备份。

Core symbols most depended-on inside this repo

get_cursor
called by 26
db_utils.py
hash_password
called by 2
auth_utils.py
is_blacklisted
called by 2
auth_utils.py
verify_password
called by 1
auth_utils.py
authenticate_user
called by 1
auth_utils.py
login_form
called by 1
auth_utils.py
register_form
called by 1
auth_utils.py
get_connection
called by 1
db_utils.py

Shape

Function 27

Languages

Python100%

Modules by API surface

auth_utils.py6 symbols
helper_utils.py5 symbols
admin_utils.py5 symbols
db_utils.py3 symbols
app.py3 symbols
api_utils.py3 symbols
file_utils.py2 symbols

For agents

$ claude mcp add DeepSeek-Chat-UI \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact