4.2 操作系统

这部分功能涉及控制一些基本特性,有些由浏览器提供,其他则源自Lua调试。

浏览器

浏览器提供JavaScript运行环境、存储和网络通信功能。

os.execute (javascript)

访问底层JavaScript引擎的接口。此函数将等待 eval() 给定的JavaScript,并将结果作为字符串返回。

动态执行JavaScript可以极大地扩展MicroCity Web的功能。请注意,Lua引擎在web worker中运行,因此访问DOM需要执行辅助函数RemoteCall。以下是一个简单的示例:

os.execute("RemoteCall('alert', 'hello!')")

一个更复杂的示例是使用Python的fastapi创建应用程序,并在MicroCity Web中调用:
1. 首先安装fastapi:pip install fastapi uvicorn
2. 然后创建 main.py:

from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
app = FastAPI()
app.add_middleware(
  CORSMiddleware,
  allow_origins=['\*'],
  allow_credentials=True,
  allow_methods=['\*'],
  allow_headers=['\*'],
)
@app.get("/msg")
async def read_msg():
  return {"msg": "Hello from FastAPI"}

3. 执行 main.py:uvicorn main:app --reload
4. 最后在MicroCity Web中运行以下脚本:

print(os.execute("(async () => (await (await fetch('http://127.0.0.1:8000/msg')).json()).msg)()"))

print(os.execute("fetch('http://127.0.0.1:8000/msg').then(res => res.json()).then(data => data.msg)"))

os.sleep (ms)

将睡眠ms毫秒。

os.getready ()

如果单击暂停将暂停执行,如果单击停止将返回false。

这对控制长时间运行脚本很有用。用户可以暂停它,然后在控制台运行一些命令或停止它。

os.upload ([url])

访问url链接中的文件或提示用户选择要上传到虚拟磁盘的本地文件。

此功能用于使脚本访问外部文件变得更便捷。用户可以先上传文件,然后启动程序。

os.download ([fpath])

从fpath路径或提示用户选择要从虚拟磁盘下载的文件。

大型语言模型

这些函数可以触发远程REST API进行对话完成和嵌入。API可以进行自定义

os.chatcmpl (user [, system])

给定一个系统消息(提示)和由对话组成的用户消息,模型将返回一个响应。

os.embedding (input)

创建代表输入文本的嵌入向量(具有1024个浮点数的数组)。

调试

调试库保留了 Lua 的原始功能并进行了修改。用户可以在脚本中或控制台上执行它们。

debug.debug ([b])

进入调试模式(无参数或 b 为 true)或退出调试模式(b 为 false)。

debug.pause ()

在调试模式下暂停执行。

debug.cont ()

在调试模式下继续执行。

debug.step ()

在调试模式下逐步执行。

debug.stepi ()

在调试模式下逐步执行进入。

debug.stepo ()

在调试模式下逐步执行退出。

debug.watch ([name])

将具有名称(字符串)的变量添加到监视列表,或清除监视列表(没有名称)。

本文使用ChatGPT翻译,如有遗漏请反馈open in new window

Last Updated:
Contributors: huuhghhgyg