实时数据
Spark 运行在一个密封的沙箱里,所以它自己没法给你看实时股价或今天的天气。它会请 Lino 的门卫(broker)——坐在 Spark 和互联网之间的把关者——替它去取数据。门卫只从下面允许清单(allowlist)上的来源获取数据。
它如何工作
Spark 自己永远不上网。它只是递给门卫一个请求,比如:
「帮我查一下 AAPL 的报价。」
在任何东西离开你的电脑之前,门卫会先检查这个请求:
- **这类请求在允许清单上吗?**不在的一律拒绝。
- **细节合法吗?**比如股票代码必须像个股票代码,纬度必须在 −90 到 90 之间。
- **是不是太频繁?**同一个请求大约每秒最多回应一次。
只有全部检查通过,才由 Lino——而不是 Spark——发出请求,再把结果交回去。Spark 的代码从不接触网络,也永远不会有密钥被放进 Spark 里。
**永不打破的一条规则:**不可信的代码、密钥和开放的网络连接,永远不会同时出现在同一个地方。
现在 Spark 能获取哪些数据
这张表直接由门卫自己的配置生成,所以总是和实际允许的内容一致。
| 能力 | 数据源 | 需要密钥? | 示例用途 |
|---|---|---|---|
| 股票报价 | Yahoo Finance | 否 | 一个盯盘 Spark,显示实时价格和当日涨跌 |
| 股票历史行情(OHLC) | Yahoo Finance | 否 | 可切换时间区间的蜡烛图(K 线) |
| 城市地理编码 | Open-Meteo Geocoding | 否 | 一个天气 Spark,用户输入城市名搜索定位 |
| 天气预报 | Open-Meteo | 否 | 一个仪表盘 Spark,显示当前天气和 7 天预报 |
| 货币汇率 | Frankfurter (ECB) | 否 | 一个实时汇率换算 Spark |
| 历史汇率 | Frankfurter (ECB) | 否 | 一个显示过去一年美元/人民币汇率走势的 Spark |
| 加密货币价格 | CoinGecko | 否 | 一个加密货币盯盘 Spark,显示实时价格和 24h 涨跌 |
| 加密货币历史价格 | CoinGecko | 否 | 一个可切换时间范围的比特币价格走势图 Spark |
请求清单之外的任何东西都会被拒绝,Spark 收到的是一个错误而不是数据。
做一个用实时数据的 Spark
用平常的话向 Lino AI 提出来就行——它知道有哪些来源可用。例如:
- 「做一个 Spark,显示这张画布(Canvas)上那些股票的当前价格和当日涨跌。」
- 「做一个天气 Spark,我输入城市就能看到未来 7 天。」
- 「一个按今天汇率把欧元换算成日元的换算器。」
Lino AI 只能使用上表中的来源。
须知
- **实时数据需要网络连接。**没有网络时请求会失败,Spark 收到的是一个错误而不是数据。
- 数据来自"数据源"一列中的公开来源,内容以它们提供的为准。
接下来会有什么
- 需要密钥的服务——付费 API 和你自己的后端;密钥始终留在门卫手里,绝不进入 Spark。
- 更多免费公共数据,比如资料查询——同一个门卫,允许清单上多几条而已。
安全模型始终不变:给 Spark 更多数据,意味着往门卫的允许清单里加条目,而绝不是打开沙箱。