主页 > 人工智能  > 

大模型+cursor应用案例

大模型+cursor应用案例
cursor 介绍

cursor是一个集成了GPT4、Claude 3.5等先进LLM的类vscode的编译器,可以理解为在vscode中集成了AI辅助编程助手,从下图中的页面可以看出cursor的布局和vscode基本一致,并且cursor的使用操作也和vscode一致,包括extension下载、python编译器配置、远程服务器连接和settings等,如果你是资深vscode用户,那么恭喜你可以直接无缝衔接cursor。当然,如果你是pycharm选手,你也可以很快上手cursor。

使用步骤

cursor直接在官网下载安装即可,并且注册账号,在第一次打开cursor时输入账号信息即可。

cursor官网: .cursor /cn

下载页面:

点击最上面的框,输入>language,可以配置简体中文。

内置模型

cursor内置了很多LLMs,包括最先进的GPT4s、Claude3.5s和openai最新发布的推理模型o1-preview和o1-mini,在右上角的设置中即可打开相应的模型进行辅助编程。平时用的最多的还是Claude3.5和GPT4,因为代码能力真的很强悍,后面会展示。

常用快捷键

Tab:自动填充 Ctrl+K:编辑代码 Ctrl+L:回答用户关于代码和整个项目的问题,也可以编辑代码(功能最全面)

首先介绍Tab快捷键的使用,如果cursor补全代码,使用Tab键接受即可。

创建一个js输入匹配的政策表达式,会自动帮你生成和补全

Ctrl+K:编辑代码 点击Generate就可以自动生成代码 然后点击Accept就可以直接粘贴到文件当中。 可以看到cursor不仅生成了代码而且还写上了中文注释,相当强大。

Ctrl+L:回答用户关于代码和整个项目的问题,也可以编辑代码(功能最全面) cursor给出的答案

我来分析一下这段代码,并提供一些优化建议: 安全性问题: 字符串操作使用 strcpy 没有长度检查,可能导致缓冲区溢出 没有对传入的指针参数进行 NULL 检查 内存管理问题: 虽然有析构函数,但无法保证一定会被调用 没有错误处理机制,比如内存分配失败的处理 封装性问题: 虽然注释说明了私有成员,但在 C 语言中实际上所有成员都是可以直接访问的 没有真正实现数据封装 这里是优化建议的代码示例: // ... existing code ... // 构造函数增加错误处理 Person* Person_create(const char* name, const char* gender, int age, const char* phone, const char* address) { if (!name || !gender || !phone || !address) { return NULL; } Person* p = (Person*)malloc(sizeof(Person)); if (!p) { return NULL; } strncpy(p->name, name, sizeof(p->name) - 1); p->name[sizeof(p->name) - 1] = '\0'; strncpy(p->gender, gender, sizeof(p->gender) - 1); p->gender[sizeof(p->gender) - 1] = '\0'; p->age = age; strncpy(p->phone, phone, sizeof(p->phone) - 1); p->phone[sizeof(p->phone) - 1] = '\0'; strncpy(p->address, address, sizeof(p->address) - 1); p->address[sizeof(p->address) - 1] = '\0'; return p; } // Setter方法增加安全检查 void Person_setName(Person* p, const char* name) { if (!p || !name) return; strncpy(p->name, name, sizeof(p->name) - 1); p->name[sizeof(p->name) - 1] = '\0'; } // 其他 Setter 方法类似修改... // 打印信息方法增加空指针检查 void Person_print(const Person* p) { if (!p) { printf("错误:无效的 Person 指针\n"); return; } // ... existing code ... } 其他建议: 模块化改进: 可以将结构体定义和函数声明放在头文件中 将实现放在单独的 .c 文件中 功能扩展: 可以添加验证函数(如验证年龄范围、电话号码格式等) 可以添加序列化/反序列化功能 可以添加比较函数用于排序 错误处理机制: 可以定义错误码枚举 添加错误信息返回机制 命名空间模拟: 可以使用前缀更明确的命名约定,比如 PersonManager_create() 不可变性考虑: 可以提供创建不可变对象的选项 为只读操作提供 const 正确性 这些优化可以让代码更加健壮和安全,虽然无法完全实现 C++ 的面向对象特性,但可以在 C 语言的限制下尽可能模拟面向对象的概念。 composer功能

在composer界面直接给cursor提需求,比如,让cursor帮忙生成一份综合安防管理平台的前端项目 cursor直接自动生成 以下是效果图 这个时候我就突发奇想,如果我把功能模块细化出来,是否能直接生成一份我想要的前端的demo

