Prompt怎么写,如何写好Prompt(新手必看)
在 AI 辅助编程中,提示工程(Prompt Engineering)是决定工具效率和结果准确性的关键环节。通过设计精确的提示,我们能够引导 AI 工具生成更符合需求的代码与解决方案。
精准的 Prompt 是让 AI 工具生成高质量代码的基础,清晰、精确的 Prompt 不仅能提升 AI 对需求的理解,还能减少不必要的试错。
接下来将从基本原则和方法入手,介绍如何编写有效的 Prompt,引导 AI 生成所需的代码。
【实例 1】利用 AI 生成简单的用登录模块代码。
Cursor 生成的代码如下:
【实例 2】利用 AI 生成多用户登录验证模块的代码。
Cursor 生成的代码如下:
【实例 3】利用AI生成密码加密模块代码。
Cursor 生成的代码如下:
精准的 Prompt 是让 AI 工具生成高质量代码的基础,清晰、精确的 Prompt 不仅能提升 AI 对需求的理解,还能减少不必要的试错。
接下来将从基本原则和方法入手,介绍如何编写有效的 Prompt,引导 AI 生成所需的代码。
编写清晰精确的Prompt
在使用 Cursor 辅助开发时,清晰、精确的 Prompt 设计是 AI 生成高质量代码的关键。Prompt 不仅是人与 AI 沟通的桥梁,也是影响生成结果质量的核心因素。1、编写Prompt的基本原则
1) 明确目标
Prompt 应当清晰描述开发的目标或功能需求。例如,如果想让 AI 生成一个用户登录模块的代码,Prompt 中必须包含“登录模块”这一核心目标,以及功能细节(如用户名和密码验证)。Prompt 示例:为一个用户登录模块生成代码,要求包含用户名和密码输入,验证成功后返回欢迎信息,验证失败后返回错误提示。
2) 描述功能细节
除了目标,还需要提供代码生成的具体功能细节,例如使用的编程语言、框架及输入和输出要求。Prompt 示例:使用 Java 编写一个用户登录模块,包含以下功能:接收用户输入的用户名和密码;调用函数应验证输入是否正确;输入正确时打印“欢迎”, 输入错误时打印“用户名或密码错误”。
3) 明确限制条件
在 Prompt 中加入明确的限制条件,帮助AI生成更精确的代码。例如,需要指定使用何种算法、数据结构或框架。Prompt 示例:在登录模块中使用 HashMap 存储用户名和密码,并验证用户输入的正确性。
4) 逐步细化需求
如果功能复杂,可以将需求分解成多个小步骤,通过多轮次的 Prompt 逐步引导 AI 完成代码生成。Prompt 示例:为一个用户登录模块创建一个 HashMap,存储用户名和密码;基于 HashMap 编写一个验证函数,接收用户名和密码,返回验证结果;整合以上功能,生成用户登录模块的完整代码。
Cursor辅助开发的Prompt实例
下面以 Cursor 为工具,使用 Prompt 引导 AI 生成用户登录模块代码。【实例 1】利用 AI 生成简单的用登录模块代码。
Prompt:使用 Java 编写一个用户登录模块,包含以下功能:接收用户名和密码;验证输入是否正确;输入正确时返回“登录成功”,输入错误时返回“登录失败”。
Cursor 生成的代码如下:
import java.util.Scanner; public class LoginModule { public static void main(String[] args) { String correctUsername = "admin"; String correctPassword = "password"; Scanner scanner = new Scanner(System.in); System.out.print("请输入用户名: "); String username = scanner.nextLine(); System.out.print("请输入密码: "); String password = scanner.nextLine(); if (username.equals(correctUsername) && password.equals(correctPassword)) { System.out.println("登录成功"); } else { System.out.println("登录失败"); } scanner.close(); } }上述代码逻辑清晰,符合 Prompt 提出的需求。如果希望用户登录模块能支持多用户登录,可通过进一步优化 Prompt,实现多用户验证功能。
【实例 2】利用 AI 生成多用户登录验证模块的代码。
Prompt:扩展登录模块,支持多用户登录,使用 HashMap 存储用户名和密码,验证用户输入是否正确。
Cursor 生成的代码如下:
import java.util.HashMap; import java.util.Scanner; public class LoginModule { public static void main(String[] args) { HashMap<String, String> users = new HashMap<>(); users.put("admin", "password123"); users.put("user1", "pass123"); users.put("user2", "abc456"); Scanner scanner = new Scanner(System.in); System.out.print("请输入用户名: "); String username = scanner.nextLine(); System.out.print("请输入密码: "); String password = scanner.nextLine(); if (users.containsKey(username) && users.get(username).equals(password)) { System.out.println("登录成功"); } else { System.out.println("用户名或密码错误"); } scanner.close(); } }分析与性能评估:
- 优点:HashMap 可以存储多个用户信息,并且支持动态验证。
- 可优化部分:可以进一步优化 Prompt,为代码添加加密功能,并设置错误次数限制。
【实例 3】利用AI生成密码加密模块代码。
Prompt:为登录模块添加密码加密功能,使用 Java 内置的 MessageDigest 类对密码进行 SHA-256 加密,并验证用户输入的密码。
Cursor 生成的代码如下:
import java.security.MessageDigest; import java.util.HashMap; import java.util.Scanner; public class LoginModule { public static void main(String[] args) throws Exception { HashMap<String, String> users = new HashMap<>(); users.put("admin", hashPassword("password123")); users.put("user1", hashPassword("pass123")); users.put("user2", hashPassword("abc456")); Scanner scanner = new Scanner(System.in); System.out.print("请输入用户名: "); String username = scanner.nextLine(); System.out.print("请输入密码: "); String password = scanner.nextLine(); if (users.containsKey(username) && users.get(username).equals(hashPassword(password))) { System.out.println("登录成功"); } else { System.out.println("用户名或密码错误"); } scanner.close(); } private static String hashPassword(String password) throws Exception { MessageDigest md = MessageDigest.getInstance("SHA-256"); byte[] hash = md.digest(password.getBytes("UTF-8")); StringBuilder hexString = new StringBuilder(); for (byte b : hash) { String hex = Integer.toHexString(0xff & b); if (hex.length() == 1) hexString.append('0'); hexString.append(hex); } return hexString.toString(); } }分析与性能评估:
- 优点:上述代码通过 SHA-256 加密算法提升了安全性。
- 可优化部分:可以引导 Cursor 进一步优化代码,例如实现对登录错误次数的限制功能或添加登录日志的记录功能。
总结Prompt编写技巧
掌握以下 Prompt 编写技巧,能够更有效地引导 Cursor 生成代码,大幅提高开发效率,建议读者重点学习并运用。- 在使用 Prompt 描述功能需求时,应确保清晰易懂。
- 按照“目标—功能—限制条件”的层次结构编写 Prompt,逐步引导 Cursor 生成代码。
- 针对复杂需求,应将需求拆解成多个子功能,通过连续多次输入 Prompt,逐步引导 Cursor 生成完整的解决方案。
- 在获得 AI 生成的代码后,要根据实际需求进一步优化或扩展Prompt,通过迭代的方式持续提升代码质量。