原贴链接

我想就我过去九个月一直在开发的 reMind 项目征求一些反馈。它是一个开源的数字记忆助手,可以捕捉屏幕内容,使用 AI 进行索引和检索,并将所有内容本地存储以确保隐私。以下是代码功能的更详细分解:

关键组件和功能

  1. 屏幕截图 (record_photo.py)
    • 定期截取屏幕截图(默认每2秒一次)
    • 使用结构相似性 (SSIM) 和直方图比较来检测截图之间的显著变化
    • 将截图组织到每日文件夹中
    • 实现动态缓冲系统,根据最近的变化调整敏感度
  2. 图像处理流水线 (pipeline_db.py)
    • 使用 watchdog 监控目录中的新截图文件
    • 通过 OCR 系统(使用基于 Swift 的工具)处理新图像
    • 从图像中提取文本内容和元数据
    • 将处理后的数据存储在 SQLite 数据库和 JSON 文件中,以便于检索
  3. 数据摄取 (ingestion.py)
    • 从 SQLite 数据库加载和处理新数据
    • 按日期对条目进行分组并更新 JSON 文件(new_texts.json 和 all_texts.json)
    • 确保不同存储格式之间的数据一致性
  4. 向量存储创建 (adding_vectore.py)
    • 使用 Chroma 创建和更新向量存储,以实现高效的相似性搜索
    • 利用 OllamaEmbeddings 生成文本嵌入
    • 将文档分割成更小的块以实现更精确的检索
    • 实现系统以仅跟踪和处理新文档或更新文档
  5. 查询处理 (swift.py)
    • 设置 Flask 服务器来处理用户查询
    • 与 Langchain 集成以实现高级检索和问答
    • 实现基于时间的过滤结果(例如,今天、昨天、本周)
    • 使用 Ollama 和 Llama 3.1 模型生成响应
    • 对问题进行分类,以确定它们是需要搜索个人知识库还是可以用通用知识回答
  6. 应用程序管理 (remind_sansprint.py)
    • 作为 reMind 应用程序的主入口点
    • 设置必要的目录并初始化 SQLite 数据库
    • 管理各种后台脚本的执行(屏幕截图、处理流水线等)
    • 使用 rumps 实现系统托盘应用程序,以便于访问和控制
  7. 用户界面集成
    • 虽然不是 Python 后端的一部分,但项目与 OpenWebUI 集成,提供用户友好的界面
    • 允许用户通过类似聊天的界面与其个人知识库进行交互

关键技术

  • Ollama: 用于在本地运行 Llama 3.1 模型
  • Meta 的 Llama 3.1: 用于理解和生成响应的核心语言模型
  • Nomic AI: 用于生成文本嵌入
  • Chroma: 向量数据库,用于高效的相似性搜索
  • Langchain: 提供构建 LLM 应用程序的工具
  • Flask: 轻量级 Web 服务器,用于处理 API 请求
  • SQLite: 本地数据库,用于存储处理后的数据
  • OpenWebUI: 提供用户友好的界面,用于与系统交互

目标是使 reMind 可定制且完全开源。所有数据处理和存储都在本地进行,确保用户隐私。该系统设计为可扩展,允许用户可能添加自己的模块或自定义现有模块。

如果您有任何改进项目的想法或建议,我将不胜感激。如果您有兴趣查看或贡献,这里是 GitHub 链接:https://github.com/DonTizi/remind

感谢您提前提供的意见!

讨论总结

本次讨论主要围绕开源项目 reMind 展开,这是一个数字记忆助手,旨在通过屏幕捕捉、AI 索引和本地存储来确保用户隐私。讨论中,用户对项目的功能和潜在应用表示了浓厚的兴趣,并提出了多项改进建议,如增加手动截图选项、改进权限提示和增强用户体验。此外,讨论还涉及了项目的安全性和潜在的恶意使用问题,特别是与 Windows Recall 的比较。总体而言,讨论氛围积极,用户对项目的开放性和隐私保护表示认可,但也提出了一些实际操作中的问题和改进方向。

