Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

🧠 BrowseMind

一个智能的 Chrome 浏览行为分析插件,帮助你了解时间都花在哪里了。

Version License Chrome

✨ 功能特性

📊 本地数据采集

  • 自动记录浏览历史
  • 实时追踪页面停留时间
  • 智能过滤系统页面
  • 本地安全存储最近 7 天数据

🎯 智能分类

  • 📚 学习:教育、文档、知识类网站
  • 💻 编程:GitHub、LeetCode、技术博客
  • 🎮 娱乐:视频、游戏、音乐平台
  • 💬 社交:社交网络、聊天工具
  • 🔧 工具:搜索、邮件、办公软件

📈 数据可视化

  • 饼图:分类占比一目了然
  • 柱状图:24 小时活跃度分布
  • 折线图:7 天浏览趋势
  • Popup 与 Dashboard 双界面展示

🤖 AI 智能分析

  • 基于 AI 的浏览行为分析
  • 个性化问题识别
  • 智能优化建议
  • 支持 OpenAI 和 DeepSeek
  • 历史分析报告存储

⏰ 高级分析

  • 时间黑洞检测:识别不知不觉浪费大量时间的网站
  • 注意力曲线:分析一天中的专注度变化,识别高效时段
  • 自动空状态处理:未同步云端数据时显示提示,不报错

🎯 目标与提醒

  • 创建每日学习 / 编程目标
  • 创建每日娱乐 / 社交时长限制
  • 自动更新目标进度
  • 达标或接近超标时弹出 Chrome 通知

☁️ 云端同步

  • 数据上传到云端后端
  • 支持 AI 分析与高级分析
  • 支持目标进度云端计算
  • 默认云服务器地址:http://119.29.55.112:8000

🚀 快速开始

1. 安装插件

  1. 克隆或下载本仓库
git clone https://github.com/initialize-ye/BrowseMind.git
  1. 打开 Chrome 浏览器,访问 chrome://extensions/
  2. 开启右上角“开发者模式”
  3. 点击“加载已解压的扩展程序”
  4. 选择 BrowseMind 仓库根目录
  5. 完成后,点击工具栏中的 BrowseMind 图标即可使用

2. 启动后端(可选,但推荐)

如果只想看本地统计,后端不是必需的;如果要使用同步、AI 分析、目标和高级分析,则需要启动后端。

cd backend
pip install -r requirements.txt
python main.py

本地 API 文档:

  • http://localhost:8000/docs

3. 配置 AI(可选)

cd backend
cp .env.example .env
# 编辑 .env,填入你的 OpenAI 或 DeepSeek Key

💡 使用指南

Popup 弹窗能做什么

点击浏览器工具栏中的 BrowseMind 图标后,可以在弹窗中完成这些操作:

  • 查看今日概览(访问次数、浏览时长)
  • 查看 7 天统计(总访问、独立网站)
  • 切换三种图表:分类占比 / 时间分布 / 每日趋势
  • 查看今日分类与 7 天分类
  • 查看最近访问记录
  • 查看今日目标
  • 查看时间黑洞与注意力曲线
  • 执行刷新、打开仪表盘、同步、AI 分析

当前弹窗底部操作按钮为:

  • 刷新
  • 仪表盘
  • 同步
  • AI 分析

Dashboard 仪表盘能做什么

仪表盘是“数据展示为主,设置与操作为辅”的页面,适合更完整地查看最近 7 天数据:

  • 今日访问 / 今日时长 / 7 天访问 / 独立网站
  • 7 天趋势图
  • 分类构成
  • 时间分布
  • 高频站点
  • 同步、AI 分析、导出 JSON、清空本地数据
  • 创建/删除今日目标
  • 保存、恢复、测试后端 API 地址

本地使用流程

  1. 安装扩展并正常浏览网页
  2. 打开 popup 查看本地统计
  3. 使用图表切换查看不同时段和分类分布
  4. 如需更完整视图,点击“仪表盘”打开 Dashboard

即使没有后端,本地统计与图表仍然可以使用。

☁️ 云端同步

