chatgpt写前端代码 探索前端与ChatGPT融合的未来:可控代码输出

默认分类2年前 (2023)发布 admin
4,534 0
ChatGPT国内版

近一个月以来,在前端与融合探索方面取得了一些进展,下面我将分享一些具体的成果。

一、输出预期代码

在输出预期代码方面,发现直接使用GPT输出的结果是不可控的。为了让输出内容可控,采取了两种形式:

提示:通过精心设计提示,引导GPT输出期望的结果。Fine-微调:目前尚未在实践中取得令人满意的效果。1.系统设置

作为一个React工程师,使用Ant (antd)作为UI库,同时使用库作为状态管理。开发语言使用。

2.直接提问

:创建用户表单,包括用户名称,用户详情以下是代码输出结果:

import React from 'react';
import { Form, Input, Button } from 'antd';
import { useRecoilState } from 'recoil';
import { userState } from './recoil/atoms';
const UserForm: React.FC = () => {
  const [user, setUser] = useRecoilState(userState);
  const onFinish = (values: any) => {
    setUser(values);
  };
  return (
    <Form onFinish={onFinish}>
      <Form.Item
        label="User Name"
        name="name"
        rules={[{ required: true, message: 'Please input your user name!' }]}
      >
        <Input />
      </Form.Item>
      <Form.Item
        label="User Details"
        name="details"
        rules={[{ required: true, message: 'Please input user details!' }]}
      >
        <Input.TextArea />
      </Form.Item>
      <Form.Item>
        <Button type="primary" htmlType="submit">
          Submit
        </Button>
      </Form.Item>
    </Form>
  );
};
export default UserForm;

// recoil/atoms.ts
import { atom } from 'recoil';
export const userState = atom({
  key: 'userState',
  default: {
    name: '',
    details: '',
  },
});

// App.tsx
import React from 'react';
import { RecoilRoot } from 'recoil';
import UserForm from './UserForm';
const App: React.FC = () => {
  return (
    <RecoilRoot>
      <UserForm />
    </RecoilRoot>
  );
};
export default App;

2.加上的结果

通过引入,可以使输出的内容更加可控。以下是引入后的代码输出结果:

chatgpt写前端代码 探索前端与ChatGPT融合的未来:可控代码输出

import React from 'react';
import { Form, Input, Button } from 'antd';
const { TextArea } = Input;
const UserForm = () => {
  const onFinish = (values) => {
    console.log('Form values:', values);
  };
  const onFinishFailed = (errorInfo) => {
    console.log('Form error:', errorInfo);
  };
  return (
    <Form
      name="userForm"
      onFinish={onFinish}
      onFinishFailed={onFinishFailed}
      initialValues={{ remember: true }}
    >
      <Form.Item
        label="用户名称"
        name="username"
        rules={[{ required: true, message: '请输入用户名称' }]}
      >
        <Input placeholder="请输入用户名称" />
      </Form.Item>
      <Form.Item
        label="用户详情"
        name="userDetails"
        rules={[{ required: true, message: '请输入用户详情' }]}
      >
        <TextArea rows={4} placeholder="请输入用户详情" />
      </Form.Item>
      <Form.Item>
        <Button type="primary" htmlType="submit">
          提交
        </Button>
      </Form.Item>
    </Form>
  );
};
export default UserForm;

二、模拟输出日常开发代码

使用了”chain”的概念,使用””可以直接模拟输出日常开发代码。比如开发一个表单,需要以下几个步骤:

通过按顺序执行”chain”任务,并最终输出期望的代码。

1.录入chain

人工录入,编写任务链。

2.执行chain,结果如下

// UserForm.tsx
import React from 'react';
import { Form, Input, Button } from 'antd';
import { useRecoilState } from 'recoil';
import { userState } from '../recoil/atoms';
const { TextArea } = Input;
const UserForm = () => {
  const [user, setUser] = useRecoilState(userState);
  const onFinish = (values) => {
    console.log('Form values:', values);
    setUser(values);
  };

  const onFinishFailed = (errorInfo) => {
    console.log('Form error:', errorInfo);
  };

  return (
    
      
        
      

      
        
						
暂无评论...