Rust, Databend and the Cloud Warehouse(8) 使用 OpenAI ChatGPT 为 Databend 写代码
/ 点击背景
马上要进入 2023 了,但是 Databend 社区仍然忙的热火朝天,我们正在让 Databend 成为真正的 Warehouse + Datalake,致力于解决大数据的低成本和易用性问题,让大家在 2023 和未来生活更加美好!
最近,一直在探索 OpenAI 的 ChatGPT,刚开始只是觉得好玩,写 PPT 的时候用它做了一些辅助,效果还不错,总算找到了一个对个人有用的点。
经过一番探索,发现 GPT3 的代码能力非常强大,于是琢磨着怎么让”他”跟 Databend 融合起来。
探索 1
提优化建议
早上,给 Databend 写了一段代码(Rust),目的是限定 CSV 的换行分隔符在:单个 char 或者 \r\n
,代码如下:
1 | pub fn check_record_delimiter(option: &mut String) -> Result<()> { |
这段代码老感觉什么地方可以再被优化下,于是向 ChatGPT 这个大聪明征求意见:
me: please improve it
ChatGPT 首先对这段代码做了专业解读:

第一次给了一个答案,目测没有我写的好 :),于是再次征求,发现他的代码几乎跟我的一样,这下就放心了。
编写单元测试
me: please write a test for it
ChatGPT 果然一步到位,单元测试代码也写的很专业,对代码逻辑的理解很到位,真是结对编程的好搭档,第一次体验到超级 AI 的威力。

他写的单测代码一行没改放到了我的PR里:这里,真感谢这个大聪明!
探索 2
第二个探索是 Databend 的 logic test。
虽然 Databend 已经有大量的测试用例,是否可以利用 ChatGPT 生成更多的测试用例,进一步提升软件的质量呢?
还有很多用例是可以改进的,比如这个 issue#9184 ,基本是一些流程性的 prompt,怎么让 ChatGPT 帮助我们完成?
这块目前还没有探索出来,不过非常期待这块的进展。
References
[1] ChatGPT: https://chat.openai.com/
[2] Databend, Cloud Lakehouse: https://github.com/datafuselabs/databend