首次同步

  1. 确保后端服务已启动(本地或远程)
  2. 点击 popup 或 dashboard 中的“同步 / 立即同步”按钮
  3. 系统会自动生成用户 ID 并上传数据
  4. 同步成功后,云端功能即可使用

同步后可用的功能

  • AI 分析
  • 时间黑洞检测
  • 注意力曲线
  • 今日目标进度更新
  • 娱乐时间提醒 / 目标达成提醒

默认服务器地址

项目默认使用:

  • http://119.29.55.112:8000

如果你使用自己的后端,可以在 Dashboard 的“连接设置”中修改 API Base URL。

🤖 AI 智能分析

使用条件

  • 后端服务已启动
  • 已配置 AI API Key(DeepSeek 或 OpenAI)
  • 已同步至少一部分浏览数据到云端

使用方式

  1. 点击 popup 或 dashboard 中的“AI 分析”按钮
  2. 等待约 5-10 秒
  3. 查看分析结果:
    • 📝 行为总结
    • ⚠️ 发现的问题
    • 💡 优化建议

AI 分析示例

📝 行为总结
你在过去7天主要浏览编程和学习类网站,占总时长的65%。
娱乐类网站占比30%,主要集中在晚上8点后。

⚠️ 发现的问题
• 娱乐时间过长,每天平均2.5小时
• 深夜浏览频繁,影响睡眠质量
• 社交网站访问过于分散,影响专注度

💡 优化建议
• 设置娱乐时间限制,每天不超过1.5小时
• 晚上10点后减少屏幕时间
• 使用番茄工作法,集中处理社交消息

⏰ 高级分析

高级分析现在是自动加载的,不再依赖单独的“刷新分析”或“高级分析”按钮。

时间黑洞检测

同步后,popup 会自动显示:

  • 浪费时间占比
  • 总浪费时间
  • 前 3 个时间黑洞网站
  • 长时间访问次数与最长单次停留

什么是时间黑洞?

  • 单次访问超过 30 分钟的网站,通常会被识别为潜在时间黑洞。

注意力曲线

同步后,popup 会自动显示:

  • 专注度分数
  • 高效时段数量
  • 个性化建议
  • 24 小时注意力曲线图

专注度计算方式:

  • 专注度 = 工作/学习类网站占比 × 100 - 娱乐类网站占比 × 50
  • 分数越高表示越专注

无云端数据时的表现

如果当前用户还没有同步云端数据:

  • 高级分析区域会显示空状态提示
  • 不会把 404 当成致命错误
  • 先同步后会自动更新

🎯 今日目标与提醒

创建目标

在 popup 或 dashboard 中都可以创建今日目标,可选类型包括:

  • 每日学习时长
  • 每日娱乐时长限制
  • 每日编程时长
  • 每日社交时长限制

创建时输入分钟数,系统会自动换算为秒并上传到后端。

目标追踪

  • 后端根据已同步的浏览数据计算进度
  • 后台脚本会定时更新目标进度
  • 浏览记录变化后也会触发进度检查
  • popup 和 dashboard 都会显示当前进度

自动提醒

系统会在以下情况下发送 Chrome 通知:

  • 🎉 目标达成:学习 / 编程目标完成
  • ⚠️ 时间提醒:娱乐 / 社交时间接近限制或超标

📊 数据说明

数据存储

  • 本地存储:chrome.storage.local,默认保留最近 7 天
  • 云端存储:后端 SQLite 数据库 backend/browsemind.db
  • 用户标识:首次同步时自动生成 userId

数据采集规则

  • 自动记录网页访问
  • 忽略 chrome:// 系统页面
  • 忽略停留时间少于 3 秒的访问
  • 每小时自动清理旧数据
  • 安装后会尝试导入最近 7 天历史记录

分类规则

基于域名和关键词自动分类:

  • 学习:教育、文档、知识类网站
  • 编程:GitHub、LeetCode、技术博客
  • 娱乐:视频、游戏、音乐平台
  • 社交:社交网络、聊天工具
  • 工具:搜索、邮件、办公工具
  • 其他:未匹配的网站

🛠️ 技术栈

