在我们构建了 Unit Mesh 架构之后,以及对应的 demo 之后,便着手于实现 Unit Mesh 架构。于是,我们就继续开始 Unit Runtime,以用于直接运行 AI 生成的代码。
PS:再重新介绍一下 Unit,这里的 Unit 指的是由 AI 生成的 + 可独立运行的代码单元,比如一个前端组件、一个 完整的 API (Controller-Service-Repository)等等。
先上链接:https://github.com/prompt-engineering/unit-runtime
简单来说,就是直接 AI 生成代码会遇到一系列问题:
因此,需要开发更多的解决方案来解决这些问题。理想情况下,这个环境应该提供以下的功能:
简单来说,它应该提供一种更加便捷、高效和可靠的方式来运行 AI 生成的代码,同时也提供了更加友好和易用的工具和基础设施。
如我们在 GitHub 上所介绍:Unit Runtime 是一个 ChatGPT 等 AI 代码的运行环境,可一键启动并实时交互,帮助您快速构建和测试 AI 代码。
如 README 所介绍,下图是基于 Unit Runtime 运行代码的完整过程:
整个过程可以理解为一个迭代的过程,人类提供的提示被用来生成代码,代码被提交给 Unit Runtime 进行编译和执行,结果被返回给 LLM/ChatGPT 进行处理和展示,人类对结果进行验证和修改,然后再次提交给 Unit Runtime 进行编译和执行,如此循环迭代直至达到预期的结果。
而其中的 Unit Runtime 提供了一个方便的运行环境,使得代码的编译和执行更加高效、可靠和方便。
在有了上面的内容之后,我们就可以让 ChatGPT 帮我们总结一下 Unit Runtime 的一些特性。
当然了,这不都是基本的废话吗?
当前版本的 Unit Runtime,每个语言都是独立的,我们正在自由的实现各种好玩的 runtime。所以,暂时没有考虑怎么去做个胶水层,唯一一样的是:
ws://localhost:8080/repl
随后,在 ChatFlow + React 的基础上写一个渲染层,它会:
总的来说,这个过程蛮简单的。
如下是一个 React 生成的 Hello, World:
import React, {useState, useEffect} from "react";
import ReactDom, {createRoot} from "react-dom/client";
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<h1>Hello, world!</h1>);
在启动了对应的 Runtime 之后,只需要点击 Run 就会返回结果:
至于是如何跑出结果,大家可以自己去看代码:https://github.com/prompt-engineering/unit-runtime
相似大家又看过之前的 Unit Mesh 介绍了,如下是对应的 Kotlin + Spring 示例代码:
%use spring, kotless
@RestController
class SampleController {
@GetMapping("/hello")
fun helloKotlin(): String {
return "hello world"
}
}
同样的,也是一键运行。
我们构建 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
围观我的Github Idea墙, 也许,你会遇到心仪的项目