主要观点

  1. 👍 增加手动截图选项
    • 支持理由:提高用户体验和隐私保护,避免自动截图可能带来的隐私问题。
    • 反对声音:无
  2. 🔥 改进权限提示
    • 正方观点:确保用户在安装过程中清楚了解并授予必要的权限。
    • 反方观点:无
  3. 💡 支持 OpenAI 兼容的 API
    • 解释:增强项目的灵活性和兼容性,吸引更多用户和开发者。
  4. 💡 增加全局热键或唤醒词
    • 解释:方便用户快速触发截图,提升操作便捷性。
  5. 💡 关注项目的安全性和潜在恶意使用
    • 解释:提醒开发者注意项目的潜在风险,确保用户隐私和数据安全。

金句与有趣评论

  1. “😂 Might make for an "alternative manual mode" in your app (I don’t know if you’d be interested in something like that of course).”
    • 亮点:提出了一个创新的改进建议,增加了项目的灵活性。
  2. “🤔 In my opinion, just like MS recall, this has way more malicious use cases than originally intended use case.”
    • 亮点:引发了关于项目潜在风险的深入讨论,提醒开发者关注安全性。
  3. “👀 ReMind can work on Linux, which nets you a bit more security due to niche and is run locally.”
    • 亮点:强调了项目在 Linux 上的安全性优势,为潜在用户提供了信心。

情感分析

讨论的总体情感倾向积极,用户对 reMind 项目表示了高度的兴趣和赞赏。主要分歧点在于项目的自动截图功能和潜在的恶意使用问题。一些用户担心自动截图可能带来的隐私问题,建议增加手动截图选项;而另一些用户则认为项目在隐私保护方面做得很好,特别是在 Linux 上的运行提供了额外的安全性。总体而言,用户对项目的开放性和隐私保护表示认可,但也提出了一些实际操作中的问题和改进方向。

趋势与预测

  • 新兴话题:手动截图选项的实现和权限提示的改进可能会成为后续讨论的热点。
  • 潜在影响:改进后的 reMind 项目可能会吸引更多用户,特别是在注重隐私保护和用户体验的群体中。同时,项目的安全性和潜在恶意使用问题也将继续受到关注,可能会推动开发者进一步增强项目的防护措施。

详细内容:

《开源数字记忆助手 reMind 引发热议》

近日,Reddit 上一则关于 reMind 的帖子引起了广泛关注。这个项目是开发者历经九个月精心打造的开源数字记忆助手,它能够捕获屏幕内容,利用 AI 进行索引和检索,并将所有数据存储在本地以保障隐私。该帖子获得了众多点赞和大量评论。

帖子中详细介绍了 reMind 的代码功能,包括定期截图、图像处理、数据摄取、向量存储创建、查询处理、应用管理以及用户界面集成等多个方面,还列举了所用到的关键技术。同时,给出了项目的 GitHub 链接,希望获得大家对于改进项目的想法和建议。

讨论焦点与观点分析: 有人认为可以添加类似于自动文档记录的功能,比如在屏幕分享时录制音频并结合截图生成文档。也有人觉得应该让用户自主选择何时截图,而非默认自动截图,这样会对更多人更有用,比如可以成为 Obsidian 的良好合作伙伴应用。还有人对如何连接 Ollama 表示好奇,探讨是否存在与 OpenAI 兼容的聊天完成 API 连接,以实现连接其他后端的可能性。有人称赞这个项目很酷,会在周末好好研究。也有人提出关于“安装服务”和“启动服务”的作用,以及是否会提示获取屏幕录制等权限的疑问。还有人认为手动截图会比自动截图更好。有人担心像 Windows Recall 一样存在被恶意利用的风险,但也有人指出 reMind 能在 Linux 上运行,本地运行会更安全。

总之,reMind 这个项目在 Reddit 上引发了热烈讨论,大家从不同角度提出了想法和建议,为项目的进一步完善提供了多样的思路。