大模型 + 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官网:https://www.cursor.com/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基础的人来说可以极大的提高开发效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/20240.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入浅出CSS复合选择器:掌控元素关系与层级选择

目录 前言 一、子代选择器(Descendant Selector) 1. 什么是子代选择器? 2. 基本语法 3. 示例 4. 注意事项 二、直接子元素选择器(Child Selector) 1. 什么是直接子元素选择器? 2. 基本语法 3. 示例…

CSRF 漏洞原理演示 基本绕过(同源 异源) 配合XSSToken值校验复用删除

前言 CSRF的基本原理 就是 举例 我们伪造一个支付宝的转账请求(抓包获取的),受害者 : 正好登录着支付宝(后台)的 同时点击了我们伪造的(包含恶意请求)网址 从而导致先我们进行转…

外包干了3天,技术退步太明显了。。。

先说一下自己的情况,本科生生,21年通过校招进入武汉某软件公司,干了差不多3年的功能测试,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了3年的功能测试,已经让…

HomeAssistant 发现MQTT设备(温度,湿度,开关)

要通过 MQTT 将温度、湿度数据以及一个灯的开关状态传输到 Home Assistant 并实现设备自动发现,可以按照以下步骤操作: 1.前期准备工作 安装MQTT服务器(EMQX)配置好(可以在HA加载项中安装,也可以在NAS上Docker安装) HA的集成中安装MQTT,并且连接上(EM…

【stm32】DAC实验(stm32f4hal库)

一、DAC简介 1、DAC 数字到模拟转换器(DAC)是一种电子设备,用于将数字信号转换为模拟信号。它通常用于将数字数据转换为模拟信号,以便在模拟电路中进行处理。DAC在许多领域都有广泛的应用,如音频设备、通信系统、仪器…

云计算架构学习之Ansible-playbook实战、Ansible-流程控制、Ansible-字典循环-roles角色

一、Ansible-playbook实战 1.Ansible-playbook安装软件 bash #编写yml [rootansible ansible]# cat wget.yml - hosts: backup tasks: - name: Install wget yum: name: wget state: present #检查playbook的语法 [rootansible ansible]…

前端工程化的具体实现细节

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Chapter 3 Differential Voltage Current amplifiers

Chapter 3 Differential Voltage & Current amplifiers 这一章介绍差分电压和电流放大器. Current mirrors 我们首先分析电流镜Current Mirror. 由一个diode-connected MOSCS放大MOS组成, diode-MOS将电流转换成电压, 再由CS MOS转换成电流. 考虑沟道调制效应, M1和M2的…

确保设备始终处于最佳运行状态,延长设备的使用寿命,保障系统的稳定运行的智慧地产开源了

智慧地产视觉监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。通过计算机视觉和…

[笔记.AI]大模型的蒸馏、剪枝、量化 | 模型压缩 | 作用与意义

上周简单整理了《deepseek-r1的不同版本(满血版、蒸馏版、量化)》,这次继续完善对其的认知——补充“剪枝”,并进一步整理蒸馏、剪枝、量化的作用与意义。 以下摘自与DeepSeek-R1在线联网版的对话 蒸馏、剪枝、量化是当前主流的三…

Java 反射机制深度解析:类信息的来源、declared 的区别、赋值操作及暴力反射

在 Java 开发中,反射机制是一个强大且灵活的工具,它允许程序在运行时动态地获取类的信息、创建对象、调用方法和访问字段等。本文将结合代码示例和图示,深入探讨以下四个问题: 类信息来自哪里? 获取类信息时加不加 de…

Transformer 模型介绍(四)——编码器 Encoder 和解码器 Decoder

上篇中讲完了自注意力机制 Self-Attention 和多头注意力机制 Multi-Head Attention,这是 Transformer 核心组成部分之一,在此基础上,进一步展开讲一下编码器-解码器结构(Encoder-Decoder Architecture) Transformer 模…

电脑系统损坏,备份文件

一、工具准备 1.U盘:8G以上就够用,注意会格式化U盘,提前备份U盘内容 2.电脑:下载Windows系统并进行启动盘制作 二、Windows启动盘制作 1.微软官网下载启动盘制作工具微软官网下载启动盘制作工具https://www.microsoft.com/zh-c…

Linux下Ollama下载安装速度过慢的解决方法

问题描述:在Linux下使用默认安装指令安装Ollama,下载安装速度过慢,进度条进度缓慢,一直处于Downloading Linux amd64 bundle中,具体如下图所示: 其中,默认的Ollama Linux端安装指令如下&#xf…

uniapp中@input输入事件在修改值只有第一次有效的问题解决

在uniapp中使用输入框,要求输入不超过7个字,所以需要监听输入事件,当每次输入文字的时候,就把输入的值截断,取前7个值。但是在input事件中,重新赋值的值发生了变化,但是页面上的还是没有变&…

DeepSeek 助力 Vue 开发:打造丝滑的范围选择器(Range Picker)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…

VMware按照的MacOS升级后无法联网

背景 3年前公司使用Flutter开发了一款app,现在app有微小改动需要重新发布到AppStore 问题 问题是原来的Vmware搭建的开发环境发布App失败了 提示:App需要使用xcode15IOS 17 SDK重新构建,这样的话MacOS至少需要升级到13.5 Xcode - 支持 - Ap…

Day01 【苍穹外卖】环境搭建与前后端联调

一、环境搭建 1.JDK安装与IDEA安装: JDK安装与IDEA安装:【JAVA基础】01、JAVA环境配置----JDK与 IDEA集成开发环境的安装(2025最新版本)_配置jdk-CSDN博客 注意,这里要下载JDK1.8版本的,不然会报错&…

STM32 HAL库USART串口中断编程:环形缓冲区防止数据丢失

HAL_UART_Receive接收最容易丢数据了,可以考虑用中断来实现,但是HAL_UART_Receive_IT还不能直接用,容易数据丢失,实际工作中不会这样用,STM32 HAL库USART串口中断编程:演示数据丢失,需要在此基础优化一下. 本文介绍STM32F103 HAL库USART串口中断,利用环形缓冲区来防…

Vulnhub:DC-1靶机渗透

渗透过程 一,信息收集 1,探测目标IP地址 探测目标IP地址,探测主机的工具有很多,常见的有arp-scan、nmap还有netdiscover,这里使用arp-scan arp-scan -l确定了DC-1主机的IP地址为 192.168.126.1452,探测…