使用chatGPT 一键开发项目

IT知识
214
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秒")