首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >使用 ChatGPT-4 轻松转换 Go 代码为 Rust

使用 ChatGPT-4 轻松转换 Go 代码为 Rust

作者头像
张汉东
发布2023-10-06 12:42:06
发布2023-10-06 12:42:06
8940
举报
文章被收录于专栏:Rust 编程Rust 编程

今天看见一个命令行小应用非常有趣,它的功能是终端清屏命令,类似于 cmd + L 命令的功能,但是它增加了一个经典吞食天地游戏的动画:

但是很可惜,它是用 Go 语言实现的,代码在此:https://github.com/orangekame3/paclear[1]

代码语言:javascript
复制
cargo run -- -c Red // 指定颜色
cargo run -- -s 3 // 指定速度

ChatGPT-4 翻译 Go 到 Rust

我翻了一下 paclear 的 Go 源码,发现代码不是很多,于是心血来潮,尝试用 ChatGPT-4 来将其翻译为 Rust 代码。

成果在这里 https://github.com/Illumine-Labs/Rust-Workshop/tree/main/cell[2] ,整个过程花了大约 10 分钟左右,一共 130 行 Rust 代码,基本无错,我只修改了一个越界错误。

下面介绍一下我如何使用 ChatGPT 来转换代码:

  1. 我最开始尝试用插件模式,直接把仓库地址喂给 GPT,让它利用 WebPilot 插件访问代码仓库。但是这个插件不太给力,无法访问具体的代码文件。(我记得之前是可以的访问指定 url 的代码文件,难道功能弱化了吗?)
  2. 我阅读了 paclear 的 Go 源码,将主要的 Go 代码逻辑复制粘贴给 GPT,它就开始生成代码了。当然不是一次性生成的,是在我的指挥下生成代码。
  3. 在本地创建 Rust 项目,将 GPT 生成的 Rust 代码复制到本地,编译调试纠错。发现只有一个越界错误,修改以后可以正常编译运行。功能和原 Go 项目完全一样。
  4. 一个缺陷就是,GPT 生成的代码中使用了 Clap 的旧版本(2.x),因为它的学习数据并非最新。我相信重新喂给它 Clap 4.x 的相关 API 文档,它可以生成 Clap 4.x 的代码。

解决 candle 框架在本地运行的问题

HuggingFace.co 被强了,本地跑 candle example 代码会报网络错误,无法下载 tokenizer.json 文件。

一个最简单的解决方法就是,把 candle 的 example 代码修改了一下,命令行增加一个参数,让其方便指定本地的 tokenizer.json 文件和本地模型,就避免走官网了。

在本地 CPU 下执行,加载模型和推理速度都非常快,但是精准度还是差点,生成的 Rust 代码惨不忍睹。当然,这和我用的一个量化模型有关系。

后记

我在努力尝试将 ChatGPT 应用在日常的学习和工作中,最大化地挖掘它的潜力。今天的尝试发现 GPT-4 的代码生成能力很强,以后会进行更多相关尝试。

另外最近 GPT-4V 的发布,让 GPT 拥有了强大的识图功能。微软发布了166页的论文《 LLM 的黎明 | GPT-4V 初步探索》[3] ,感兴趣的可以学习,这里面详细探索了 GPT-4V 的更多新的能力。

参考资料

[1]

https://github.com/orangekame3/paclear: https://github.com/orangekame3/paclear

[2]

https://github.com/Illumine-Labs/Rust-Workshop/tree/main/cell: https://github.com/Illumine-Labs/Rust-Workshop/tree/main/cell

[3]

《 LLM 的黎明 | GPT-4V 初步探索》: https://weibo.com/ttarticle/p/show?id=2309404952763347108084

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-10-06 09:00,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 觉学社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ChatGPT-4 翻译 Go 到 Rust
  • 解决 candle 框架在本地运行的问题
  • 后记
    • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档