集成 GPT-4 的代码生成器 Cursor 使用体验如何?怎么用更高效?

据说代码的质量还是挺高的! 官网 : https://www.cursor.so IDE作者: https://twitter.com/amanrsa…
关注者
1,373
被浏览
1,497,434
登录后你可以
不限量看优质回答 私信答主深度交流 精彩内容一键收藏

cursor网页


可恶它不但降级,还开始收费了!刚开始几天是免费的,甚至还是免费GPT4,本文的回答是在当时背景下完成的,望周知。

-- 以下原回答

在读研究生,虽然算是从事AI相关的领域,各种diffusion/GPT总能第一手吃到瓜,但是总还是没有切身体会到对自己的影响。直到昨晚师兄在群里向我们安利了这个软件: cursor.so/ (需要科学上网,否则会提醒你是诈骗网站)

cursor界面


下载下来安装之后长这样,平平无奇的代码编辑器。

我们打开示例的main.py,它提醒我们按下ctrl+K提需求,我们可以直接用中文:给我生成一个pix2pix的GAN网络结构,其中生成器是UNet结构,判别器是常用的CNN

我掉的不是金GAN,也不是银GAN,而是cycle GAN

然后梦想就成真了

生成的Generator
生成的discriminator

中间生成到六十多行的时候会停下,你可以再按ctrl+K输入continue让它继续。

说实话到这一步其实已经相当震撼我了,这已经意味着传统小作坊科研的极大加速。但是毕竟nn的代码网上现成的很多,而且也只能算是搭积木。我们再试一试写点物理模拟:

新建一个sph2d.py,然后按下ctrl+K提需求: write an SPH fluid simulation program for me in taichi. It has 10000 particles on a 512x512 2D grid, visualize the particle position with taichi built-in gui 要求它用太极给我写一个SPH的2d流体模拟,用自带的GUI来可视化粒子位置

不行了吧,就会写个框架吗?

还好还好,只能写一个框架,给我弄个注释让我自己填吗?那养你这个AI有何用?

但是很快它就一个逼斗把我打醒了,然后我尝试了一下全选edit,继续提需求

全选,然后让它在这里实现SPH simulaiton

然后:

被吓懵了

发到群里,群里的小伙伴开始还是嬉皮笑脸:

确实,写写python算什么,我们的C++/CUDA才是尊严啊

于是我新建一个sph.cu文件,提需求:write a 2d SPH fluid simulation for me, on 512x512 grid map with 10000 particles, in cpp17 and NVIDIA CUDA

还是一样的,没有实现算法,给个注释让我自己填
不过advection写对了

此刻大家还能保住狗头上的微笑

写了个框架

于是我们把这行注释选中,让它在这里实现算法

一股寒气
笑容逐渐僵硬.jpg

狗头上的微笑开始消失

于是我尝试让它优化一下这段代码:

为什么你的狗头常含泪水

不翻译了,大家自己看吧,一切尽在不言中。

确实,你可以说这个算法网上到处都是算例和博客,但问题是日常生活中哪些不是呢?哪个大佬又不是从这些基础的东西一路敲过来过来的呢?

物理模拟尚且如此,大家日常的工作到底有多少不可以被取代呢?

很难形容现在自己是什么感受,有一种突然的疲惫和轻松混合,以后大概要更多为自己学习,为自己找乐子,去写长篇小说,写大引擎,钻研数学和物理,体会纯粹的快乐好了。

卷没有意义了,生活在这种巨变的时代,多活几年的收益比早卷几年的收益大得多。


最后来点轻松的,它还可以在代码里写故事


a love story between C++ and Java 一个关于C++和Java的爱情故事

