GPT 大模型 可 替代的工作 都有如下特点 : " 输入类型是文本 , 输出类型也是文本 " ;
凡是 输入文本 输出文本 的工作 , 都可以使用 GPT 大模型 提升工作效率 , 逐渐被替代部分工作 , 甚至全部工作 ;
后期 所有的 " 输入文本 -> 输出文本 " 的相关工作 可能只需要一个 精通 GPT 大模型 + 精通业务的专业人员 替代 现有的 10 个岗位 ;
这个替代工作 , 可能会在几年到十几年之间 , 逐渐生效 ;
简单的 劳动 , 也有被替代的趋势 , 如 : 开车 , 送外卖 等 , 都有相关的 自动驾驶 替代方案 ;
在训练大模型 的 编程相关能力时 有如下特点 :
训练编程能力时 , 由于有上述特性 , 因此 大模型 的 编程能力很强 , 远超过其它领域 ;
AI 大模型 可以应用于各种领域 , 但是 其 " 编程能力 " 几乎是最强的 , 几乎可以到达替代程序员的程度 ,
编程能力 是 大模型 各项能力中最强的 , 在其它领域只能起到辅助作用 , 还离不开人的主导作用 ;
GPT 大模型 进行编程工作 的优势 :
GPT 大模型 编写代码 的缺点 :
AI 编程技巧 :
在之前的 提示工程 系列 博客中
介绍过的 提示词技巧 , 如 :
等提示词技巧 , 在 AI 编程中都可以使用 ;
AI 编程的适用场景 :
完全不懂代码 , 不能碰 AI 编程 , 无法靠 AI 编程实现任何软件开发任务 ;
GitHub Copilot 是 一个补全式编程大模型 , 是 AI 编程领域使最好用的工具 ;
GitHub Copilot 软件购买 :
目前可以免费试用 30 天 ;
在 PyCharm 中 , 选择 " File / Settings " 选项 ;
在 Settings 对话框中的 Plugins 插件中 , 搜索 GitHub Copilot , 然后点击 Install 按钮安装该插件即可 ;
弹出对话框 , 同意安装第三方插件 ;
安装完成后 , 重启 PyCharm 开发环境 ;
重启后 , 右下角会弹出弹窗 , 让你登录 GitHub 账号 ;
点击下面同意授权按钮 ;
登录成功后显示如下内容 :
使用 时 不需要做任何操作设置 , 只要开始写代码 , 就会进行自动提示 ;
GitHub Copilot 只能用于 PyCharm 和 VSCode 中 , 如果你使用其它的开发环境 , 如 :
就无法使用 GitHub Copilot 插件 ;
如果 你的 代码是保密代码 , 不允许泄漏 , 那么就不能使用 GitHub Copilot 进行编程 ;
这里可以直接考虑 使用 ChatGPT 或者 文心一言 的 Web 对话界面 , 参考 GitHub Copilot 插件的原理 ,
将当前文档的代码 和 注释 以及 程序员额外输出的 提示词 , 放在一起 , 组合成一个由 代码 + 注释 + 输入提示词 组成的 超长提示词 , 基于该超长的提示词进行代码生成 , 提示词内容包含如下部分 :
将上述内容 , 作为提示词 , 输入到 ChatGPT 中 , 可以生成优秀的代码 ;
输入提示词 :
" 使用 Java 语言 , JDBC 访问数据库 , 创建数据库表 student 表 , 其中有字段 Id 主键 , 姓名 name , 年龄 age , 生成该表的增删改查函数 , 每行代码带上中文注释 , 有 main 函数入口 "
生成的代码 : 不需要展开 , 仅做参考 ;
import java.sql.*;
public class StudentDAO {
// JDBC 驱动器名称和数据库 URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/mydatabase"; // 这里的 mydatabase 替换为你的数据库名
// 数据库的用户名和密码
static final String USER = "username";
static final String PASS = "password";
// 数据库连接对象
static Connection conn = null;
// SQL 执行对象
static Statement stmt = null;
// 在构造函数中注册 JDBC 驱动器
public StudentDAO() {
try {
Class.forName(JDBC_DRIVER);
conn = DriverManager.getConnection(DB_URL, USER, PASS);
stmt = conn.createStatement();
} catch (Exception e) {
e.printStackTrace();
}
}
// 创建 student 表
public void createTable() {
try {
String sql = "CREATE TABLE IF NOT EXISTS student (" +
"id INT PRIMARY KEY AUTO_INCREMENT," +
"name VARCHAR(255) NOT NULL," +
"age INT)";
stmt.executeUpdate(sql);
System.out.println("创建表 student 成功");
} catch (SQLException e) {
e.printStackTrace();
}
}
// 添加学生记录
public void insertStudent(String name, int age) {
try {
String sql = "INSERT INTO student (name, age) VALUES (?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, name);
pstmt.setInt(2, age);
pstmt.executeUpdate();
System.out.println("添加学生记录成功");
} catch (SQLException e) {
e.printStackTrace();
}
}
// 更新学生记录
public void updateStudent(int id, String name, int age) {
try {
String sql = "UPDATE student SET name = ?, age = ? WHERE id = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, name);
pstmt.setInt(2, age);
pstmt.setInt(3, id);
pstmt.executeUpdate();
System.out.println("更新学生记录成功");
} catch (SQLException e) {
e.printStackTrace();
}
}
// 删除学生记录
public void deleteStudent(int id) {
try {
String sql = "DELETE FROM student WHERE id = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, id);
pstmt.executeUpdate();
System.out.println("删除学生记录成功");
} catch (SQLException e) {
e.printStackTrace();
}
}
// 查询学生记录
public void selectStudents() {
try {
String sql = "SELECT * FROM student";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age);
}
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 关闭数据库连接
public void closeConnection() {
try {
if (stmt != null) stmt.close();
if (conn != null) conn.close();
System.out.println("数据库连接已关闭");
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
StudentDAO dao = new StudentDAO();
// 创建 student 表
dao.createTable();
// 插入学生记录
dao.insertStudent("Alice", 20);
dao.insertStudent("Bob", 21);
// 更新学生记录
dao.updateStudent(1, "Alice Updated", 21);
// 删除学生记录
dao.deleteStudent(2);
// 查询学生记录
dao.selectStudents();
// 关闭数据库连接
dao.closeConnection();
}
}