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

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

更新一个刚发现的问题。cursor 在用 pandas 处理数据的时候得心应手,但我尝试让它用 polars 来实现相同功能,生成的代码就开始不正确,并且自动纠错也不 work 了。不过这也好理解,pandas 代码的数量远远大于 polars 的。


效果非常惊艳!cursor 让我感觉爽的点主要是:

  • 能够准确理解需求: 如 “先构建 return 矩阵,然后一次性计算相关性” 这样的 instruction,人都不一定能第一时间 get 到我在说什么。
  • 自动纠错: 贴报错堆栈就能自动修复问题。
  • 生成速度快: 这一点在高频使用时还是比较重要的。

另外 cursor 能够 自动生成单元测试和文档 ,这对于广大不爱写测试和文档的程序员简直是福音!

下面是具体使用过程:

今天想让 cursor 做的事儿是计算股票之间的相关性,数据集用的是 kaggle 上的 huge stock market dataset 。这个数据集包括了 7000+ 美股个股的数据。以 Apple Inc (NASDAQ: AAPL) 为例,数据大致为:

Date,Open,High,Low,Close,Volume,OpenInt
1984-09-07,0.42388,0.42902,0.41874,0.42388,23220030,0
1984-09-10,0.42388,0.42516,0.41366,0.42134,18022532,0
1984-09-11,0.42516,0.43668,0.42516,0.42902,42498199,0
1984-09-12,0.42902,0.43157,0.41618,0.41618,37125801,0

我初始的 instruction 是:

/path/to/dataset 目录下每一个文件包含一支股票每一天的交易信息,文件名为该股票的名字加上 .txt 后缀。内容包括Date,Open,High,Low,Close,Volume,OpenInt。
写一个程序,先计算每支股票每日的收益率,而后以此为依据计算每支股票与其他股票之间的 rolling correlation,构建一个行名与列名均为股票名称的 correlation 矩阵。

cursor 大概在 10s 内生成了如下代码:

第一个 instruction

生成代码的速度非常快,并且没有任何语法问题,语义粗看也是正确的。我修改了 dataset 的路径后在数据集上运行的时候,出现了如下报错:

Traceback (most recent call last):
  File "/Users/jon/Documents/repo/examples/stock_market/test.py", line 20, in <module>
    df = pd.read_csv(os.path.join(path_to_dataset, filename))
  File "/Users/jon/Documents/miniconda3/envs/alpaca/lib/python3.9/site-packages/pandas/util/_decorators.py", line 211, in wrapper
    return func(*args, **kwargs)
  File "/Users/jon/Documents/miniconda3/envs/alpaca/lib/python3.9/site-packages/pandas/util/_decorators.py", line 331, in wrapper
    return func(*args, **kwargs)
  File "/Users/jon/Documents/miniconda3/envs/alpaca/lib/python3.9/site-packages/pandas/io/parsers/readers.py", line 950, in read_csv
    return _read(filepath_or_buffer, kwds)
  File "/Users/jon/Documents/miniconda3/envs/alpaca/lib/python3.9/site-packages/pandas/io/parsers/readers.py", line 605, in _read
    parser = TextFileReader(filepath_or_buffer, **kwds)
  File "/Users/jon/Documents/miniconda3/envs/alpaca/lib/python3.9/site-packages/pandas/io/parsers/readers.py", line 1442, in __init__
    self._engine = self._make_engine(f, self.engine)