请在dist目录下帮我使用vue.js生成一份以综合安防管理为主题的前端代码,需要包含如下3个大的功能模块 1. 基础信息 2. 设备运维 3. 算法业务 然后在基础信息里面需要包含一个设备信息的模块,这个设备信息的模块需要以表格的形式展示如下信息: 1 设备名称 2 设备序列号 3 设备验证码 4 设备型号 5 设备版本号 6 设备出厂日期 然后设备运维模块下面有3个子模块分别为 2.1 网络设置 2.2 算法升级 2.3 日志管理 网络设置需要包含eth0和eth1这两个网卡设置的界面,算法升级需要包含本地升级的升级界面(上传一个升级包),日志管理需要支持日志的查看和日志的下载 然后算法业务下面需要包含以下几个模块 3.1 视频资源管理 3.2 任务管理 3.3 告警检索 3.4 算法参数配置 3.5 平台配置 其中视频资源管理需要包含视频流信息的增删改查,任务管理需要包含任务的开启和关闭,告警检索需要能够支持按照序列号查询,按照告警事件查询以及按照告警时间段查询的查询界面,算法参数配置需要包含对(口罩识别,帽子识别)算法的参数配置包括(告警时间间隔,算法阈值),平台配置需要包含2个第三方平台的设置包括(平台ip,平台端口,平台的url信息)

大家来看以下cursor的处理流程

1.1 生成文件结构 1.2 创建主应用流程 1.3 创建设备信息组件 1.4 网络设置组件 1.5 接下来cursor会主动询问我要不要继续生成剩余的组件 输入选项 1 实现一个组件后会继续询问你是否要实现剩余的组件 我在这里全部回复1 当cursor实现完全部的组件之后会询问你还有没有别的需要修改,我让cursor帮我美化了一下界面 cursor就会自动帮你美化 1.6 从最开始到这里,我并没有看到界面长什么样子,因为我找不到打开这个项目以及界面的方法。于是我询问cursor如何才能启动这个项目。 cursor自动又帮我创建了一些文件,我也不懂这些文件的作用是什么,接着cursor告诉我启动的方法。于是我去node.js官网安装了node.js,并且按照cursor的指示一路操作。 1.7 结果 整个界面的效果和咱们现有产品架构神似!!! 1.8 我们来试一下cursor提供的替换logo的功能 首先我应该要创建一个assets目录。然后把logo图片拷贝进去。 可以看到公司的logo真的就直接替换上去了。

让cursor帮忙生成一份golang的http服务器项目 请在当前目录下创建一个叫goHttp的目录,并在该目录下面生成一份golang语言开发的http服务器,使用gin框架实现,这个服务器应该具备以下几个http接口功能 1. 注册用户民密码 2. 根据用户名密码登录 3. 获取设备信息 4. 设置设备信息 其中设备信息需要包含这几个字段(设备名称,设备序列号,设备生产日期,设备ip地址,设备类型)。 5. 设置eth0,eth1网卡信息 6. 获取eth0,eth1网卡信息 网卡信息需要包含(mac地址,IP地址,子网掩码,dns网关)等信息 7. 获取日志文件 8. 下载日志文件 9. 接收告警信息并用sqlite3存储到本地文件,数据库名字叫做cursor.db,告警信息包含告警事件类型,告警图片名字,告警图片,发起告警的设备序列号等。 自动生成框架目录和代码

cursor并不会帮我安装这些依赖,需要我自己敲命令安装 继续实现其他控件 让cursor生成一份详细的注释 可以看到cursor生成的注释相当详细,堪称教科书 让cursor告诉我如何运行这个项目,cursor不但告诉我如何运行,连测试用例都帮你写好了 让我们运行一下看看 尝试运行的过程中出现报错,我们来看看cursor如何帮你纠错解决 你只需要把错误信息复制给他 ,然后他就自动帮你分析代码找到错误原因,并且自动生成解决方案然后给你解决bug。 再次运行发现成功 可以看到 8080端口确实处于LISTEN状态,此时此刻我都没有写任何一行代码 我们来按照cursor的提示测试一下他的接口 我们来看cursor生成的数据库里面确实多了一条用户记录,用户名是test,密码是一串密文,我们查看代码发现cursor已经帮你考虑到了这一点,使用哈希算法对明文做了加密。 我们来查看cursor生成的代码里面确实是有这一段,并且帮你写上了注释。不得不说做到这一步相当的强大。

总结

作为一个嵌入式linux c/c++软件工程师,第一次使用cursor让我感到十分震惊,他直接一步一步帮我实现了我想要的前端代码框架,并且告诉我如何运行。对于一个没有学过前端的人,如果直接借助cursor来帮我实现web的业务,并且用来对接自己写的后端服务,开发效率将大大提高,对于有一个有前端基础的人来说就是如虎添翼。使用cursor开发Golang的服务也相当简单,只需要提需求,cursor就自动帮你生成了一套框架代码,甚至直接能帮你实现需求。对于有golang基础的人来说可以极大的提高开发效率。

标签:

大模型+cursor应用案例由讯客互联人工智能栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“大模型+cursor应用案例