使用chatGPT 一键开发项目

IT知识
302
0
0
2024-02-04
标签   ChatGPT

官方地址

https://github.com/AntonOsika/gpt-engineer

版本

稳定版

pip install gpt-engineer

用于开发

# 下载项目
git clone https://github.com/AntonOsika/gpt-engineer.git
cd gpt-engineer
# 创建python虚拟环境
python3.9 -m venv env
source env/bin/activate
pip3.9 install --upgrade pip
# 安装
pip install -e .

调用GPT API

# 新增api key变量
export OPENAI_API_KEY=sk-kWyrGceFzDExxxxxxxxxxxx

运行 gpt-engineer

ChatGPT生成代码

修改提词器

# 修改提词器
$ cp -r projects/example/ projects/license
$ vi /projects/license/prompt
1. 请用中文和我对话, 正在使用gpt-3.5 注意Rate limits的问题
2. 项目用途: 验证用户序列号License服务端
3. 使用djangorestframework+djangorestframework-simplejwt,视图尽量使用ModelViewSet,路由用DefaultRouter()

生成代码

# 生成代码
gpt-engineer projects/license

使用chatGPT 一键开发项目_python

创建一个Python环境项目

# 建立项目
cd projects/license/workspace
python3 -m venv myenv
source myenv/bin/activate
pip install djangorestframework djangorestframework-simplejwt django-simpleui django-import-export
pip freeze > requirements.txt
django-admin startproject website .

Django DRF web框架配置

#################### website/settings.py ####################
INSTALLED_APPS = [
'simpleui',
......
'rest_framework',
'rest_framework_simplejwt',
'app',
'import_export', # django-admin导入导出
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated', # 全局启用登录验证
),
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_simplejwt.authentication.JWTAuthentication', # 全局使用认证方式JWT
'rest_framework.authentication.SessionAuthentication', # 基于Django会话管理
'rest_framework.authentication.BasicAuthentication', # basic认证
),
}
# JWT配置
import datetime
SIMPLE_JWT = {
'TOKEN_TYPE_CLAIM': 'token_type',
'AUTH_HEADER_TYPES': ('Bearer',), # 自定义请求头, Authorization: Bearer <token>
'ACCESS_TOKEN_LIFETIME': datetime.timedelta(days=7), # 设置token过期时间
'BLACKLIST_AFTER_ROTATION': True # 默认值是True,旧的刷新令牌将被列入黑名单
}
#################### website/urls.py ####################
from django.contrib import admin
from django.urls import path,include
from rest_framework_simplejwt.views import (
TokenObtainPairView,
TokenRefreshView,
)
urlpatterns = [
path('admin/', admin.site.urls),
path('api/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
path('api/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
path('api/license/', include('app.urls')), # gpt生成代码的路由,urls.py扮演了控制器(Controller)的角色
]
]
# 初始化
python manage.py makemigrations app
python manage.py migrate
python manage.py createsuperuser

请求接口

token 认证

使用chatGPT 一键开发项目_github_02

使用chatGPT 一键开发项目_python_03

basic认证

使用chatGPT 一键开发项目_python_04

Djangp-admin后台

使用chatGPT 一键开发项目_python_05

帮助命令

gpt-engineer --help

注意,查看所有可用选项。例如,--steps use_feedback让您改进/修复项目中的代码

gpt3 调整请求频率

vi gpt_engineer/ai.py ( 74 行)

def next(self, messages: List[Dict[str, str]], prompt=None, *, step_name=None):
if prompt:
messages += [{"role": "user", "content": prompt}]
logger.debug(f"Creating a new chat completion: {messages}")
response = openai.ChatCompletion.create(
messages=messages,
stream=True,
model=self.model,
temperature=self.temperature,
)
import time
time.sleep(20) # 延迟20秒
logger.info("延迟20秒")