MineContext 屏幕上下文捕捉:4 步跑起来并调优
【免费下载链接】MineContextMineContext is your proactive context-aware AI partner(Context-Engineering+ChatGPT Pulse)项目地址: https://gitcode.com/GitHub_Trending/mi/MineContext
MineContext 是一个开源的上下文感知 AI 伙伴,核心是屏幕上下文捕捉:周期性截图你的屏幕,把内容变成可检索的上下文,再主动推送每日总结、待办和提示。它适合希望 AI 自动知道自己"在干什么"、不想手动记录工作的知识工作者。
🚀 跑起来:最小启动路径
- 克隆仓库到本地:
git clone https://gitcode.com/GitHub_Trending/mi/MineContext - 安装后端依赖,
uv sync会自动创建虚拟环境(没有 uv 的话先按 README 安装):cd MineContext && uv sync - 设置模型服务的环境变量,config/config.yaml 通过
${VAR}引用它们:
export LLM_API_KEY="your-api-key" export LLM_BASE_URL="<你的模型服务地址>" export LLM_MODEL="doubao-seed-1-6-flash-250828" export EMBEDDING_API_KEY="your-api-key" export EMBEDDING_BASE_URL="<你的模型服务地址>" export EMBEDDING_MODEL="doubao-embedding-vision-250615"- 启动 FastAPI 后端,默认监听 1733 端口:
uv run opencontext start --port 1733 - 浏览器打开
http://127.0.0.1:1733,可以看到对话、上下文列表和监控页面。
这张 GIF 展示后端运行后的界面:主页主动推送每日总结、待办卡片和活动记录,你也可以在对话框里直接提问。
⚙️ 它是怎么工作的:上下文捕捉的四个机制
屏幕截图从哪来:捕获层定时拍
context_capture/ 模块负责持续收集上下文。截图源的核心是一个定时任务:每capture_interval秒截一次屏,把图片写入本地目录;旁边还有文件夹监控和文件监控,盯着指定目录里的文档变化。注意默认配置里capture.screenshot.enabled是false,改成true截图才会真正开始。
截图怎么变成可用上下文:处理流水线
context_processing/ 接手原始素材。截图处理器先做相似度哈希去重,连续几乎一样的画面不会重复处理;再交给视觉语言模型(VLM)描述屏幕内容,结构化成一条活动记录。文档处理器把长文档切块并抽取实体,merger 再把结果合并、去重,归入活动、意图、状态等几类上下文。
结果怎么推到你面前:生成与消费层
context_consumption/ 模块定时触发模型生成内容,generation/下有活动记录、提示、待办、日报四类任务,各自按独立间隔运行。tools/ 里则是一套检索工具:你在对话里提问时,agent 先识别意图,再调对应工具取回上下文生成回答。
🔍 一个完整例子:问"我下午查了什么"
你做了什么:开着记录,下午翻了好几个网页查资料,晚上在对话页问"我下午查了什么资料?"
系统内部发生了什么:查资料时的截图被 VLM 描述成活动记录,向量化后存入 ChromaDB,同时经 storage/ 写入 SQLite。提问到达后,context_agent/ 里的 agent 做意图识别,再调用 retrieval_tools/ 下的语义和活动检索工具,取回下午相关的记录。
你最终得到什么:一份你下午查过的资料清单,带时间和对应页面。回答的依据是真实捕捉到的上下文,不是编出来的记忆。
⚡ 关键配置项怎么调:捕捉频率与推送节奏
下面三个参数对体验影响最大,都在 config/config.yaml 里:
capture: screenshot: enabled: true # 截图捕捉默认关闭,必须开启 capture_interval: 15 # 截图间隔(秒) processing: screenshot_processor: batch_size: 20 # 每批处理的截图数 content_generation: activity: interval: 900 # 活动生成间隔(秒)capture_interval:调小记录更细,但模型调用更多,笔记本上 5~15 秒合理。batch_size:调大能提高处理吞吐,日志里看到队列积压时优先调它。activity.interval:最低 600 秒,调短推送更及时,代价是成本上升。
启动后可以在监控页随时查看 Token 用量和各生成任务的状态。
🩹 卡住了?高频问题速查
启动时找不到配置文件
- 现象:日志直接报
FileNotFoundError,提示指定的配置文件不存在。 - 排查方向:CLI 相对当前工作目录找
config/config.yaml,多半是不在仓库根目录执行。 - 解决操作:回到仓库根目录重跑,或用
--config /path/to/config.yaml显式指定路径。
模型调用失败
- 现象:日志出现 401/404 错误,或启动后一直没生成任何上下文。
- 排查方向:先看 LLM_/EMBEDDING_六个环境变量是否都已导出,再确认模型服务开通了对应的视觉语言模型和向量化模型。
- 解决操作:补齐变量后重启;用豆包时记得 VLM 和向量化模型要分别开通。
截图在拍,但主页没有推送
- 现象:截图目录里有新图片,主页却没有活动和待办出现。
- 排查方向:确认
content_generation各任务的间隔是否太长,以及日志里生成任务是否报错。 - 解决操作:这条命令实时看日志,定位卡在哪一步:
tail -f logs/opencontext.log临时把间隔降到 600~900 秒,或打开content_generation.debug.enabled把生成过程落盘排查。
想继续深入各模块职责,从 src/architecture-overview-zh.md 的分层图入手;要跑桌面版应用,看 README「贡献指南」一节的pnpm dev开发流程。
【免费下载链接】MineContextMineContext is your proactive context-aware AI partner(Context-Engineering+ChatGPT Pulse)项目地址: https://gitcode.com/GitHub_Trending/mi/MineContext
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考