Noi v1.0.0 使用问题汇总
昨天 Noi v1.0.0 发布后(Noi v1.0.0 正式发布!),我大概统计了下常见问题,可以概括为以下几个方面。由于 Noi 功能过于复杂,这次我先结合使用问题介绍一部分可以快速上手的功能,高级玩法后面再继续补充(没有进 Noi 交流群的朋友可以在公众号发 "noi" 获取二维码,和小伙伴一起交流使用心得)。
Noi 是什么
Noi 作为新兴浏览器,主要是面向 AI Agent 在进行架构设计。它无法完全取代常规浏览器的原因有:
- 需要使用大量浏览器插件才能工作的网站,不建议使用 Noi。
- 访问银行、金融等私密性较强的网站,不建议使用 Noi。Noi 并没有进行攻击性拦截测试,可能会存在某种风险。
- 因实现原因,并不能 100% 和传统浏览器功能对齐,如果 Noi 有让你不舒服的地方,暂时无法处理,但我会持续优化使用体验。
- 暂不支持跨设备数据同步,需要自己备份数据文件至其他设备(未来可能会支持云同步,比如通过 GitHub 私有仓库、或 Google 云盘之类的)。
Noi 主要优势在于:
- 数据完全本地化,基于系统文件做存储,无服务器。数据安全只和系统环境挂钩,如果电脑未被攻击,存储在本地的文件理论上是私密且安全的。
- 致力于打造高效工作流,提供稳定统一的 AI 管理方案。目前 AI 特性尚处于早期阶段,还无法与成熟的 AI 软件相提并论。
- Noi 以浏览器为核心,延伸出 Terminal 之类的功能,是为了扩大对系统的控制力(用户可能会不喜欢,如何更安全高效的使用这些能力,是 Noi 接下来要思考的问题)。
对 Noi 思考越多,才愈发觉得当初的架构无比正确。浏览器做主体是在解决“看”的问题(加载网页本质是先加载资源给人看,然后再进行各种操作),界面看似复杂,其实都在服务于“看”这个核心(更进一步,界面上的按钮、功能如果可以让 AI 自己使用,又会产生很多有趣的东西)。用户体验既抽象又具体,主要在优化用户解决问题的路径,一旦找到某个支点,就会诞生出无限可能。我认为 Noi 正在接近那个可以撬动它的支点!
老版本 0.4.0
数据迁移
安装新版是不会覆盖老版本数据的,但目前没有做数据迁移工具,只能以手动方式导入。v1.0.0 算是第一个稳定版,后续升级的数据兼容都会在应用内部处理。
新版只会在原数据目录中新增一个 noi_user 目录,但为了数据干净,还是建议备份数据,删除目录,重新初始化。Noi 数据存储的根路径是:
- macOS:
/Users/<username>/Library/Application Support/Noi - Windows:
C:\Users\<username>\AppData\Roaming\Noi - Linux:
/home/<username>/.config/Noi
以上是不同平台下 Noi 的根路径,后续不再强调,需要用到路径的描述我会统一使用 NoiRoot/noi_user 进行描述(也可在帮助菜单 Noi UserData 中打开)。
Noi v0.4.0 缓存的配置数据都是以 noi_ 开头的文件夹,建议将它们备份出来。主要有:
noi_prompts/:Prompts 数据,重点关注下面的user.prompt.json文件,是你正在使用的 Prompt(建议确认数据是否完整)。noi_prompts_log/:NoiAsk 输入记录,看自己需要进行备份。noi_configs/:该目录数据在新版配置中已经无用,可以丢弃(不放心的朋友可以先备份,方便后续找回)。noi_cache/:该目录下有个cache.mode.json就是你的收藏书签,建议确认数据完整性。我们需要把modes字段内的数据复制出来,粘贴进新版 Noi。
noi_prompts/user.prompt.json、noi_prompts_log/*.json 都是标准的 Noi Prompt 数据格式,可以在新版设置 → NoiAsk 同步中导入这些数据,重新添加即可。
新版 Noi 支持空间概念,可以更好的对书签进行分类(比如工作、学习、娱乐)。老版本数据导入需将 cache.mode.json 文件中的 modes 字段下的数组复制进来。
Noi 插件
新版 Noi 采用全新架构来实现 Noi Ask 功能,不再需要通过插件方式来给网页注入提示词。如果你之前实现过其他自定义插件可以选择保留,Noi 内置的插件可以全部移除。插件存储位置在 NoiRoot/noi_user/extensions 目录下,如需自己开发插件,可参考 electron extensions docs[1]。目前 Noi 不支持浏览器插件导入,也不支持 Chrome 插件。
新版本 1.0.0
Noi 目前处于早期,远未够到 AI 浏览器这个终极目标。已有的 Prompt 管理和 Terminal(拓展 Noi 的操作上下文)都是给未来 Agent 功能铺路。为了满足未来复杂的 Agent 需求,Noi 在界面设计上花费了很多功夫,做了一些取舍和平衡。下面是一张 Noi 完全形态下的视图展示,包含一个主窗口和 4 个渲染视图(左侧栏、右侧栏、主区域、Noi 控制区),这些视图都是完全独立的,通过 IPC 协议进行通信。
其中侧栏和底栏都是可以关闭的,最终只剩主区域。
如果使用 Noi Tab 模式,每个新开的 Tab 都是一个渲染进程(renderer),它会占用内存。在电脑内存不足时,不建议开多个 Tab(Chrome 也是类似架构,每个 Tab 都是一个独立渲染进程)。
Noi 的导航太过自由,是有点学习成本在的。左侧栏书签和主屏 Tab 是两种交互模式的混合体,侧栏是在解决链接持久化问题(收藏链接永久保存),Tab 解决的是多链接缓存问题(临时打开的链接在切换 Tab 时不会丢失页面状态,关闭应用或 Tab 模式后全部丢弃)。
为了满足临时和永久的中间态(关闭 Tab 不想丢失,但又不想直接存书签),我还引入了一个半永久状态。
半永久态会随着链接的跳转不断变化,也就是记住最后一次访问状态。而永久书签则是记录最初状态,永不变化,且支持编辑配置(比如修改 UserAgent、支持 NoiAsk 模式等)。状态之间的变化可以直接通过点击按钮来完成。
快捷键
不少朋友反馈,界面 UI 不错,但有点复杂,到处是图标按钮(还有点小,不好点击),完全不会用。其实 Noi 中的大部分常用操作按钮都支持自定义快捷键(比如新建 Tab、显示/隐藏侧栏等),可以在 设置 → 快捷键中查看或配置。鼠标悬停在图标按钮上时,如果支持快捷键也会有提示信息。
Noi 占内存 & CPU
我是基于 Mac M1 开发的,在我的开发机器上一切表现良好。Windows、Linux 因手头没有电脑,无法进行性能测试,暂不确定是程序 Bug 还是框架层面问题。后续我会进行代码层面排查,但不确定能否缓解此问题。暂时处理不了,请不要再重复提问。
Prompt 使用
Prompt 使用主要是针对 NoiAsk 功能而言(统一管理分发)。我将 Prompt 分为永久存储,日志、版本三种状态。
- 永久:它是长期有价值的 Prompt。在
NoiAsk → Prompts中统一管理,可以设置标签分类。 - 日志:在 NoiAsk 中的每次输入都会被记录,然后以文件形式存储在本地(防止发送的内容因网络问题被吞)。
- 版本:高频微调提示词,比较理想的微调版本可以加 🔒,用来快速过滤。
其中日志和版本是不支持设置标签分类的,只进行轻量级管理,将它们加入永久之后,就可以打标签了。
界面功能
Noi 支持明暗主题,和几种风格设置。如果对比度不够,可以尝试调整风格。操作按钮大小无法改变,但可以改变链接文字大小。
侧栏链接、文件夹均可通过拖拽进行排序。
拖动侧栏尺寸到最小临界值时,会进入迷你菜单模式,再次拖到临界值,可以退出迷你菜单。
终端乱码
群友反馈终端在某些非 UTF-8 编码系统(如 GBK)中会出现文字乱码。这个需要在系统中自行调整编码格式。
页面提取
页面提取是 Noi 将任意网页提取为适合阅读的 Markdown 格式,支持配置过滤器(DOM 选择器)。
Noi PiP(画中画)
画中画是为了解决在工作模式中避免频繁切换屏幕打断心流的一个小设计。开启后,它会在切离主屏幕之后,以置顶浮窗形式存在,不可以被关闭,可点击浮窗右上角按钮重新回到主屏。要关闭此模式需再次点击主界面底部按钮,或通过快捷键关闭。注意:浮窗和主界面不能共存,一些用户反馈找不到主界面,也是因为开启了此配置。
更进一步,如果想要多个置顶小浮窗,可以在侧栏链接中通过按钮来触发。它后面的按钮是将链接在右侧栏里打开。
Noi View 模式(多窗口)
这个功能本来是为 NoiAsk 批量提问 AI 准备的,但目前已支持添加任意网页,最多可以添加 36 个链接(必须处于 Noi View 时,才能添加链接)。
但并不建议在一个界面里开启太多,会严重影响性能。建议通过以下方式新建多个窗口管理。
结语
就先写这么多吧,基本把常用的一些功能都解释到了,剩下的高级玩法,大家自行摸索,也欢迎进群交流(公众号发送 “noi” 获取)。
References
electron extensions docs:https://www.electronjs.org/docs/latest/api/extensions