Unit Runtime:一键运行 AI 生成的代码,或许将成为你的复制 + 粘贴神器
liuian 2025-10-02 03:21 32 浏览
在我们构建了 Unit Mesh 架构之后,以及对应的 demo 之后,便着手于实现 Unit Mesh 架构。于是,我们就继续开始 Unit Runtime,以用于直接运行 AI 生成的代码。
PS:再重新介绍一下 Unit,这里的 Unit 指的是由 AI 生成的 + 可独立运行的代码单元,比如一个前端组件、一个 完整的 API (
Controller-Service-Repository)等等。
先上链接:
https://github.com/prompt-engineering/unit-runtime
为什么我们需要 Unit Runtime?
简单来说,就是直接 AI 生成代码会遇到一系列问题:
无法直接运行:生成的代码多数只是一个片段,没有完整的环境,如依赖等等。
可调试性差:在某些情况下,AI 生成的代码可能难以调试和测试,因为人们可能难以追踪代码中的错误和逻辑错误。
基础设施问题:那些非业务相关的部分,诸如 HTTP 端口、数据库访问,等等。
现有解决方案的限制:目前,AI 生成代码的主要解决方案是使用 REPL,但它存在一些限制,如缺乏代码编辑和保存功能以及限制支持的编程语言和框架。
因此,需要开发更多的解决方案来解决这些问题。理想情况下,这个环境应该提供以下的功能:
环境隔离:为每个 Unit 提供独立的运行环境,使得多个 Unit 可以在同一个进程中同时运行,互不干扰。
依赖管理:通过自动化的依赖分析和管理,使得开发者不需要手动安装和管理依赖。
调试支持:通过提供交互式的控制台,使得开发者可以方便地进行调试和测试。
基础设施支持:提供了对 HTTP 端口、数据库访问等基础设施的支持,使得开发者可以更加方便地编写和运行业务代码。
简单来说,它应该提供一种更加便捷、高效和可靠的方式来运行 AI 生成的代码,同时也提供了更加友好和易用的工具和基础设施。
Unit Runtime,一个 AI 生成代码运行环境
如我们在 GitHub 上所介绍:Unit Runtime 是一个 ChatGPT 等 AI 代码的运行环境,可一键启动并实时交互,帮助您快速构建和测试 AI 代码。
Unit Runtime 处理过程
如 README 所介绍,下图是基于 Unit Runtime 运行代码的完整过程:
整个过程可以理解为一个迭代的过程,人类提供的提示被用来生成代码,代码被提交给 Unit Runtime 进行编译和执行,结果被返回给 LLM/ChatGPT 进行处理和展示,人类对结果进行验证和修改,然后再次提交给 Unit Runtime 进行编译和执行,如此循环迭代直至达到预期的结果。
而其中的 Unit Runtime 提供了一个方便的运行环境,使得代码的编译和执行更加高效、可靠和方便。
Unit Runtime 的特性
在有了上面的内容之后,我们就可以让 ChatGPT 帮我们总结一下 Unit Runtime 的一些特性。
多语言支持:支持 TypeScript、Kotlin、JavaScript、Rust 等语言,使得用户可以使用不同的编程语言来编写 AI 生成的代码片段,从而提高了灵活性和可用性。
Web 开发框架支持:支持 Spring、Ktor、React 等 Web 开发框架,这使得用户可以使用不同的 Web 开发框架来构建他们的应用程序,并将 AI 生成的代码片段集成到这些应用程序中。
基础设施集成:Unit Runtime 提供了对常见基础设施的支持,例如数据库、HTTP 端口等等,这些基础设施可以在编写 AI 生成的代码片段时被直接使用,从而减少了编写和维护这些代码的复杂性。
依赖管理:Unit Runtime 支持依赖管理,可以自动处理依赖项并将其添加到代码中。这大大简化了开发人员的工作,使他们可以专注于代码的实现,而不是处理依赖项的安装和管理。
部署灵活性:Unit Runtime 的代码可以轻松部署到不同的环境中,包括本地环境、云环境等等。这使得开发人员可以根据他们的需要选择最适合他们的部署方案。
可扩展性:Unit Runtime 是可扩展的,可以轻松地添加新的语言支持、框架支持和其他功能。这使得开发人员可以使用最新的技术和工具来扩展他们的应用程序。
当然了,这不都是基本的废话吗?
Unit Runtime 如何工作
当前版本的 Unit Runtime,每个语言都是独立的,我们正在自由的实现各种好玩的 runtime。所以,暂时没有考虑怎么去做个胶水层,唯一一样的是:
使用统一的 WebSocket 方式: ws://localhost:8080/repl
统一的输入和输出
随后,在 ChatFlow + React 的基础上写一个渲染层,它会:
连接 WebSocket 服务
在用户点击的时候,发送对应的代码
根据返回的类型,使用不同的方式展示。如普通的 REPL 返回结果,Spring 返回 API 地址等等。
总的来说,这个过程蛮简单的。
一个 React 的 Hello, World 示例
如下是一个 React 生成的 Hello, World:
importReact, {useState, useEffect}from"react";
importReactDom, {createRoot}from"react-dom/client";
constroot =ReactDOM.createRoot(document.getElementById('root'));
root.render(<h1>Hello, world!</h1>);
在启动了对应的 Runtime 之后,只需要点击 Run 就会返回结果:
至于是如何跑出结果,大家可以自己去看代码:
https://github.com/prompt-engineering/unit-runtime
一个 Spring 示例
相似大家又看过之前的 Unit Mesh 介绍了,如下是对应的 Kotlin + Spring 示例代码:
%usespring, kotless
@RestController
classSampleController{
@GetMapping("/hello")
fun helloKotlin: String{
return"hello world"
}
}
同样的,也是一键运行。
未来:从 MathPrompter 看 AI 编程如何靠谱
我们构建 Unit Runtime 的另外一个动力是源自于 MathPrompter,也就是那一篇微软的论文:《MathPrompter: Mathematical Reasoning using Large Language Models》
MathPrompter 是一个利用 chain-of-thought(CoT)提示技术提高大型语言模型(LLMs)在数学推理问题上表现的方法。它通过生成代数模板,提供多个数学提示并对其进行统计显著性测试来验证分析解决方案,从而增加对其生成答案的信心。
在我们有了 Unit Runtime 之后,我们也可以用相似的方式构建 CodePrompter / UnitPrompter。所以,如果你也有兴趣,欢迎来挖坑。
Unit Runtime 地址:
https://github.com/prompt-engineering/unit-runtime
相关推荐
- 搭建一个20人的办公网络(适用于20多人的小型办公网络环境)
-
楼主有5台机上网,则需要一个8口路由器,组网方法如下:设备:1、8口路由器一台,其中8口为LAN(局域网)端口,一个WAN(广域网)端口,价格100--400元2、网线N米,这个你自己会看了:)...
- 笔记本电脑各种参数介绍(笔记本电脑各项参数新手普及知识)
-
1、CPU:这个主要取决于频率和二级缓存,频率越高、二级缓存越大,速度越快,现在的CPU有三级缓存、四级缓存等,都影响相应速度。2、内存:内存的存取速度取决于接口、颗粒数量多少与储存大小,一般来说,内...
- 汉字上面带拼音输入法下载(字上面带拼音的输入法是哪个)
-
使用手机上的拼音输入法打成汉字的方法如下:1.打开手机上的拼音输入法,在输入框中输入汉字的拼音,例如“nihao”。2.根据输入法提示的候选词,选择正确的汉字。例如,如果输入“nihao”,输...
- xpsp3安装版系统下载(windowsxpsp3安装教程)
-
xpsp3纯净版在采用微软封装部署技术的基础上,结合作者的实际工作经验,融合了许多实用的功能。它通过一键分区、一键装系统、自动装驱动、一键设定分辨率,一键填IP,一键Ghost备份(恢复)等一系列...
- 没有备份的手机数据怎么恢复
-
手机没有备份恢复数据方法如下1、使用数据线将手机与电脑连接好,在“我的电脑”中可以看到手机的盘符。 2、将手机开启USB调试模式。在手机设置中找到开发者选项,然后点击“开启USB调试模式”。 3、...
- 电脑怎么激活windows11专业版
-
win11专业版激活方法有多种,以下提供两种常用的激活方式:方法一:使用激活密钥激活。在win11桌面上右键点击“此电脑”,选择“属性”选项。进入属性页面后,点击“更改产品密钥或升级windows”。...
- 华为手机助手下载官网(华为手机助手app下载专区)
-
华为手机助手策略调整,已不支持从应用市场下载手机助手,目前华为手机助手是需要在电脑上下载或更新手机助手到最新版本,https://consumer.huawei.com/cn/support/his...
- 光纤线断了怎么接(宽带光纤线断了怎么接)
-
宽带光纤线断了可以重接,具体操作方法如下:1、光纤连接的时候要根据束管内,同色相连,同芯相连,按顺序进行连接,由大到小。一般有三种连接方法,分别是熔接、活动连接和机械连接。2、连接的时候要开剥光缆,抛...
- win7旗舰版和专业版区别(win7旗舰版跟专业版)
-
1、功能区别:Win7旗舰版比专业版多了三个功能,分别是Bitlocker、BitlockerToGo和多语言界面; 2、用途区别:旗舰版的功能是所有版本中最全最强大的,占用的系统资源,...
- 万能连接钥匙(万能wifi连接钥匙下载)
-
1、首先打开wifi万能钥匙软件,若手机没有开启WLAN,就根据软件提示打开WLAN开关;2、打开WLAN开关后,会显示附近的WiFi,如果知道密码,可点击相应WiFi后点击‘输入密码’连接;3、若不...
- 雨林木风音乐叫什么(雨林木风是啥)
-
雨林木风的创始人是陈年鑫先生。陈年鑫先生于1999年创立了雨林木风公司,其初衷是为满足中国市场对高品质、高性能电脑的需求。在陈年鑫先生的领导下,雨林木风以技术创新、产品质量和客户服务为核心价值,不断推...
- aics6序列号永久序列号(aics6破解序列号)
-
关于AICS6这个版本,虽然是比较久远的版本,但是在功能上也是十分全面和强大的,作为一名平面设计师的话,AICS6的现有的功能已经能够应付几乎所有的设计工作了……到底AICC2019的功能是不是...
- 手机可以装电脑系统吗(手机可以装电脑系统吗怎么装)
-
答题公式1:手机可以通过数据线或无线连接的方式给电脑装系统。手机安装系统需要一定的技巧和软件支持,一般需要通过数据线或无线连接的方式与电脑连接,并下载相应的软件和系统文件进行安装。对于大部分手机用户来...
- 一周热门
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
