返回首页
最新
嗨,HN!我正在开发一个名为 Dayflow 的 macOS 应用,它可以自动跟踪你实际在做什么(不仅仅是你打开了哪些应用程序)。
以下是它的功能:
- 它创建了你一天的语义时间线;
- 通过理解你屏幕上的内容(使用本地或云端的 VLM)来实现这一点;
- 这使你可以准确看到你的时间花在哪里,而无需手动记录。
传统的时间追踪工具告诉你“在 Chrome 上花了 3 小时”,这并没有什么帮助。Dayflow 实际上可以理解你是在阅读文档、调试代码,还是在浏览 HN。你得到的不是“Chrome: 3 小时”,而是“审阅 PR 评论: 45 分钟”、“阅读关于 Rust 的 HN 线程: 20 分钟”、“调试认证流程: 1.5 小时”。
我曾是 Rewind 的早期用户,但很少使用其检索功能。我构建 Dayflow 是因为我看到了屏幕数据的其他有趣用途。我发现它帮助我在工作时保持专注——我每隔几个小时查看一次,确保我的时间花费符合我的初衷——如果没有,我会尝试调整方向。
关于隐私,你需要知道以下几点:
- 100% 本地运行,使用 qwen2.5-vl-3b(约 4GB 模型)
- 不上传云端,无需账户
- 完整源代码在 MIT 许可下可用([https://github.com/JerryZLiu/Dayflow](https://github.com/JerryZLiu/Dayflow))
- 可选:自带 Gemini API 密钥以获得更好的质量(存储在钥匙串中,提供免费层的解决方案以防止在你的数据上进行训练)
技术栈相对简单,使用 SwiftUI 和本地 sqlite 数据库。利用原生 macOS API 进行高效的屏幕捕获。由于大多数本地运行 LLM 的人已经有了自己选择的工具(如 Ollama、LLMStudio 等),我决定不将 LLM 嵌入到 Dayflow 中。
迄今为止,最大的挑战是将 SOTA 视觉模型(如 Gemini 2.5 Pro)适配到小型本地模型。我的限制是它必须占用少于 4GB 的内存并具备视觉能力。我进行了大量评估,以确定 Qwen2.5VL-3B 是大小和质量的最佳平衡,但我仍然不得不接受质量上的相当大的折衷。我还在采样率和提示分块方面进行了创造性尝试,以应对 100 倍更小的上下文窗口。处理 15 分钟的片段需要大约 32 次本地 LLM 调用,而不是 2 次 Gemini 调用!
接下来我正在做的事情:
- 蒸馏:使用 Gemini 的高质量输出作为训练数据,教会本地模型所需的模式,希望能缩小质量差距。
- 自定义仪表板,你可以跟踪任何问题的答案,比如“我在 HN 上花了多长时间?”或“距离我今天的第一次深度工作会话还有多少小时?”
我很想听听你的想法,特别是如果你在生产力追踪方面遇到过困难,或者对这种工具有什么期望。
我开发了Artifex,这是一个Python库,用于创建特定任务的语言模型(LLM),专注于自然语言处理(NLP)和文本分类,而无需训练数据。目前,支持的模型仅包括意图分类和护栏模型,但我会根据用户反馈很快添加更多功能。
我之所以制作这个库,是因为通用的语言模型对于简单的文本分类任务来说显得过于复杂,而使用LLM API的成本也会迅速增加。另一方面,为特定任务微调一个LLM需要标注数据,而并不是每个人都有这些数据。
因此,我创建了一个库,可以在没有训练数据的情况下训练小型、特定任务的LLM。您只需描述模型的行为,模型就会在为此目的生成的合成数据上进行训练。
这些模型可以在本地(无需GPU)或小型服务器上运行,能够卸载简单任务,从而减少对第三方LLM API的依赖。
我欢迎任何反馈或新模型/任务的建议。这里是GitHub仓库链接: [https://github.com/tanaos/artifex](https://github.com/tanaos/artifex)
后端API往往会发展成大型的 orchestration 类,充满了重复的调用和手动的并发处理。<p>我一直在开发 Mosaic,这是一个 Kotlin 框架,它通过小的、请求范围内的“瓦片”来组合响应。每个瓦片在每个请求中运行一次,依赖关系自动解析,独立的瓦片可以并行执行,无需额外的样板代码。<p>目前还处于早期阶段(v0.2.0),但在缓存、并发和可测试性方面已经可以使用。期待听到大家对这种方法的反馈。<p>GitHub: <a href="https://github.com/Nick-Abbott/Mosaic" rel="nofollow">https://github.com/Nick-Abbott/Mosaic</a>
Maven Central: org.buildmosaic:mosaic-core:0.2.0