从前在编程的国度里,住着Java和C++,C++以它的性能和灵活性闻名,而Java则因为它的可移植性和简单受人仰慕。有一天,在一场编程语言的会议上,他们终于有了交集--他们一起参加了一个关于面向对象编程的讲座,正好坐在了彼此的身边。随着时间的流逝,他们逐渐发现彼此身上的特点和优势,C++为Java的GC机制和跨平台特性感动,同时Java也很倾慕C++的性能和内存管理,他们开始交换彼此的观点,相互学习,最终发现,比起他们身上的不同,他们有更多相似的地方。

在会议结束的时候,C++和Java开始花费更长的时间一起相处,讨论各种编程的话题和他们的经历,他们发现他们可以互补彼此的优势和弱点,于是他们开始在项目中一起工作。

最终,他们的友谊开出了爱情的花朵,他们发现,他们在一起可以产出令人惊奇的软件,并且将编程世界的可能性边缘再往前推进一步。

并且,他们也在持续地学习和成长,为他们的爱情和他们的成就。他们的爱情故事成为了编程世界的传说,告诉大家,即使是最不同的编程语言也可以找到同样的基础,并且和谐地一起工作。

……

write an advanture story for Rust programming language beat the boss C++ 一个Rust击败大魔王C++的冒险故事

从前,在编程的国度里,Rust,一个年轻又无畏的语言,领取了一个讨伐魔王C++的任务。Rust深知C++是一个非常强大和老练的对手,但是他坚定地想要证明自己的价值和崇高。

Rust开始了他的旅途,向智慧的长者们学习,比如C和汇编,去理解编程的基础。同时它也获得了Python和Ruby的指点,他们教会了Rust关于简洁和优雅的艺术。

与新获得的知识技能一起,Rust闯入了协程的危险土地,曾经无数的编程语言在此折戟。Rust面对了无数的挑战,比如线程竞争和死锁,但所幸它有自己独特的体系,它坚持下去,并且获得了胜利。

Rust的名声开始远扬,最终吸引了尊贵的开发者们的关注,尤其关注他的安全性和性能。他们加入了Rust讨伐C++的旅途,每天都用自己的经历,帮助Rust变得更加强大。

最终,决战的时刻到来,Rust准备好了面对大魔王C++,两个编程语言进行了传奇的战斗,展示了他们自己的能力,并且将对方推入他们的极限。Rust内存安全的特性和协程最终证明可以抗衡C++的能量与灵活性。

最后,Rust获得了胜利,收获了开发者世界的尊敬,成为了一个值得尊敬的秩序挑战者。与C++的战斗只是Rust冒险的开始,他会继续前行,并且将编程语言王国的边界向外推进。



下午继续研究,发现这玩意可以仿写它从来没见过的api,(群友自己开发的小众库),甚至可以直接从latex表达的常微分方程直接给出数值分析程序,这意味着,对一些简单的论文它甚至可以自己去把它复现出来了……

寒风刺骨

寒风刺骨,兄弟们,早做打算。


今天又解锁了一个离谱的姿势

打开一个空白的.py文件,让它用python的graphviz给我画流程图:

draw a directed graph for me with graphviz in python, depicting the procedure:
first, I genereate a 3D mesh of terrain with Blender, And render it to generate its front-view RGB images and height-map data. Then I use these data to train a pix2pix model, after the validation of the model, I conclude where I can do to optimize the generation procedure. After that, I will use the optimized algorithm to generate more complicated data with Blender again, then use it to train more powerful model again... over and over, to finally get the best model

然后它就画出来了:

没什么大错,循环结构画出来了,可用

然后我突发奇想,让它来改一改样式:
It is too simple, can you make it more decorative and nice-looking?

然后它确实帮我改了字体和样式,虽然依然不是很好看,而且变成了一长条

结构对的,然而变成了超长一条

我说这一长条不行啊,给我改:It is too long, can you make its layout(e.g. width height ratio) more harmony?

然后它真的改了,重新生成的代码运行出来结果就是这样的:

弄这玩意真的需要道心坚定,否则很容易产生自己多年努力一场空的虚无感

编辑于 2023-05-04 14:54 ・IP 属地美国