前端

  • HTML5 + CSS3 + JavaScript
  • 本地内置 chart.min.js
  • Chrome Extension APIs
    • chrome.storage
    • chrome.tabs
    • chrome.history
    • chrome.alarms
    • chrome.notifications

后端

  • FastAPI 0.104.1
  • SQLAlchemy + SQLite
  • Pydantic
  • OpenAI / DeepSeek
  • httpx==0.27.2

部署

  • Ubuntu Server
  • GitHub Actions CI/CD
  • 通过 SSH 拉取代码、更新依赖、重启服务、健康检查

❓ 常见问题

Q1: 插件无法加载?

A: 请确认:

  1. Chrome 版本支持 Manifest V3
  2. 已开启“开发者模式”
  3. 选择的是包含 manifest.json 的仓库根目录

Q2: 数据不显示?

A: 可能原因:

  1. 刚安装插件,还没有足够浏览数据
  2. 浏览时间太短(<3 秒)被过滤
  3. 访问的是 chrome:// 系统页面

解决方法:

  • 正常浏览几个网页后再点“刷新”
  • 打开 Dashboard 查看本地数据是否已累计

Q3: 同步失败?

A: 检查:

  1. 后端服务是否启动
  2. 当前配置的 API 地址是否可访问
  3. 浏览器控制台和后端日志是否有错误

本地检查示例:

curl http://localhost:8000

Q4: AI 分析失败?

A: 可能原因:

  1. 未配置 AI API Key
  2. API Key 无效或额度不足
  3. 后端依赖或网络异常

解决方法:

  1. 检查 .env 文件
  2. 检查后端依赖是否已正确安装
  3. 查看后端启动日志

Q5: 为什么高级分析没有结果?

A: 常见原因:

  1. 还没有执行过云端同步
  2. 当前 userId 在后端没有记录
  3. 后端暂时不可达

解决方法:

  1. 先点击“同步 / 立即同步”
  2. 再重新打开 popup 或刷新 dashboard

Q6: 目标进度不更新?

A: 可能原因:

  1. 没有同步到云端
  2. 后端服务未启动
  3. 目标不是今天创建的

解决方法:

  1. 执行一次同步
  2. 确保后端地址正确
  3. 删除旧目标并创建新的今日目标

Q7: 通知不显示?

A: 请确认:

  1. Chrome 通知权限已开启
  2. 系统通知未被禁用
  3. 已设置目标且后端可正常更新进度

Q8: 时间统计为什么和真实感觉不完全一致?

A: 因为插件只能统计:

  • 当前激活标签页的停留时间
  • 浏览器处于前台时的使用时间

切换到其他应用、最小化浏览器、切换窗口焦点时不会继续计时。

🐛 故障排除

插件报错或界面异常

  1. 打开 chrome://extensions/
  2. 找到 BrowseMind
  3. 点击“错误”查看日志
  4. 点击“重新加载”重启扩展

后端无法启动

cd backend
pip install -r requirements.txt
python main.py

如果 8000 端口被占用,请先释放对应进程后再启动。

数据库异常

rm backend/browsemind.db
python backend/main.py

GitHub Actions 部署失败

请检查:

  1. GitHub Secrets 是否配置正确
  2. 服务器 SSH 是否正常
  3. Actions 日志中的依赖安装、服务重启、健康检查输出

📝 开发说明

扩展开发

  1. 修改前端文件后,去 chrome://extensions/ 重新加载插件
  2. 使用 popup 验证弹窗交互
  3. 使用 Dashboard 验证大屏展示和设置行为

后端开发

cd backend
pip install -r requirements.txt
uvicorn main:app --reload --host 0.0.0.0 --port 8000

本地文档:

  • http://localhost:8000/docs

关键文件

BrowseMind/
├── manifest.json
├── background.js
├── popup.html
├── popup.js
├── dashboard.html
├── dashboard.js
├── dataSync.js
├── dataProcessor.js
├── chart.min.js
├── backend/
│   ├── main.py
│   ├── database.py
│   ├── schemas.py
│   ├── ai_analyzer.py
│   ├── advanced_analyzer.py
│   ├── requirements.txt
│   └── browsemind.db
└── .github/workflows/deploy.yml

📄 License

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages