Spark 的工作方式
Spark 是 Lino AI 写的一个网页。因为页面是生成的,Lino 把它放在沙箱里运行:一个密封的盒子,能给你看东西、能响应你的点击,但自己碰不到你的文件、你的账号,也上不了网。Spark 从 Lino 那里得到的一切都要靠"请求"——而 Lino 只回应本页列出的那些请求。
保存的数据
Spark 可以保存你在里面做的事——最高分、你输入的列表、你停下时滑块的位置——下次再找回来。
- **每个 Spark 一份数据。**数据属于 Spark,而不属于它显示的位置。先在画布(Canvas)上运行,再在右侧面板(Right Panel)里打开:看到的是同一份数据。如果同一个 Spark 在一处保存时,另一处也开着,另一处会跟着更新。
- **随工作空间(Workspace)保存。**数据和 Spark 一起存在你的工作空间里。
- **修改 Spark 不会动你的数据。**Lino AI 修改 Spark 时,它保存的数据原封不动。Remix 会给副本一份自己的数据拷贝。
- **初始数据。**Lino AI 根据你的画布做 Spark 时,可以给它一份初始数据,比如从你的卡片(Card)里整理出来的材料。
例子:一个闪卡 Spark 保存了你答对了哪些卡。你关掉它,明天从右侧面板打开,它会从你停下的地方继续。
Spark 能读的表格
只有被授予了某张表格(Table)的权限,Spark 才能读它。这个权限由 Lino AI 在做出或修改 Spark 时授予——所以如果你想让 Spark 基于某张表格工作,就在消息里提到它(「做一个 Spark,按月统计 Reading Log 表格」)。
- Spark 读到的是表格当前的样子,所以新加的行在它下一次读取时就会出现。
- 它只能读。Spark 不能修改你的表格、卡片或工作空间里的任何东西。
- 要收回某张表格的权限,让 Lino AI 把那张表格从 Spark 上移除即可。
图片
Spark 可以显示你画布上的一张图片(Image)。在消息里提出来(「用这张画布上那张平板的照片当背景」),Lino AI 会让 Spark 指向那张图片。
浅色与深色
Lino AI 做的 Spark 会跟随 Lino 的浅色或深色外观。Lino 为它们各保留一张浅色和一张深色封面,所以切换外观时 Spark 的封面也会跟着变。较早的 Spark,以及 Lino 模板自带的 Spark,始终是浅色外观。
内置库
Spark 不能从网上加载代码,所以 Lino 自带了几个库:
- three.js,用于 3D 场景。
- 一个图表库,用于金融类图表,比如蜡烛图(K 线)。
- Google Fonts,Spark 唯一可以加载的外部来源。
Spark 不能做什么
以下这些都被禁止。这些规则由 Lino 在页面外部强制执行,而不只是写在 Lino AI 的指令里:
- **不能直接上网。**Spark 只能通过 Lino 的门卫(broker)访问网络,而且只限实时数据里列出的来源。
- 不能加载外部脚本、样式表、图片或字体,Google Fonts 除外。
- **不能用浏览器存储、cookie、弹出窗口或提示框。**保存的数据是 Spark 记住东西的唯一方式。
- 不能访问你的文件,也不能访问工作空间里没有授权给它的任何东西。
Spark 尝试被禁止的操作时,只是在页面里不起作用——Spark 外面的东西不受影响。
Lino AI 与你的 Spark
- Lino AI 可以读取你的 Spark,并在你要求时修改它们。不想让 Lino AI 碰某个 Spark,就右键点它并打开 Hide from AI(对 AI 隐藏)(见隐私)。
- Lino AI 做出或修改 Spark 时,会在你看不到的地方加载页面,修好页面启动时出现的错误。之后你在使用中遇到错误,Lino 会把它显示在 Spark 上,并给出 Fix with AI 按钮(见用 AI 修改 Spark)。
- 任何让你对错误采取行动的按钮,都是 Lino 画在 Spark 之上的——绝不是 Spark 自己的页面画的。