在AI辅助编程的浪潮中,Cursor作为一款强大的代码编辑器,受到了众多开发者的青睐。然而,试用期结束后,其模型调用速率的下降,无疑给一些开发者带来了困扰。幸运的是,谷歌Gemini API的出现,为我们提供了一个新的选择。目前,Gemini API在一定程度上是免费的,并且具备强大的上下文处理能力,这使得我们能够将其配置到Cursor中,继续享受高效的编程体验。本文将详细介绍如何配置Cursor使用Gemini API,并分享一些基于此的编程实践。
Gemini API赋能Cursor:配置指南
要让Cursor使用Gemini API,首先需要获取一个有效的API密钥。按照以下步骤操作:
- 打开Cursor设置:在Cursor编辑器中,找到设置选项。
- 定位模型设置:在设置菜单中,找到与模型相关的选项。
- 查找Google API Key:在模型设置中,应该能找到一个名为“Google API Key”的配置项,旁边会有一个链接,提示“your Google AI Studio key”。
- 创建API密钥:点击该链接,浏览器会自动打开Google AI Studio网站。如果没有账号需要注册,注册登录进去之后,按照网站的指引,创建一个新的API密钥。务必将生成的密钥妥善保存,因为后续配置需要用到。
- 配置Cursor:将刚刚获得的API密钥复制到Cursor的“Google API Key”配置项中。完成以上步骤,Cursor就能通过Gemini API来驱动代码生成和辅助功能了。
需要注意的是,配置Gemini API后,Cursor的某些自动补全功能可能会受到影响。这主要是因为Cursor的设计初衷是与自身模型紧密结合的。不过,我们可以通过与AI聊天的方式来生成代码,然后手动复制到代码文件中。虽然效率上可能略有降低,但可以有效避免付费,对于一些开发者来说,仍然是一个可行的选择。
编程新姿势:AI辅助开发的实践
配置好Gemini API后,我们就可以开始探索一些新的编程姿势了。以下是一些建议:
1. 编写高质量的README.md
一个好的README.md文档,是AI理解项目的基础。通过README.md,AI可以快速了解项目的整体结构、技术栈、功能描述以及关键概念。因此,在README.md中,务必包含以下几个方面的信息:
- 项目介绍:简要介绍项目的目标、用途和主要功能。
- 技术栈:列出项目使用的编程语言、框架、库和工具。
- 功能描述:详细描述项目的各个功能模块,以及它们的作用和交互方式。
- 名词解释:解释项目中使用的专业术语和缩写,方便AI理解。
- 目录结构:清晰地展示项目的目录结构,方便AI定位代码文件。
参考GitHub上一些知名项目的README.md,学习它们的编写风格和内容组织方式,可以帮助你写出更清晰、更易于理解的文档。
2. 聊天式代码生成
利用Cursor的聊天窗口,我们可以与Gemini API进行交互,生成代码。使用快捷键Ctrl/Cmd + L可以快速打开聊天窗口。在开始生成代码之前,可以使用“@Codebase”指令,让Cursor读取整个项目。这样,AI就能基于已有的代码和文档,生成更符合项目需求的代码。这一步相当于在当前项目上进行了一次RAG(Retrieval-Augmented Generation),使得生成的代码更加精准。
3. 实例演示:数据库模型生成
假设我们正在使用Gin框架开发一个Web应用,需要生成数据库模型。以下是一些提示词的示例:
- 基本模型生成:
Generate database model based on functional description and existing code, use in Gin framework
这个提示词会告诉AI,我们需要基于项目的功能描述和已有的代码,生成数据库模型,并且使用Gin框架的风格。
- 排除外键:
Don’t use foreignkey
如果不想在数据库中使用外键,可以在聊天框中输入这个提示词。AI会根据这个提示词,生成不包含外键的数据库模型。
- 自定义主键:
gorm.Model ID don’t use uint type, use uuid
默认情况下,GORM(Gin框架常用的ORM库)使用uint作为主键,并且是自增长的。如果想使用UUID作为主键,可以使用这个提示词。AI会生成使用UUID作为主键的数据库模型。这里可以选择不同的UUID库,例如https://github.com/gofrs/uuid 或者 https://github.com/google/uuid。
- 添加注释:
add gorm Chinese comment, like `gorm:"comment:菜单名称"`
为了提高代码的可读性,可以要求AI在生成的数据库模型中添加中文注释。例如,可以使用`gorm: