基于gpt的根据需求生成完整软件项目的工具codellms 原创
先观看一段视频:点击查看
视频例子使用gpt3.5的api,没有验证gpt4.0。
背景
在真正的软件开发中,必然有精细的要求,不可能一句很模糊的话就直接生成一个应用,比如,非专业人士可能会说,给我做一个电商网站。而程序员一定要问具体需求、入参出参,前端还需要ui出设计,具体到字体,颜色,像素等。所以根据一句提示词生成应用不贴合真实的开发过程。
需求越详细,gpt生成的代码才越接近我们想要的,codellms就是定位为根据详细需求生成代码的工具。下面我们简单介绍它的使用。
安装
codellms基于nodejs,所以前提是已经安装好nodejs环境,那么我们使用如下命令全局安装codellms:
npm install -g codellms
初始化项目
在你创建好的项目文件夹下执行命令:
codellms init
默认生成一个codellms.toml文件和一个features文件夹。
配置
我们先配置codellms.toml文件:
[dependencies] # 这里写你想要依赖的库或包,没要求的话也可以不用写。
express='4.18.2'
[basic] # 项目的基本信息,比如什么编程语言,架构模式等。
language = "node" # Java\Go\PHP...
arch = "mvc" # or clean architecture ...
[open‍‌‌‌‍ai]
api​key="key填在这里" # 别忘了填入自己的key
model="gpt-3.5-turbo" # 项目默认使用这个模型
temperature=0.5
配置由于触发敏感词,请看具体项目。
编写需求
为了不过于自由的编写需求,需要对需求的编写方式做一些约束,这里使用BDD(Gherkin语法)的方式编写需求,在features文件夹下建立以feature为后缀的的文件,比如todolist.feature.
Feature: Todolist, REStful风格的api。不使用任何数据库
Scenario: 添加一个todo项
Given: 提供一个名为"todo"的输入项目
When: post
Then: 记录这个todo和id在内存
Scenario: 返回todolist
When: get
Then: 返回新增加的todo列表
上述需求并没有那么严格,因为chatgpt支持自然语言,就算只写返回增删读写四个接口,它也会生成,但是,如上面所说,需求越详细,代码越能符合我们的需求。
一个模块建议使用一个单独的feature文件,如果有先后顺序,可以加数字来让它按数字顺序读取需求并生成代码。
运行
只需要执行:
codellms build
即可开始你的旅程。
在运行的最后,如果有错误,将会自动改正。
由于前端的特殊性,真正的项目对布局、颜色、按钮、位置等都有要求,所以在gpt多模态可以用之前,不建议使用codellms生成前端项目。这里标题的完整的项目,指的是没有ui的项目。
项目目前还在开发中,一点点完善,未来接入其他的模型,使用多模态实现前后端项目的联合生成。
最后,欢迎Star: codellms