输出文本 "2、大模型 的 编程能力3、GPT 大模型 进行编程工作 的优缺点4、AI 编程技巧5、提示工程 应用于 AI 编程6、AI 编程的适用场景二、使用 GitHub Copilot 插件进行 AI 编程1、GitHub Copilot 简介2、GitHub Copilot 软件购买3、PyCharm 中安装 GitHub Copilot 插件4、PyCharm 中登录 GitHub Copilo_大模型 自动编程">
赞
踩
GPT 大模型 可 替代的工作 都有如下特点 : " 输入类型是文本 , 输出类型也是文本 " ;
凡是 输入文本 输出文本 的工作 , 都可以使用 GPT 大模型 提升工作效率 , 逐渐被替代部分工作 , 甚至全部工作 ;
后期 所有的 " 输入文本 -> 输出文本 " 的相关工作 可能只需要一个 精通 GPT 大模型 + 精通业务的专业人员 替代 现有的 10 个岗位 ;
这个替代工作 , 可能会在几年到十几年之间 , 逐渐生效 ;
简单的 劳动 , 也有被替代的趋势 , 如 : 开车 , 送外卖 等 , 都有相关的 自动驾驶 替代方案 ;
在训练大模型 的 编程相关能力时 有如下特点 :
训练编程能力时 , 由于有上述特性 , 因此 大模型 的 编程能力很强 , 远超过其它领域 ;
AI 大模型 可以应用于各种领域 , 但是 其 " 编程能力 " 几乎是最强的 , 几乎可以到达替代程序员的程度 ,
编程能力 是 大模型 各项能力中最强的 , 在其它领域只能起到辅助作用 , 还离不开人的主导作用 ;
GPT 大模型 进行编程工作 的优势 :
GPT 大模型 编写代码 的缺点 :
AI 编程技巧 :
在之前的 提示工程 系列 博客中
介绍过的 提示词技巧 , 如 :
等提示词技巧 , 在 AI 编程中都可以使用 ;
AI 编程的适用场景 :
完全不懂代码 , 不能碰 AI 编程 , 无法靠 AI 编程实现任何软件开发任务 ;
GitHub Copilot 是 一个补全式编程大模型 , 是 AI 编程领域使最好用的工具 ;
使用效果 : GitHub Copilot 可以 提高工作效率 50% 以上 , 使用该工具后 , 有一半的代码都由该工具完成 ;
支持的平台 : GitHub Copilot 只能在 PyCharm 和 Visual Studio Code 开发环境中安装插件使用 ;
可实现的功能 : 补全代码 , 补全注释 , 根据注释生成代码 ;
实现原理 :
使用前提 : 全局梯子必须挂上 , 否则无法使用 ;
软件费用 : 个人使用 , 每月 60 块钱 ;
GitHub Copilot 用法展示 :
GitHub Copilot 软件购买 :
注册 GitHub 账号 : 注册 GitHub 账号 , 在 https://github.com/features/copilot 登录 账号 ;
购买软件 : 在 https://github.com/features/copilot/plans 页面购买软件 , 买 10 美元的个人版就行 ;
目前可以免费试用 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(); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。