Redian新闻
>
Unit Runtime:一键运行 AI 生成的代码,或许将成为你的复制 + 粘贴神器

Unit Runtime:一键运行 AI 生成的代码,或许将成为你的复制 + 粘贴神器

科技

在我们构建了 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。所以,暂时没有考虑怎么去做个胶水层,唯一一样的是:

  1. 使用统一的 WebSocket 方式: ws://localhost:8080/repl

  2. 统一的输入和输出

随后,在 ChatFlow + React 的基础上写一个渲染层,它会:

  1. 连接 WebSocket 服务

  2. 在用户点击的时候,发送对应的代码

  3. 根据返回的类型,使用不同的方式展示。如普通的 REPL 返回结果,Spring 返回 API 地址等等。

总的来说,这个过程蛮简单的。

一个 React 的 Hello, World 示例

如下是一个 React 生成的 Hello, World:

  1. import React, {useState, useEffect} from "react";

  2. import ReactDom, {createRoot} from "react-dom/client";

  3. const root = ReactDOM.createRoot(document.getElementById('root'));

  4. root.render(<h1>Hello, world!</h1>);

在启动了对应的 Runtime 之后,只需要点击 Run 就会返回结果:

至于是如何跑出结果,大家可以自己去看代码:https://github.com/prompt-engineering/unit-runtime

一个 Spring 示例

相似大家又看过之前的 Unit Mesh 介绍了,如下是对应的 Kotlin + Spring 示例代码:

  1. %use spring, kotless

  2. @RestController

  3. class SampleController {

  4. @GetMapping("/hello")

  5. fun helloKotlin(): String {

  6. return "hello world"

  7. }

  8. }

同样的,也是一键运行。

未来:从 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 


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
15年做不好的代码搜索,用Rust重写搞定:GitHub声称能从此“改变游戏规则”RUN or Run Away?跑着跑着就得了“运动依赖”?周末愉快 三菜一汤不走心的病历复制粘贴,有时可能引起纠纷,更有可能给病人带来极大的心理伤害!ChatPDF也来了!一键上传文件即可解读,复制粘贴都省了这代码居然有差别?CPU友好的代码该这样写ChatPDF也来了!一键上传文件即可解读,复制粘贴都省了...网页上实现禁止复制粘贴的方法《财神到》给大家拜年啦!兔年吉祥!一键生成山川、河流,风格多样,从2D图像中学习生成无限3D场景用 ChatGPT 做表格真香!只需动嘴提要求和复制粘贴首个由人工智能生成的游戏和电影问世,探秘生成式 AI 如何发展(附相关人工智能产品集)周末越野滑雪打卡ChatGPT科研神器:论文翻译润色一键搞定,还能帮你读代码 | GitHub热榜用ChatGPT做表格真香!只需动嘴提要求和复制粘贴为啥中日之间关系如此紧张?当年那些日本电影和影星(二)硬核观察 #993 Hugging Face 发布免费的代码生成 AI窃取开源代码,还拉黑质疑者,这家 AI 公司试图删除代码了事全球首发,国产开源「文本-视频生成」模型!免费在线体验,一键实现视频生成自由IDEA 使用技巧,让你的代码飞起来!学术专用版ChatGPT火了,一键完成论文润色、代码解释、报告生成一个或许不得不接受的事实:绝大多数中西部农业县将成为永久性农业县京东12年老臣“二当家”CEO徐雷退休,学阿里CFO接棒,刘强东或许将更多出现在业务一线SIGGRAPH2023|DreamFace:一句话生成 3D 数字人?为什么听完你的安慰,孩子哭得更凶了?这8张图里,或许有你的影子刘润:如果科学没有成为你的约束,那一定是因为你离天花板太远“中国巴菲特”,OPPO幕后大佬段永平评哲库3000人集体毕业:改正错误要尽快,多大的代价都是最小的代价国产化可不是复制粘贴试物说vol.649| 用了这个小键盘,复制粘贴一键就能完成Agustín Hernández:中美洲建筑背景下的未来主义巨构Ubuntu Cinnamon 正式成为 Ubuntu 官方风味版 | Linux 中国孩子多大移民合适?或许您错了,或许我错了“干净”的代码,贼差的性能Rust 基础系列 #1: 创建并运行你的首个 Rust 程序 | Linux 中国
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。